Esempio n. 1
0
    def __init__(self, config, configDir, imageDir):
        """Initialize object to show frog lifes.

        Args:
            config:    Configuration found in game.conf section
                       [LifeIndicator].
                       ConfigParser object.
            configDir: Game settings directory. String.
            imageDir:  Image directory. String.
        """
        self.configDir = configDir
        self.imageDir = imageDir

        font = pygame.font.Font(None, 27)
        self.text = font.render('Lifes:', True, pygame.Color('white'))

        pos = config.get('textPosition').split(',')
        self.textPosition = (int(pos[0]), int(pos[1]))

        self.all = []
        for i in range(1, MAX_LIFES + 1):
            position = config.get('pos' + str(i))
            if position:
                position = position.split(',')
                posX = int(position[0])
                posY = int(position[1])
                self.all.append(
                    AnimatedSprite('life_crystal.conf',
                                   self.configDir,
                                   self.imageDir, (posX, posY),
                                   isActive=True))

        self.crystalGroup = pygame.sprite.Group(self.all)
Esempio n. 2
0
def main():
    global images
    global player_images
    global player
    global all_player_sprites
    global asteroid
    global asteroid_images
    global all_asteroid_sprites

    player_images = load_spritesheet_from_image(
        "./demo7images/bluebird-3-Sheet.gif", 64, 64, 4, 21)
    player = AnimatedSprite(position=(100, 100), images=player_images)

    asteroid_images = load_spritesheet_from_image(
        "./demo7images/asteroid1-Sheet.gif", 64, 64, 25, 26)
    asteroid = AnimatedSprite(position=(300, 100), images=asteroid_images)

    all_player_sprites = pygame.sprite.Group(player)
    all_asteroid_sprites = pygame.sprite.Group(asteroid)

    while True:  # main game loop
        dt = clock.tick(FPS) / 1000  # Amount of seconds between each loop.
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                pressed = pygame.key.get_pressed()
                handle_keypress(pressed)
        draw_screen()

        all_asteroid_sprites.update(dt)
        all_asteroid_sprites.draw(display_surface)
        all_player_sprites.update(dt)
        all_player_sprites.draw(display_surface)

        pygame.display.update()
Esempio n. 3
0
    global window_width, window_height
    debug_panel_text = font.render(f"abcd", True, Color.white, Color.black)
    text_rect = debug_panel_text.get_rect()
    text_rect.center = (window_width // 8, window_height // 8)
    display_surface.blit(debug_panel_text, text_rect)


def draw_screen():
    global display_surface
    display_surface.fill(Color.black)
    #draw_debug_panel()
    pygame.display.update()


images = load_images()
player = AnimatedSprite(position=(100, 100), images=images)
all_sprites = pygame.sprite.Group(player)
player_velocity = 1

# init starfield
stars = []
num_stars = 1000
total_window_widths = 10
width_max = window_width * total_window_widths
for i in range(num_stars):
    rx = randint(0, width_max)
    ry = randint(0, window_height)
    stars.append([rx, ry])


def draw_stars():
Esempio n. 4
0
    def __init__(self, startX, startY, screenWidth, screenHeight, configDir,
                 imageDir):
        """Initialize main character object.

        Args:
            startX:       X coordinate of the initial frog position.
                          Integer.
            startY:       Y coordinate of the initial frog position.
                          Integer.
            screenWidth:  Game screen width. Integer
            screenHeight: Game screen heigh. Integer.
            frameRate:    Frame rate for animations.
            configDir:    Game settings directory. String.
            imageDir:     Image directory. String.
        """
        self.configDir = configDir
        self.imageDir = imageDir
        self.screenWidth = screenWidth
        self.screenHeight = screenHeight

        self.pressedUp = False
        self.pressedDown = False
        self.pressedLeft = False
        self.pressedRight = False

        # Initial frog position.
        self.position = (startX, startY)
        self.startPosition = self.position

        # Frog animation to jump up.
        self.jumpUpAnim = AnimatedSprite('animation_frog_up.conf',
                                         self.configDir, self.imageDir,
                                         self.position)

        # Frog animation to move left when facing up.
        self.jumpUpLeftAnim = AnimatedSprite('animation_frog_left.conf',
                                             self.configDir, self.imageDir,
                                             self.position)

        # Frog animation to move right when facing up.
        self.jumpUpRightAnim = AnimatedSprite('animation_frog_right.conf',
                                              self.configDir, self.imageDir,
                                              self.position)

        # Frog animation to jump down.
        #self.jumpDownAnim = AnimatedSprite('animation_frog_up.conf',
        self.jumpDownAnim = AnimatedSprite('animation_frog_down.conf',
                                           self.configDir, self.imageDir,
                                           self.position)

        # Frog animation to move left when facing down.
        self.jumpDownLeftAnim = AnimatedSprite('animation_frog_down_left.conf',
                                               self.configDir, self.imageDir,
                                               self.position)

        # Frog animation to move rigt when facing down.
        self.jumpDownRightAnim = AnimatedSprite(
            'animation_frog_down_right.conf', self.configDir, self.imageDir,
            self.position)

        # Initial frog position.
        self.anim = self.jumpUpAnim

        # All sprites to animate at the same time for the frog.
        self.all = pygame.sprite.Group(self.jumpUpAnim)

        # Every sprite can only be moved in 4 directions in 2D space. This
        # attribute tells us, which animation is currently running: 'up',
        # 'down', 'left', 'right' and None.
        self.activeAnimation = 'up'

        # Is frog facing up? Required to know which animation to show when
        # animating stepping sideways.
        self.isFacingUp = True

        self.collisionRect = self.anim.collisionRect

        # Image to show frog after being run over by a car.
        self.deadFrog = AnimatedSprite('animation_dead.conf', self.configDir,
                                       self.imageDir, self.position)

        # Image to show when frog drawned in the river.
        self.drownedFrog = AnimatedSprite('animation_drowning.conf',
                                          self.configDir, self.imageDir,
                                          self.position)
        self.drownedFrog.cycles = 1

        # Was frog run over by a car?
        self.isDead = False

        # Has frog drowned?
        self.isDrowned = False

        # Frog is not dead, but should not move. Used to wait until user
        # presses <enter> to load next level.
        self.isLocked = False

        # Amount of lifes frog has.
        self.lifesLeft = 3

        # Boolean to mark that ran over frog image is being shown.
        self.showingDeadFrog = False

        # Boolean to mark that drowned frog image is being shown.
        self.showingDrownedFrog = False

        self.runningDrowningAnim = False

        # Debug option.
        self.drawCollisionRects = False