예제 #1
0
class Dead_duck:
    def __init__(self,x,y):
        self.deadDuck = SpriteSheet("dead_duck.png")
        self.frames = []
        self.image = self.deadDuck.get_image(85,0,40,70)
        self.frames.append(self.image)
        self.image = self.deadDuck.get_image(125,0,40,70)
        self.frames.append(self.image)
        self.image = self.deadDuck.get_image(165, 0, 40, 70)
        self.frames.append(self.image)
        self.image = self.deadDuck.get_image(0,0,70,70)
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
        self.change = 8
    def fall(self):
        self.rect.y += self.change
        pos = self.rect.x
        frame = (pos // 30) % len(self.frames)
        if self.rect.y > 400:
            self.change = 0
            dog = pygame.image.load("dog.png").convert_alpha()
            screen.blit(dog,(self.rect.x,self.rect.y))
        self.image = self.frames[frame]
    def draw(self):
        screen.blit(self.image,(self.rect.x,self.rect.y))
예제 #2
0
    def __init__(self, ai_settings, screen):
        """Initialize the alien, and set its starting position."""
        super(Bunker, self).__init__()
        self.screen = screen
        self.ai_settings = ai_settings

        # Load the alien image, and set its rect attribute.
        self.bunker_frames = []

        bunker_sprite = SpriteSheet("images/SpriteSheet.png")

        image = bunker_sprite.get_image(0, 346, 96, 64)
        self.bunker_frames.append(image)
        image = bunker_sprite.get_image(0, 346, 96, 64)
        self.bunker_frames.append(image)

        self.image = self.bunker_frames[0]

        self.rect = self.image.get_rect()

        # Start each new alien near the top left of the screen.
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height

        # Store the alien's exact position.
        self.x = float(self.rect.x)
예제 #3
0
    def __init__(self):
        """ Constructor function """

        # Call the parent's constructor
        pygame.sprite.Sprite.__init__(self)

        sprite_sheet = SpriteSheet("mario.png")

        # Load all the right facing images into a list
        image = sprite_sheet.get_image(0, 0, constants.BLOCK_SIZE,
                                       2 * constants.BLOCK_SIZE)
        self.standing = image

        image = sprite_sheet.get_image(5 * constants.BLOCK_SIZE, 0,
                                       constants.BLOCK_SIZE,
                                       2 * constants.BLOCK_SIZE)
        self.jumping = image

        for i in xrange(1, 4):
            image = sprite_sheet.get_image(i * constants.BLOCK_SIZE, 0,
                                           constants.BLOCK_SIZE,
                                           2 * constants.BLOCK_SIZE)
            self.walking_frames.append(image)

        self.walking_frames.append(self.walking_frames[1])

        # Set the image the player starts with
        self.image = self.standing

        # Set a referance to the image rect.
        self.rect = self.image.get_rect()
        self.rect.y = constants.BLOCK_SIZE * (constants.BLOCK_HEIGHT - 3.5)
        self.rect.x = constants.BLOCK_SIZE * (constants.BLOCK_WIDTH / 2.0 - .5)
예제 #4
0
파일: mario.py 프로젝트: aoneill01/pymario
    def __init__(self):
        """ Constructor function """

        # Call the parent's constructor
        pygame.sprite.Sprite.__init__(self)

        sprite_sheet = SpriteSheet("mario.png")

        # Load all the right facing images into a list
        image = sprite_sheet.get_image(0, 0, constants.BLOCK_SIZE, 2 * constants.BLOCK_SIZE)
        self.standing = image

        image = sprite_sheet.get_image(5 * constants.BLOCK_SIZE, 0, constants.BLOCK_SIZE, 2 * constants.BLOCK_SIZE)
        self.jumping = image
        
        for i in xrange(1, 4):
            image = sprite_sheet.get_image(i * constants.BLOCK_SIZE, 0, constants.BLOCK_SIZE, 2 * constants.BLOCK_SIZE)
            self.walking_frames.append(image)
            
        self.walking_frames.append(self.walking_frames[1])
        
        # Set the image the player starts with
        self.image = self.standing

        # Set a referance to the image rect.
        self.rect = self.image.get_rect()
        self.rect.y = constants.BLOCK_SIZE * (constants.BLOCK_HEIGHT - 3.5)
        self.rect.x = constants.BLOCK_SIZE * (constants.BLOCK_WIDTH / 2.0 - .5)
예제 #5
0
    def __init__(self, ai_settings, screen):
        """Initialize the alien, and set its starting position."""
        super(Alien2, self).__init__()
        self.screen = screen
        self.ai_settings = ai_settings

        # Load the alien image, and set its rect attribute.
        self.alien2_frames = []

        alien2_sprite = SpriteSheet("images/SpriteSheet.png")

        for num_pics1 in range(24):
            image = alien2_sprite.get_image(32, 0, 32, 32)
            self.alien2_frames.append(image)
        for num_pics2 in range(24):
            image = alien2_sprite.get_image(32, 32, 32, 32)
            self.alien2_frames.append(image)

        self.image = self.alien2_frames[0]

        self.rect = self.image.get_rect()

        # Start each new alien near the top left of the screen.
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height

        # Store the alien's exact position.
        self.x = float(self.rect.x)

        self.index = 0
예제 #6
0
    def __init__(self):
        # kutsutaan parenttia
        super().__init__()

        #luodaan hahmo
        self.walking_frames_r = []
        sprite_sheet = SpriteSheet("fatherlonglegssprite.png")
        image = sprite_sheet.get_image(12, 12, 80, 40)
        self.walking_frames_r.append(image)
        image2 = sprite_sheet.get_image(110, 12, 80, 55)
        self.walking_frames_r.append(image2)
        image3 = sprite_sheet.get_image(220, 12, 72, 55)
        self.walking_frames_r.append(image3)

        self.image = self.walking_frames_r[0]

        #luodaan referenssi
        self.rect = self.image.get_rect()

        # luodaan nopeudet
        self.change_x = 0
        self.change_y = 0

        #
        self.level = None
예제 #7
0
def load_spritesheet_from_image(imagepath):
    print("load_spritesheet_from_image()")
    spritesheet = SpriteSheet(imagepath)
    images = []
    images.append(spritesheet.get_image(0, 0, 32, 32).convert())
    images.append(spritesheet.get_image(32, 0, 32, 32).convert())
    images.append(spritesheet.get_image(64, 0, 32, 32).convert())
    images.append(spritesheet.get_image(96, 0, 32, 32).convert())
    return images
예제 #8
0
 def __init__(self, screen):
     sprite_sheet = SpriteSheet("Images/enemies.png")
     self.under_piranha = []
     imagePop = pygame.transform.scale(
         sprite_sheet.get_image(390, 60, 19, 25), (32, 32))
     self.under_piranha.append(imagePop)
     imagePop = pygame.transform.scale(
         sprite_sheet.get_image(420, 60, 19, 25), (32, 32))
     self.under_piranha.append(imagePop)
     super().__init__(screen=screen, pop_list=self.under_piranha)
예제 #9
0
 def __init__(self,screen):
     self.animation = []
     sprite_sheet = SpriteSheet("Images/items.png")
     self.image = pygame.transform.scale(sprite_sheet.get_image(128, 95, 8, 14), (16, 28))
     self.animation.append(self.image)
     self.image = pygame.transform.scale(sprite_sheet.get_image(160, 95, 4, 14), (8, 28))
     self.animation.append(self.image)
     self.image = pygame.transform.scale(sprite_sheet.get_image(191, 95, 1, 14), (2, 28))
     self.animation.append(self.image)
     self.image = pygame.transform.scale(sprite_sheet.get_image(220, 95, 4, 14), (8, 28))
     self.animation.append(self.image)
     super().__init__(screen=screen, animation=self.animation)
예제 #10
0
 def __init__(self,screen):
     self.animation = []
     sprite_sheet = SpriteSheet("Images/items.png")
     self.image = pygame.transform.scale(sprite_sheet.get_image(4, 64, 20, 16), (32, 32))
     self.animation.append(self.image)
     self.image = pygame.transform.scale(sprite_sheet.get_image(34, 64, 20, 16), (32, 32))
     self.animation.append(self.image)
     self.image = pygame.transform.scale(sprite_sheet.get_image(64, 64, 20, 16), (32, 32))
     self.animation.append(self.image)
     self.image = pygame.transform.scale(sprite_sheet.get_image(94, 64, 20, 16), (32, 32))
     self.animation.append(self.image)
     super().__init__(screen=screen, animation=self.animation)
예제 #11
0
 def __init__(self, screen):
     sprite_sheet = SpriteSheet("images/enemies.png")
     self.goombas = []
     image = pygame.transform.scale(sprite_sheet.get_image(0, 4, 16, 16),
                                    (32, 32))
     self.goombas.append(image)
     image = pygame.transform.scale(sprite_sheet.get_image(30, 4, 16, 16),
                                    (32, 32))
     self.goombas.append(image)
     # next image for squished goomba
     """image = pygame.transform.scale(sprite_sheet.get_image(60, 5, 16, 16), (30, 30))
     self.goombas.append(image)"""
     super().__init__(screen=screen, walk_list=self.goombas)
예제 #12
0
class PowerUp(Sprite):
    """ Represents a powerup"""
    def __init__(self, P_TYPE, screen, x, y):
        """ Init attributes"""
        super().__init__()

        # Attributes
        self.P_TYPE = P_TYPE
        self.sheet = settings.power_up_sheet
        self.sheet_cols = settings.power_up_sheet_cols
        self.sheet_rows = settings.power_up_sheet_rows
        self.spritesheet = SpriteSheet(self.sheet, self.sheet_cols,
                                       self.sheet_rows)
        self.image = self.spritesheet.get_image(int(self.P_TYPE), colorkey=-1)
        self.x = x
        self.y = y
        self.width = self.image.get_width()
        self.height = self.image.get_height()
        self.rect = pygame.Rect(x, y, self.width, self.height)
        self.screen = screen
        self.spin_degrees = 1 * settings.power_up_spin_factor

    def draw(self):
        """ Draws powerup to screen"""
        self.spritesheet.draw(self.screen, int(self.P_TYPE), self.rect.x,
                              self.rect.y)

    def update(self):
        """ Updates movement of powerup"""
        self.rect.y += settings.power_up_speed_factor
예제 #13
0
파일: animate.py 프로젝트: MrKren/TTA
class Animation(object):
    """An object useful for animations with sprites"""
    def __init__(self, images, tilesize, length, aps):
        self.images = []
        self.tilesize = tilesize
        self.aps = aps  # Animations loops per second
        self.sprite_strip = SpriteSheet(images)
        self.index = 0
        self.count = 0
        self.frame_loop = 30 / self.aps  # How many cycles of animation fit in 1 second
        self.frame_tick = math.ceil(
            self.frame_loop / length
        )  # How many ticks need to be spent of one frame of animation
        self.end_count = self.frame_tick * length
        for i in range(length):
            x = self.sprite_strip.get_image(i * tilesize, 0, tilesize,
                                            tilesize)
            self.images.append(x)
        self.export_image = self.images[self.index]

    def update(self):
        self.count += 1
        if self.count % self.frame_tick == 0:
            self.export_image = self.images[self.index]
            self.index += 1
            if self.index > (len(self.images) - 1):
                self.index = 0
        if self.count > self.end_count:
            self.count = 0

        return self.export_image
예제 #14
0
 def __init__(self,x,y):
     super().__init__()
     sprite_sheet = SpriteSheet("duck.png")
     self.frames = []
     image = sprite_sheet.get_image(0,0,75,75)
     self.frames.append(image)
     image = sprite_sheet.get_image(75, 0, 75, 75)
     self.frames.append(image)
     image = sprite_sheet.get_image(150, 0, 75, 75)
     self.frames.append(image)
     self.image = self.frames[0]
     self.rect = self.image.get_rect()
     self.rect.x = x
     self.rect.y = y
     self.change_x = 7
     self.change_y = 5
예제 #15
0
파일: gui.py 프로젝트: MrKren/TTA
class GUI(pygame.sprite.Sprite):
    def __init__(self):

        super().__init__()

        self.sheet = SpriteSheet("GUI.png")
        self.image = self.sheet.get_image(0, 0, 196, 278)
        self.rect = self.image.get_rect()
예제 #16
0
파일: menu.py 프로젝트: sedders123/Homeward
 def __init__(self, sprite_sheet_data):
     pygame.sprite.Sprite.__init__(self)
     sprite_sheet = SpriteSheet("resources/menu_items.png")  # To be created
     self.image = sprite_sheet.get_image(sprite_sheet_data[0],
                                         sprite_sheet_data[1],
                                         sprite_sheet_data[2],
                                         sprite_sheet_data[3])  # x, y, height, width of menu item
     self.rect = self.image.get_rect()
예제 #17
0
    def __init__(self, x_pos, y_pos, sheet_data, sheetname):
        super().__init__()
        items_sheet = SpriteSheet(sheetname)
        self.image = items_sheet.get_image(sheet_data[0], sheet_data[1],
                                           sheet_data[2], sheet_data[3])

        self.rect = self.image.get_rect()
        self.rect.x = x_pos
        self.rect.y = y_pos
예제 #18
0
class HUDItem(pygame.sprite.Sprite):
    def __init__(self, sprite_sheet_data=None):
        pygame.sprite.Sprite.__init__(self)
        self.sprite_sheet = SpriteSheet("resources/hud_spritesheet.png")
        if sprite_sheet_data:
            self.image = self.sprite_sheet.get_image(sprite_sheet_data[0],
                                                     sprite_sheet_data[1],
                                                     sprite_sheet_data[2],
                                                     sprite_sheet_data[3])
            self.rect = self.image.get_rect()
예제 #19
0
    def __init__(self, ai_settings, screen):
        """Initialize the ship, and set its starting position."""
        super(Ship, self).__init__()
        self.screen = screen
        self.ai_settings = ai_settings

        #FROM Sprite sheet example arrays that store location of images
        self.flying_frames = []

        sprite_sheet = SpriteSheet("images/SpriteSheet.png")
        #Load all the right facing images into a list
        for num_pics1 in range(6):
            image = sprite_sheet.get_image(0, 128, 32, 32)
            self.flying_frames.append(image)
        for num_pics2 in range(6):
            image = sprite_sheet.get_image(32, 128, 32, 32)
            self.flying_frames.append(image)
        for num_pics3 in range(6):
            image = sprite_sheet.get_image(0, 160, 32, 32)
            self.flying_frames.append(image)
        for num_pics4 in range(6):
            image = sprite_sheet.get_image(32, 160, 32, 32)
            self.flying_frames.append(image)

        self.image = self.flying_frames[0]

        # Load the ship image, and get its rect. *EDITED SELF.IMAGE*

        self.rect = self.image.get_rect()
        self.screen_rect = screen.get_rect()

        # Start each new ship at the bottom center of the screen.
        self.rect.centerx = self.screen_rect.centerx
        self.rect.bottom = self.screen_rect.bottom

        # Store a decimal value for the ship's center.
        self.center = float(self.rect.centerx)

        # Movement flags.
        self.moving_right = False
        self.moving_left = False

        self.index = 0
예제 #20
0
 def load_images(self):
     img_x = 0
     img_y = 0
     bullet_sheet = SpriteSheet("assets/fire_spritesheet.png")
     for i in range(2):
         for j in range(10):
             self.images.append(bullet_sheet.get_image(
                 img_x, img_y, 16, 16))
         img_x += 16
     for i in range(20):
         self.images[i] = pygame.transform.smoothscale(
             self.images[i], (8, 8))
예제 #21
0
파일: coin.py 프로젝트: aoneill01/pymario
    def __init__(self):
        # Call the parent's constructor
        pygame.sprite.Sprite.__init__(self)

        sprite_sheet = SpriteSheet("coin.png")
        
        for i in xrange(0, 5):
            self.images.append(sprite_sheet.get_image(i * constants.BLOCK_SIZE, 0, constants.BLOCK_SIZE, constants.BLOCK_SIZE))

        self.image = self.images[0]
	self.rect = self.image.get_rect()
	self.rect.x = constants.BLOCK_SIZE * (constants.BLOCK_WIDTH / 2.0 - .5)
예제 #22
0
    def __init__(self, screen):
        self.walk_right = []
        self.walk_left = []

        # load right-facing images
        sprite_sheet = SpriteSheet("Images/mario.png")
        image = pygame.transform.scale(sprite_sheet.get_image(210, 52, 16, 32),
                                       (32, 64))  # stand right [0]
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(240, 52, 16, 32),
                                       (32, 64))  # walk right [1]
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(270, 52, 16, 32),
                                       (32, 64))  # walk right [2]
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(300, 52, 16, 32),
                                       (32, 64))  # walk right [3]
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(360, 52, 16, 32),
                                       (32, 64))  # jump [4]
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(390, 52, 16, 27),
                                       (32, 54))  # crouch [5]
        self.walk_right.append(image)

        # load left-facing images
        for frame in self.walk_right:
            left_image = pygame.transform.flip(frame, True, False)
            self.walk_left.append(left_image)

        super().__init__(screen=screen,
                         walk_right=self.walk_right,
                         walk_left=self.walk_left)
예제 #23
0
 def __init__(self, x,y):
     super().__init__()
     sprite_sheet = SpriteSheet("duck.png")
     self.frames_r = []
     self.frames_l = []
     image = sprite_sheet.get_image(0,0,70,70)
     self.frames_r.append(image)
     image = sprite_sheet.get_image(70, 0, 70, 70)
     self.frames_r.append(image)
     image = sprite_sheet.get_image(140, 0, 70, 70)
     image = pygame.transform.flip(image,True,False)
     self.frames_l.append(image)
     image = sprite_sheet.get_image(0, 0, 75, 75)
     image = pygame.transform.flip(image, True, False)
     self.frames_l.append(image)
     image = sprite_sheet.get_image(75, 0, 75, 75)
     image = pygame.transform.flip(image, True, False)
     self.frames_l.append(image)
     image = sprite_sheet.get_image(150, 0, 75, 75)
     self.frames_r.append(image)
     self.image = self.frames_r[0]
     self.rect = self.image.get_rect()
     self.rect.x = x
     self.rect.y = y
     self.change_x = 10
     self.change_y = 7
     self.dir = "r"
예제 #24
0
 def __init__(self, screen):
     sprite_sheet = SpriteSheet("Images/enemies.png")
     self.koopas_left = []
     self.koopas_right = []
     self.koopas_shell = []
     imageRight = pygame.transform.scale(
         sprite_sheet.get_image(210, 0, 19, 25), (32, 32))
     self.koopas_right.append(imageRight)
     imageRight = pygame.transform.scale(
         sprite_sheet.get_image(240, 0, 19, 25), (32, 32))
     self.koopas_right.append(imageRight)
     imageLeft = pygame.transform.scale(
         sprite_sheet.get_image(179, 0, 19, 25), (32, 32))
     self.koopas_left.append(imageLeft)
     imageLeft = pygame.transform.scale(
         sprite_sheet.get_image(149, 0, 19, 25), (32, 32))
     self.koopas_left.append(imageLeft)
     imageShell = pygame.transform.scale(
         sprite_sheet.get_image(360, 0, 19, 25), (32, 32))
     self.koopas_shell.append(imageShell)
     imageShell = pygame.transform.scale(
         sprite_sheet.get_image(360, 0, 19, 25), (32, 32))
     self.koopas_shell.append(imageShell)
     super().__init__(screen=screen,
                      walk_list_left=self.koopas_left,
                      walk_list_right=self.koopas_right,
                      shell_list=self.koopas_shell)
예제 #25
0
    def __init__(self, screen):
        # list to hold all walking animations for right and left
        self.walk_right = []
        self.walk_left = []

        # load right-facing images
        sprite_sheet = SpriteSheet("Images/mario.png")
        image = pygame.transform.scale(sprite_sheet.get_image(210, 0, 15, 16),
                                       (32, 32))  # stand right [0]
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(240, 0, 15, 16),
                                       (32, 32))  # walk right [1]
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(270, 0, 15, 16),
                                       (32, 32))  # walk right [2]
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(300, 0, 15, 16),
                                       (32, 32))  # walk right [3]
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(360, 0, 15, 16),
                                       (32, 32))  # jump [4]
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(390, 16, 15, 14),
                                       (32, 32))  # dead_jump [5]
        self.walk_right.append(image)

        # load left-facing images
        for frame in self.walk_right:
            left_image = pygame.transform.flip(frame, True, False)
            self.walk_left.append(left_image)

        super().__init__(screen=screen,
                         walk_right=self.walk_right,
                         walk_left=self.walk_left)
예제 #26
0
    def __init__(self, is_next, is_top):
        # Call the parent's constructor
        pygame.sprite.Sprite.__init__(self)
        self.is_next = is_next
        self.is_top = is_top

        sprite_sheet = SpriteSheet("question-sprite.png")
        
        for i in xrange(0, 6):
            self.images.append(sprite_sheet.get_image(i * constants.BLOCK_SIZE, 0, constants.BLOCK_SIZE, constants.BLOCK_SIZE))

        self.image = self.images[0]
	self.rect = self.image.get_rect()
예제 #27
0
 def load_images(self):
     img_x = 0
     img_y = 0
     player_sheet = SpriteSheet("assets/player_spritesheet.png")
     player_walk = SpriteSheet("assets/player_walk.png")
     player_left = SpriteSheet("assets/player_left.png")
     player_walk_left = SpriteSheet("assets/player_walk_left.png")
     for i in range(10):
         for j in range(6):
             self.idle_right.append(
                 player_sheet.get_image(img_x, img_y, 50, 37))
             self.idle_left.append(
                 player_left.get_image(img_x, img_y, 50, 37))
         img_x += 50
     img_x = 0
     for i in range(8):
         for j in range(6):
             self.right_walk.append(
                 player_walk.get_image(img_x, img_y, 50, 37))
             self.left_walk.append(
                 player_walk_left.get_image(img_x, img_y, 50, 37))
         img_x += 50
예제 #28
0
    def __init__(self, sprite_sheet_data):
        """ Platform constructor. Assumes constructed with user passing in
            an array of 5 numbers like what's defined at the top of this
            code. """
        pygame.sprite.Sprite.__init__(self)

        sprite_sheet = SpriteSheet("resources/tiles_spritesheet.png")
        # Grab the image for this platform
        self.image = sprite_sheet.get_image(sprite_sheet_data[0],
                                            sprite_sheet_data[1],
                                            sprite_sheet_data[2],
                                            sprite_sheet_data[3])

        self.rect = self.image.get_rect()
예제 #29
0
    def __init__(self, sprite_sheet_data):
        """ Platform constructor. Assumes constructed with user passing in
            an array of 5 numbers like what's defined at the top of this
            code. """
        pygame.sprite.Sprite.__init__(self)

        sprite_sheet = SpriteSheet("Images/spritetest.png", False,
                                   globalvars.BLACK)
        # Grab the image for this platform
        self.image = sprite_sheet.get_image(sprite_sheet_data[0],
                                            sprite_sheet_data[1],
                                            sprite_sheet_data[2],
                                            sprite_sheet_data[3])

        self.rect = self.image.get_rect()
예제 #30
0
파일: coin.py 프로젝트: aoneill01/pymario
    def __init__(self):
        # Call the parent's constructor
        pygame.sprite.Sprite.__init__(self)

        sprite_sheet = SpriteSheet("coin.png")

        for i in xrange(0, 5):
            self.images.append(
                sprite_sheet.get_image(i * constants.BLOCK_SIZE, 0,
                                       constants.BLOCK_SIZE,
                                       constants.BLOCK_SIZE))

        self.image = self.images[0]
        self.rect = self.image.get_rect()
        self.rect.x = constants.BLOCK_SIZE * (constants.BLOCK_WIDTH / 2.0 - .5)
예제 #31
0
    def __init__(self, is_next, is_top):
        # Call the parent's constructor
        pygame.sprite.Sprite.__init__(self)
        self.is_next = is_next
        self.is_top = is_top

        sprite_sheet = SpriteSheet("question-sprite.png")

        for i in xrange(0, 6):
            self.images.append(
                sprite_sheet.get_image(i * constants.BLOCK_SIZE, 0,
                                       constants.BLOCK_SIZE,
                                       constants.BLOCK_SIZE))

        self.image = self.images[0]
        self.rect = self.image.get_rect()
예제 #32
0
    def __init__(self):
        """initialisation of class"""

        super().__init__()

        sprite_sheet = SpriteSheet('character.png')

        self.image = sprite_sheet.get_image(0, 0, 128, 128)
        self.image_original = self.image
        self.mask = pygame.mask.from_surface(self.image)
        self.rect = self.image.get_rect()
        self.rect.x = 540 - self.rect.centerx
        self.rect.y = 360 - self.rect.centery

        self.speed = 5
        self.health = 100
        self.max_health = 100
        self.dead = False
        self.ghost = Animation("ghost.png", 64, 8, 3)
예제 #33
0
class Enemy(pygame.sprite.Sprite):
    """Enemy"""

    def __init__(self, sprite_sheet_data=None):
        """ Enemy constructor. Assumes constructed with user passing in
            an array of 4 numbers like what's defined at the top of this
            code. """
        pygame.sprite.Sprite.__init__(self)

        self.sprite_sheet = SpriteSheet("resources/enemies_spritesheet.png")
        # Grab the image for this platform
        if sprite_sheet_data:
            self.image = self.sprite_sheet.get_image(sprite_sheet_data[0],
                                                     sprite_sheet_data[1],
                                                     sprite_sheet_data[2],
                                                     sprite_sheet_data[3])
            self.rect = self.image.get_rect()

        self.level = None
예제 #34
0
    def __init__(self):
        """ Constructor function """

        # Call the parent's constructor
        pygame.sprite.Sprite.__init__(self)

        self.title = pygame.image.load("date-sec-title.png")
        self.title = pygame.transform.scale(self.title, (160, 14))

        sprite_sheet = SpriteSheet("numbers.png")
        for i in xrange(0, 11):
            self.digits.append(sprite_sheet.get_image(i * 16, 0, 16, 14))

        self.image = pygame.Surface([160, 32], pygame.SRCALPHA, 32).convert_alpha()
        self.image.blit(self.title, (0, 0), (0, 0, 160, 14))
        #self.image.blit(self.digits[3], (0, 16), (0, 0, 16, 14))
        
        # Set a referance to the image rect.
        self.rect = self.image.get_rect()
        self.rect.y = 8
        self.rect.x = constants.BLOCK_WIDTH * constants.BLOCK_SIZE - 176
예제 #35
0
def load_spritesheet_from_image(imagepath, w, h, frames_per, total_frames):
    print(
        f"load_spritesheet_from_image({imagepath}, {frames_per}, {total_frames})"
    )
    assert (imagepath != "" and imagepath != None)
    assert (frames_per > 0 and frames_per != None)
    assert (total_frames > 0 and total_frames != None)
    assert (w > 0 and w != None)
    assert (h > 0 and h != None)
    spritesheet = SpriteSheet(imagepath)
    images = []
    animation = []
    for i in range(0, total_frames):
        if i % frames_per == 0 and i > 0:
            #print(f"appending: {animation}")
            images.append(animation)
            animation = []
        x = w * i
        #print(f"x: {x}")
        image_to_append = spritesheet.get_image(x, 0, w, h).convert()
        #print(f"image_to_append: {image_to_append}")
        animation.append(image_to_append)
    print(f"len(images): {len(images)}")
    return images
예제 #36
0
    def __init__(self, screen):
        self.walk_right = []
        self.walk_left = []

        # load right-facing images
        sprite_sheet = SpriteSheet("Images/marios.png")
        image = pygame.transform.scale(sprite_sheet.get_image(210, 52, 16, 32),
                                       (32, 64))
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(240, 52, 16, 32),
                                       (32, 64))
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(270, 52, 16, 32),
                                       (32, 64))
        self.walk_right.append(image)
        image = pygame.transform.scale(sprite_sheet.get_image(300, 52, 16, 32),
                                       (32, 64))
        self.walk_right.append(image)
        # jump image walk_right[-2]
        image = pygame.transform.scale(sprite_sheet.get_image(360, 52, 16, 32),
                                       (32, 64))
        self.walk_right.append(image)
        # crouch image walk_right[-1]
        image = pygame.transform.scale(sprite_sheet.get_image(390, 52, 16, 27),
                                       (32, 54))
        self.walk_right.append(image)

        # load left-facing images
        image = pygame.transform.flip(
            pygame.transform.scale(sprite_sheet.get_image(210, 52, 16, 32),
                                   (32, 64)), True, False)
        self.walk_left.append(image)
        image = pygame.transform.flip(
            pygame.transform.scale(sprite_sheet.get_image(240, 52, 16, 32),
                                   (32, 64)), True, False)
        self.walk_left.append(image)
        image = pygame.transform.flip(
            pygame.transform.scale(sprite_sheet.get_image(270, 52, 16, 32),
                                   (32, 64)), True, False)
        self.walk_left.append(image)
        image = pygame.transform.flip(
            pygame.transform.scale(sprite_sheet.get_image(300, 52, 16, 32),
                                   (32, 64)), True, False)
        self.walk_left.append(image)
        # jump image walk_left[-2]
        image = pygame.transform.flip(
            pygame.transform.scale(sprite_sheet.get_image(360, 52, 16, 32),
                                   (32, 64)), True, False)
        self.walk_left.append(image)
        # crouch image walk_right[-1]
        image = pygame.transform.flip(
            pygame.transform.scale(sprite_sheet.get_image(390, 52, 16, 27),
                                   (32, 54)), True, False)
        self.walk_left.append(image)

        super().__init__(screen=screen,
                         walk_right=self.walk_right,
                         walk_left=self.walk_left)
예제 #37
0
    def __init__(self):
        super().__init__()
        walk_sheet = SpriteSheet("p3_spritesheet.png")
        #walk 01
        image = walk_sheet.get_image(0, 0, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #walk 02
        image = walk_sheet.get_image(73, 0, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #walk 03
        image = walk_sheet.get_image(146, 0, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #walk 04
        image = walk_sheet.get_image(0, 98, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #walk 05
        image = walk_sheet.get_image(73, 98, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #walk 06
        image = walk_sheet.get_image(146, 98, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #walk 07
        image = walk_sheet.get_image(219, 0, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #walk 08
        image = walk_sheet.get_image(292, 0, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #walk 09
        image = walk_sheet.get_image(219, 98, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #walk 10
        image = walk_sheet.get_image(365, 0, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #walk 11
        image = walk_sheet.get_image(292, 98, 72, 97)
        self.walking_frames_r.append(image)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        #init start
        self.image = self.walking_frames_r[0]

        self.rect = self.image.get_rect()
예제 #38
0
    def __init__(self):
        """ Constructor function """

        # Call the parent's constructor
        pygame.sprite.Sprite.__init__(self)

        sprite_sheet = SpriteSheet("resources/p1_walk.png")
        # Load all the right facing images into a list
        image = sprite_sheet.get_image(0, 0, 66, 90)
        self.walking_frames_r.append(image)
        image = sprite_sheet.get_image(66, 0, 66, 90)
        self.walking_frames_r.append(image)
        image = sprite_sheet.get_image(132, 0, 67, 90)
        self.walking_frames_r.append(image)
        image = sprite_sheet.get_image(0, 93, 66, 90)
        self.walking_frames_r.append(image)
        image = sprite_sheet.get_image(66, 93, 66, 90)
        self.walking_frames_r.append(image)
        image = sprite_sheet.get_image(132, 93, 72, 90)
        self.walking_frames_r.append(image)
        image = sprite_sheet.get_image(0, 186, 70, 90)
        self.walking_frames_r.append(image)

        # Load all the right facing images, then flip them
        # to face left.
        image = sprite_sheet.get_image(0, 0, 66, 90)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)
        image = sprite_sheet.get_image(66, 0, 66, 90)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)
        image = sprite_sheet.get_image(132, 0, 67, 90)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)
        image = sprite_sheet.get_image(0, 93, 66, 90)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)
        image = sprite_sheet.get_image(66, 93, 66, 90)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)
        image = sprite_sheet.get_image(132, 93, 72, 90)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)
        image = sprite_sheet.get_image(0, 186, 70, 90)
        image = pygame.transform.flip(image, True, False)
        self.walking_frames_l.append(image)

        # Set the image the player starts with
        self.image = self.walking_frames_r[0]

        # Set a referance to the image rect.
        self.rect = self.image.get_rect()

        self.health = 100
        self.invincible = False
        self.score = 0
예제 #39
0
    def __init__(self, x, y):
        """ Constructor function """

        # Call the parent's constructor
        super().__init__()

        self.health = 10
        self.direction = "R"
        self.win = pygame.image.load("Assets/Pictures/bowser_win.png").convert_alpha()

        # get images for right idle
        for number in range(0, 7):
            bowser_r_idle_sheet = SpriteSheet('Assets/Pictures/bowser_idle_r.png')
            image = bowser_r_idle_sheet.get_image(number * self.idle_width, 0, self.idle_width, self.idle_length)
            self.idle_frames_r.append(image)
            self.idle_frames_l.append(pygame.transform.flip(image, True, False))

        # get images for right/left walking
        for row in range(0, 3):
            for column in range(0, 6):
                bowser_r_walking_sheet = SpriteSheet('Assets/Pictures/bowser_walking_r.png')
                if row != 2:
                    image = bowser_r_walking_sheet.get_image(
                        column * self.walking_width, row * self.walking_length, self.walking_width, self.walking_length
                    )
                    self.walking_frames_r.append(image)
                    self.walking_frames_l.append(pygame.transform.flip(image, True, False))
                else:
                    if column < 4:
                        image = bowser_r_walking_sheet.get_image(
                            column * self.walking_width, row * self.walking_length, self.walking_width, self.walking_length
                        )
                        self.walking_frames_r.append(image)
                        self.walking_frames_l.append(pygame.transform.flip(image, True, False))

        # get images for right/left facing punching
        for row in range(0, 5):
            for column in range(0, 6):
                bowser_r_punching_sheet = SpriteSheet('Assets/Pictures/bowser_punching_r.png')
                if row != 4:
                    image = bowser_r_punching_sheet.get_image(
                        column * self.punching_width, row * self.punching_length, self.punching_width, self.punching_length
                    )
                    self.punching_frames_r.append(image)
                    self.punching_frames_l.append(pygame.transform.flip(image, True, False))
                else:
                    if column < 4:
                        image = bowser_r_punching_sheet.get_image(
                            column * self.punching_width, row * self.punching_length, self.punching_width, self.punching_length
                        )
                        self.punching_frames_r.append(image)
                        self.punching_frames_l.append(pygame.transform.flip(image, True, False))

        # get images for right/left facing dying
        for row in range(0, 3):
            for column in range(0, 6):
                bowser_r_dying_sheet = SpriteSheet('Assets/Pictures/bowser_death_r.png')
                if row != 2:
                    image = bowser_r_dying_sheet.get_image(
                        column * self.death_width, row * self.death_length, self.death_width, self.death_length
                    )
                    self.dying_frames_r.append(image)
                    self.dying_frames_l.append(pygame.transform.flip(image, True, False))
                else:
                    if column < 1:
                        image = bowser_r_dying_sheet.get_image(
                            column * self.death_width, row * self.death_length, self.death_width, self.death_length
                        )
                        self.dying_frames_r.append(image)
                        self.dying_frames_l.append(pygame.transform.flip(image, True, False))

        # Set the image the player starts with
        self.image = self.idle_frames_r[0]

        # Set a referance to the image rect.
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
        self.rect.width -= 15
        self.rect.height -= 10
        print(self.rect)