def __init__(self, player):
     super(PlayerHitAnimation, self).__init__()
     self.player = player
     self.sheet = SpriteSheet("assets/images/Sprite_FX_Explosion_0042.png")
     self.images = self.sheet.images_by(148, 148, (0, 0, 0))
     self.current_frame = 0
     self.frame_speed = 2
     self.animation_counter = 0
     self.image = self.images[self.current_frame]
     self.rect = self.image.get_rect(
         left = self.player.rect.x, top = self.player.rect.y
     )
 def __init__(self, image_url, image_width, image_height, inset = None):
     super(Asteroid, self).__init__()
     self.sheet = SpriteSheet(image_url)
     self.images = self.sheet.images_by(image_width, image_height, Color("black"), inset)
     self.current_frame  = 0
     self.image = self.images[self.current_frame]
     self.rect = self.image.get_rect(
         top = randint(-100, 0),
         left = randint(0, SCREEN_SIZE[0]),
         width = image_width,
         height = image_height
     )
     self.frame_speed = 1.5
     self.animation_counter = 0
Beispiel #3
0
    def __init__(self, location, screensize):
        game.sprite.Sprite.__init__(self)
        Boss_1.screen_width = screensize[0]
        Boss_1.screen_height = screensize[1]
        self.frame = 0
        self.frameCalls = 0
        if Boss_1.image is None:
            # make all of the appropriate transformations of the image based
            # on direction of travel

            sprites = SP.loadSheet(
                "images/sprites/boss_1.png", 52, 26, [2, 1])
            Boss_1.right = sprites[0]
            Boss_1.left = SP.rotateSprites(Boss_1.right, 180)
            Boss_1.up = SP.rotateSprites(Boss_1.right, 90)
            Boss_1.down = SP.rotateSprites(Boss_1.right, -90)
            Boss_1.upright = SP.rotateSprites(Boss_1.right, 45)
            Boss_1.upleft = SP.rotateSprites(Boss_1.right, 135)
            Boss_1.downright = SP.rotateSprites(Boss_1.right, -45)
            Boss_1.downleft = SP.rotateSprites(Boss_1.right, -135)

        self.waiting = False
        self.direction = "right"
        self.set_direction(self.direction)
        self.set_image()
        #set the speed & get the rectangle

        self.rect = self.image.get_rect()

        #make sure it is in the appropriate location
        self.rect.topleft = location
        #get the width & height of screen
        self.width = screensize[0]
        self.height = screensize[1]
        self.x = location[0]
        self.y = location[1]
        self.current_move = 0
        self.old_pos_x = location[0]
        self.old_pos_y = location[1]
        #This variable keeps track of the number of cycles
        #the enemy has waited before restarting
        #If 0, enemy continues as normal
        #Enemy will stay stopped until stop_time == max_stop_time
        self.waited_time = 0
        self.moved_time = 0
        self.speed = 7
        self.active_distance = 15

        #Initial strength for car
        self.strength = 0

        #Set as 500 to give him a little more strength
        self.health = 500

        #Original transport variables
        self.is_transporting = False
        self.transport_time = 0
        self.transport_location = None
class Asteroid(Sprite):
    def __init__(self, image_url, image_width, image_height, inset = None):
        super(Asteroid, self).__init__()
        self.sheet = SpriteSheet(image_url)
        self.images = self.sheet.images_by(image_width, image_height, Color("black"), inset)
        self.current_frame  = 0
        self.image = self.images[self.current_frame]
        self.rect = self.image.get_rect(
            top = randint(-100, 0),
            left = randint(0, SCREEN_SIZE[0]),
            width = image_width,
            height = image_height
        )
        self.frame_speed = 1.5
        self.animation_counter = 0

    def update(self):
        if self.animation_counter == (self.frame_speed - 1):
            self.current_frame = (
                (self.current_frame + 1) if self.current_frame < len(self.images) else 0
            )
        self.animation_counter = (self.animation_counter + 1) % self.frame_speed
        self.image = self.images[self.current_frame - 1]

        if self.rect.y > SCREEN_SIZE[1]:
            self.rect.y = 0
            self.rect.x = random.randint(0, SCREEN_SIZE[0])
        else:
            self.rect.y += self.speed
 def __init__(self, exploded_object):
     super(AsteroidExplosion, self).__init__()
     self.exploded_object = exploded_object
     self.sheet = SpriteSheet("assets/images/Sprite_FX_Explosion_0015.png")
     self.images = self.sheet.images_at(
         [
             (52, 88, 118, 124), (268, 72, 136, 140), (480, 70, 158, 160),
             (699, 62, 172, 168), (914, 82, 186, 186), (1140, 46, 200, 190),
             (1106, 558, 246, 328)
         ],
         (0, 128, 0)
     )
     self.current_frame  = 0
     self.image = self.images[self.current_frame]
     self.rect = self.image.get_rect(top = exploded_object.y, left = exploded_object.x)
     self.sound = Sound("assets/sound/Explosion-SoundBible.com-2019248186.wav")
class AsteroidExplosion(Sprite):
    def __init__(self, exploded_object):
        super(AsteroidExplosion, self).__init__()
        self.exploded_object = exploded_object
        self.sheet = SpriteSheet("assets/images/Sprite_FX_Explosion_0015.png")
        self.images = self.sheet.images_at(
            [
                (52, 88, 118, 124), (268, 72, 136, 140), (480, 70, 158, 160),
                (699, 62, 172, 168), (914, 82, 186, 186), (1140, 46, 200, 190),
                (1106, 558, 246, 328)
            ],
            (0, 128, 0)
        )
        self.current_frame  = 0
        self.image = self.images[self.current_frame]
        self.rect = self.image.get_rect(top = exploded_object.y, left = exploded_object.x)
        self.sound = Sound("assets/sound/Explosion-SoundBible.com-2019248186.wav")

    def update(self):
        self.current_frame = (self.current_frame + 1) % len(self.images)
        self.image = self.images[self.current_frame - 1]
        self.rect = self.image.get_rect(
            topleft = (
                (self.exploded_object.x + self.exploded_object.width / 2) - (self.image.get_width() / 2),
                (self.exploded_object.y + self.exploded_object.height / 2) - (self.image.get_height() / 2)
            )
        )

        if self.current_frame == 0:
            self.kill()
class PlayerHitAnimation(Sprite):
    def __init__(self, player):
        super(PlayerHitAnimation, self).__init__()
        self.player = player
        self.sheet = SpriteSheet("assets/images/Sprite_FX_Explosion_0042.png")
        self.images = self.sheet.images_by(148, 148, (0, 0, 0))
        self.current_frame = 0
        self.frame_speed = 2
        self.animation_counter = 0
        self.image = self.images[self.current_frame]
        self.rect = self.image.get_rect(
            left = self.player.rect.x, top = self.player.rect.y
        )

    def update(self):
        if self.animation_counter == (self.frame_speed - 1):
            self.current_frame = (self.current_frame + 1) % len(self.images)
        self.animation_counter = (self.animation_counter + 1) % self.frame_speed

        self.image = self.images[self.current_frame - 1]
        self.rect = self.image.get_rect(
            left = self.player.rect.x, top = self.player.rect.y
        )

        if self.current_frame == len(self.images) - 1:
            self.kill()
Beispiel #8
0
 def _get_full(self, which):
     tmp = SS.loadSheet("images/sprites/player_total.png",
                        52, 26, [8, 3])
     tmp = tmp[which]
     full_speed = []
     for i in range(5, len(tmp)):
         full_speed.append(tmp[i])
     return full_speed
Beispiel #9
0
 def _get_accelerating(self, which):
     tmp = SS.loadSheet("images/sprites/player_total.png",
                        52, 26, [8, 3])
     tmp = tmp[which]
     accelerating = []
     for i in range(1, 5):
         accelerating.append(tmp[i])
     return accelerating
Beispiel #10
0
 def set_rotations(self):
     Player.left = SS.rotateSprites(Player.right, 180)
     Player.up = SS.rotateSprites(Player.right, 90)
     Player.down = SS.rotateSprites(Player.right, -90)
     Player.upright = SS.rotateSprites(Player.right, 45)
     Player.upleft = SS.rotateSprites(Player.right, 135)
     Player.downright = SS.rotateSprites(Player.right, -45)
     Player.downleft = SS.rotateSprites(Player.right, -135)
     self.set_direction(self.direction)
     self.frame = 0
Beispiel #11
0
    def __init__(self, location, screensize,
                 speed, direction, move_array):

        game.sprite.Sprite.__init__(self)

        Enemy.screen_width = screensize[0]
        Enemy.screen_height = screensize[1]
        self.frame = 0
        self.frameCalls = 0
        if Enemy.image is None:
            # make all of the appropriate transformations of the image based
            # on direction of travel

            sprites = SP.loadSheet(
                "images/sprites/enemyfullhealthlights.png", 52, 26, [3, 1])
            Enemy.right = sprites[0]
            Enemy.left = SP.rotateSprites(Enemy.right, 180)
            Enemy.up = SP.rotateSprites(Enemy.right, 90)
            Enemy.down = SP.rotateSprites(Enemy.right, -90)
            Enemy.upright = SP.rotateSprites(Enemy.right, 45)
            Enemy.upleft = SP.rotateSprites(Enemy.right, 135)
            Enemy.downright = SP.rotateSprites(Enemy.right, -45)
            Enemy.downleft = SP.rotateSprites(Enemy.right, -135)

        self.direction = direction
        self.set_direction(direction)
        self.set_image()
        #set the speed & get the rectangle

        self.speed = speed
        self.rect = self.image.get_rect()

        #make sure it is in the appropriate location
        self.rect.topleft = location
        #get the width & height of screen
        self.width = screensize[0]
        self.height = screensize[1]
        self.x = location[0]
        self.y = location[1]
        self.movements = move_array
        self.current_move = 0
        self.old_pos_x = location[0]
        self.old_pos_y = location[1]
        #This variable keeps track of the number of cycles
        #the enemy has waited before restarting
        #If 0, enemy continues as normal
        #Enemy will stay stopped until stop_time == max_stop_time
        self.stop_time = 0
Beispiel #12
0
 def _get_stopped(self, which):
     tmp = SS.loadSheet("images/sprites/player_total.png",
                        52, 26, [8, 3])
     tmp = tmp[which]
     return [tmp[0]]