Пример #1
0
    def update(self):
        """update - Update internal data for a game tick""" 
    
        BaseSprite.update(self)

        #this stops the guy completely
        #for frictionless physics like in a space game
        #you can decrement the velocity or even
        #delete these lines for asteroids-like physics
        if not self._accelerating:
            self.velocity_x = 0
            self.velocity_y = 0
  
        #manage the exploding animation
        if self.exploding: 
            #do an explosion image for each tick
            self.explodestage += 1
            e = self.explodestage
            if e < 8:#there are 7 explosion images
                e = str(e)
                img_name = python_nameconfig.guy_explode_stage + e  + ".png"
                self.master_image = pygame.image.load(img_name)
                self._update_image()

            else:#explosion is done
                self.visible = False
                self.exploding = False
                self.kill()
                self.master_image = pygame.image.load(python_nameconfig.guy_img)
                self._update_image()
    def update(self):
        """update - update internal data and position.
        Typically called by the game controller each game
        tick.

        """

        BaseSprite.update(self)
        if self.exploding: 
            #do an explosion image for each tick
            self.explode_stage += 1
            e = self.explode_stage
            if e < 8:
                e = str(e)
                img_name = python_nameconfig.enemy_explode_stage + e  + ".png"
                self.master_image = pygame.image.load(img_name)
                self._update_image()
                return

            else:#explosion is done
                self.visible = False
                self.exploding = False
                self.kill()
                return

        self.targetted = False
        #calculate target angle
        targx = self.target.x - self.x
        targy = self.target.y - self.y
        target_angle = ((math.atan2(targy,targx)) * 180)/ math.pi
        if target_angle < 0:
            target_angle = 360 + target_angle
 
        #translate the orientation to the
        # same system as the target angle
        fire_angle = 360 - self.orientation
        if fire_angle == 360:
            fire_angle = 0
        fire_angle += 270
        if fire_angle >= 360:
            fire_angle -= 360

        #rotate to face the target
        delta = fire_angle - target_angle
        if delta > 5:
            self._rotating_left = True
            self._rotating_right = False
        elif delta < -5:
            self._rotating_left = False
            self._rotating_right = True
        else:
            self._rotating_left = False
            self._rotating_right = False
            self.targetted = True
Пример #3
0
    def update(self):
        BaseSprite.update(self)
        if self.exploding:
            # do an explosion image for each tick
            self.explode_stage += 1
            e = self.explode_stage
            if e < 8:
                e = str(e)
                img_name = python_nameconfig.enemy_explode_stage + e + ".png"
                self.master_image = pygame.image.load(img_name)
                self._update_image()
                return

            else:  # explosion is done
                self.visible = False
                self.exploding = False
                self.kill()
                return
Пример #4
0
    def update(self):
        """update - update internal data and position.
        Typically called by the game controller each game
        tick.

        """

        BaseSprite.update(self)
        self.ticks += 1
        if not self.exploding and self.ticks > self.max_ticks:
            self.kill()

        if self.exploding: 
            self.explodestage += 1
            e = self.explodestage
            if e < 5:
                e = str(e)
                self.masterImage = pygame.image.load(python_nameconfig.bullet_explode_stage + e  + ".png")
                self._update_image()
            else:
                self.kill()