| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- class "Player"
- function Player:Player(screen, playerEntity)
- self.screen = screen
- self.playerEntity = playerEntity
- playerEntity.width = 50
- playerEntity.height = 90
- self.playerPhysics = screen:trackPhysicsChild(playerEntity, PhysicsScreenEntity.ENTITY_TRIPLE_CIRCLE, false, 0.0, 1, 0, false, true, -1)
- self.playerSprite = safe_cast(playerEntity:getEntityById("playerSprite", true), ScreenSprite)
- self.groundSensor = safe_cast(playerEntity:getEntityById("groundSensor", true), ScreenShape)
- self.playerVelocity = 0.0
- self.jumping = true
- self.numCoins = 0
- self.dead = false
- self.deadCounter = 0
- self.jumpSound = Sound("Resources/sounds/jump.wav")
- self.dieSound = Sound("Resources/sounds/die.wav")
- end
- function Player:Jump()
- if self.jumping == false and self.dead == false then
- self.playerPhysics:applyImpulse(0.0, -80.0)
- self.jumpSound:Play()
- end
- end
-
- function Player:Die()
- if self.dead == true then return end
- self.playerSprite.rotation.roll = -90
- self.playerSprite.position.y = 10
- self.playerPhysics:applyImpulse(0.0, -80.0)
- self.dead = true
- self.dieSound:Play()
- end
- function Player:Update(elapsed)
- if self.playerEntity.position.y > 400 then
- self:Die()
- end
- if self.dead then
- self.deadCounter = self.deadCounter + elapsed
- self.playerSprite:playAnimation("idle", 0, false)
- self.playerPhysics:setVelocityX(0)
- return
- end
- if self.screen:isEntityColliding(self.groundSensor) then
- self.jumping = false
- else
- self.jumping = true
- end
- if Services.Input:getKeyState(KEY_LEFT) then
- self.playerVelocity = -7.2
- self.playerSprite.scale.x = -1
- elseif Services.Input:getKeyState(KEY_RIGHT) then
- self.playerVelocity = 7.2
- self.playerSprite.scale.x = 1
- else
- self.playerVelocity = 0.0
- end
- self.playerPhysics:setVelocityX(self.playerVelocity)
- if self.jumping == true then
- self.playerSprite:playAnimation("jump", 0, false)
- else
- if self.playerVelocity == 0.0 then
- self.playerSprite:playAnimation("idle", 0, false)
- else
- self.playerSprite:playAnimation("walk", 0, false)
- end
- end
- end
|