def updateControls(self, td): if inputs.getFirePress(): self.anim_state = ANIM_SHOOT if self.facing == LEFT: self.obj_mgr.create("PlayerLaser", None, self.x - 47, self.y + 6, direction=self.facing) self.sprite.play("shoot_l") else: self.obj_mgr.create("PlayerLaser", None, self.x + 47, self.y + 6, direction=self.facing) self.sprite.play("shoot_r") if self.solidcollider.on_ground: self.physics.applyForce(inputs.getHorizontal() * self.run_accel * td, 0) if inputs.getJumpPress(): self.physics.jump(self.jump_speed) self.jump_timer = self.max_jump_timer+td if inputs.getInteractPress(): for obj in self.collider.iter_collide(self.obj_mgr.interactive): if obj.call("interact", self) == True: break else: if inputs.getHorizontal() < 0.0 and self.physics.vx > -self.max_air_speed or inputs.getHorizontal() > 0.0 and self.physics.vx < self.max_air_speed: self.physics.applyForce(inputs.getHorizontal() * self.air_accel * td, 0) self.jump_timer -= td if inputs.getJump() and self.jump_timer >= 0.0: self.physics.applyForce(0, self.jump_thrust * td)
def updateAnim(self, td): if self.anim_state == ANIM_HURT or self.anim_state == ANIM_SHOOT or self.anim_state == ANIM_SPAWN: if not self.sprite.cursor.playing: self.state = STATE_ALIVE self.anim_state = ANIM_STAND if self.facing == LEFT: self.sprite.play("stand_l") else: self.sprite.play("stand_r") elif self.anim_state != ANIM_DIE: if self.solidcollider.on_ground and not self.physics.jumping: if self.anim_state == ANIM_STAND: if inputs.getHorizontal() < -0.01: self.anim_state = ANIM_RUN self.facing = LEFT self.sprite.play("run_l") if inputs.getHorizontal() > 0.01: self.anim_state = ANIM_RUN self.facing = RIGHT self.sprite.play("run_r") elif self.anim_state == ANIM_RUN: if abs(inputs.getHorizontal()) <= 0.01: self.anim_state = ANIM_STAND if self.facing == LEFT: self.sprite.play("stand_l") else: self.sprite.play("stand_r") if self.facing == RIGHT and inputs.getHorizontal() < -0.01: self.facing = LEFT self.sprite.play("run_l") if self.facing == LEFT and inputs.getHorizontal() > 0.01: self.facing = RIGHT self.sprite.play("run_r") elif self.anim_state == ANIM_JUMP: if self.solidcollider.on_ground: self.anim_state = ANIM_STAND if self.facing == LEFT: self.sprite.play("stand_l") else: self.sprite.play("stand_r") else: pass elif self.anim_state == ANIM_WAIT: pass else: if self.anim_state != ANIM_JUMP: self.anim_state = ANIM_JUMP if self.facing == LEFT: self.sprite.play("jump_l") else: self.sprite.play("jump_r") self.sprite.updateAnim(td)
def update(self, td): if self.mapcollide.on_ground: self.physics.applyForce(inputs.getHorizontal() * 0.004 * td, 0) if self.running == False: if inputs.getHorizontal() < -0.01: self.running = True self.dir = 0 self.sprite.play("run_l") if inputs.getHorizontal() > 0.01: self.running = True self.dir = 1 self.sprite.play("run_r") else: if abs(inputs.getHorizontal()) < 0.01: self.running = False if self.dir == 0: self.sprite.play("stand_l") else: self.sprite.play("stand_r") if inputs.getJumpPress(): self.physics.jump(-0.45) self.running = False self.sprite.updateAnim(td) self.physics.update(td)
def updateControls(self, td): if inputs.getFirePress(): self.anim_state = ANIM_SHOOT if self.facing == LEFT: self.obj_mgr.create("PlayerLaser", None, self.x - 10, self.y + 4, direction=self.facing) self.sprite.play("shoot_l") else: self.obj_mgr.create("PlayerLaser", None, self.x + 10, self.y + 4, direction=self.facing) self.sprite.play("shoot_r") if self.mapcollide.on_ground: self.physics.applyForce(inputs.getHorizontal() * self.run_accel * td, 0) if inputs.getJumpPress(): self.physics.jump(self.jump_speed) self.jump_timer = self.max_jump_timer+td else: if inputs.getHorizontal() < 0.0 and self.physics.vx > -self.max_air_speed or inputs.getHorizontal() > 0.0 and self.physics.vx < self.max_air_speed: self.physics.applyForce(inputs.getHorizontal() * self.air_accel * td, 0) self.jump_timer -= td if inputs.getJump() and self.jump_timer >= 0.0: self.physics.applyForce(0, self.jump_thrust * td)