def tick(self, dtime): if self.shots <= 0: self.shooting = False self.shotClock = self.shotFrequency if self.shooting == False: self.reloadClock -= dtime if self.reloadClock < 0: self.shooting = True self.shots = self.clip self.reloadClock = self.reload else: self.shotClock -= dtime if self.shooting == True and self.shotClock < 0: self.targetLoc = self.engine.entityMgr.hero.pos diffZ = self.targetLoc.z - self.pos.z diffX = self.targetLoc.x - self.pos.x desiredHeading = -ogre.Math.ATan2(diffZ, diffX).valueRadians() self.engine.entityMgr.addComm(self, command.fireWhiteBullet(self, desiredHeading)) self.shotClock = self.shotFrequency self.shots -= 1 for aspect in self.aspects: aspect.tick(dtime) self.checkCollision() self.checkHealth()
def tick(self, dtime): self.shotClock -= dtime if self.shotClock < 0: self.targetLoc = self.engine.entityMgr.hero.pos diffZ = self.targetLoc.z - self.pos.z diffX = self.targetLoc.x - self.pos.x desiredHeading = -ogre.Math.ATan2(diffZ, diffX).valueRadians() self.engine.entityMgr.addComm(self, command.fireWhiteBullet(self, desiredHeading)) self.engine.entityMgr.addComm(self, command.fireWhiteBullet(self, desiredHeading+ogre.Degree(22).valueRadians())) self.engine.entityMgr.addComm(self, command.fireWhiteBullet(self, desiredHeading+ogre.Degree(44).valueRadians())) self.engine.entityMgr.addComm(self, command.fireWhiteBullet(self, desiredHeading-ogre.Degree(22).valueRadians())) self.engine.entityMgr.addComm(self, command.fireWhiteBullet(self, desiredHeading-ogre.Degree(44).valueRadians())) self.shotClock = self.shotFrequency for aspect in self.aspects: aspect.tick(dtime) self.checkCollision() self.checkHealth()