def update(self, evt): #self.camera.setPos(0,-100,100) lifes = self.player.getPythonTag("ObjectController").getLifes() if (lifes > 2): self.lifes[0].show() self.lifes[1].show() elif (lifes > 1): self.lifes[0].show() self.lifes[1].hide() elif (lifes > 0): self.lifes[0].hide() self.lifes[1].hide() self.camera.lookAt(self.player) self.rails.setPos(self.scene, Path.getXOfY(self.rails_y), self.rails_y, 12.4) self.rails.setHpr(Path.getHeading(self.rails_y), 0, 0) self.dirLight.color = (self.rails_y / 600, 0.7, 1, 1) self.camera.setHpr(Path.getHeading(self.rails_y), 0, 0) if (self.onGame): self.rails_y = self.rails_y + globalClock.getDt() * 10 #self.player.setPos(self.rails, 0, 0, sin(self.z/10.0)*40 ) relX, relZ, isShooting = self.player.getPythonTag( "ObjectController").update(self.rails, globalClock.getDt()) self.camera.setPos(self.rails, relX, -30, relZ) if (isShooting): self.fireSound.play() b = Bullet( self.bullet, self.scene, self.player.getPos(self.scene), base.cTrav, self.CollisionHandlerEvent, self.scene.getRelativeVector(self.player, Vec3(0, 1, 0)), 40, 0x4) enemies = self.scene.findAllMatches("dynamicEnemy") for e in enemies: enemy = e.getPythonTag("ObjectController") enemy.update(self.scene, globalClock.getDt(), self.player, self.bullet) bullets = self.scene.findAllMatches("bulletC") for b in bullets: bullet = b.getPythonTag("ObjectController") bullet.update(self.scene, globalClock.getDt(), self.player) return Task.cont
def update(self, task): extraX, extraZ = self.player.getPythonTag("ObjectController").update( self.rails, globalClock.getDt()) self.rails.setPos(self.scene, Path.getXOfY(self.rails_y), self.rails_y, 20) #self.camera.lookAt(self.player) self.camera.setHpr(Path.getHeading(self.rails_y), 0, 0) self.rails.setHpr(Path.getHeading(self.rails_y), 0, 0) self.camera.setPos(self.rails, extraX, -10, extraZ) self.rails_y = self.rails_y + 20 * globalClock.getDt() if self.player.getPythonTag("ObjectController").getShoot(): v = self.render.getRelativeVector(self.rails, Vec3(0, 1, 0)) b = Bullet(self.render, self.player.getPos(self.render), self.enemy, base.cTrav, self.collisionHandlerEvent, v, collisionMask=0x3) bullets = self.render.findAllMatches("bullet") for i in bullets: b = i.getPythonTag('ObjectController') b.update(globalClock.getDt()) enemies = self.scene.findAllMatches("dynamicEnemy") for i in enemies: e = i.getPythonTag('ObjectController') s = e.update(globalClock.getDt(), self.rails) if (s): dir = self.player.getPos(self.render) - i.getPos(self.render) dir.normalize() b = Bullet(self.render, i.getPos(self.render), self.enemy, base.cTrav, self.collisionHandlerEvent, dir, collisionMask=0xC) return Task.cont