コード例 #1
0
    def are_colliding(self, object_1, object_2, camera):
        """Return True if 2 objects collide. the objects must have
        texture type AnimatedTexture and function get_onscr_rect(camera)"""
        obj_1_sprite = Sprite()
        obj_1_sprite.mask = object_1.texture.get_collision_mask()
        obj_1_sprite.rect = object_1.get_onscr_rect(camera)
        obj_2_sprite = Sprite()
        obj_2_sprite.mask = object_2.texture.get_collision_mask()
        obj_2_sprite.rect = object_2.get_onscr_rect(camera)

        colliding = pygame.sprite.collide_mask(obj_1_sprite, obj_2_sprite)
        if colliding is not None:
            return True
        return False
コード例 #2
0
def start_menumode():
    global fon, menumode_start_btn, menumode_info_btn, menumode_shop_btn, jar, all_sprites, process_mode, menumode_money_sprites
    global menumode_high_score_sprites, background_music_playing

    process_mode = 'menu'

    fon = pygame.transform.scale(
        pygame.image.load('data/images/menu/main_menu.png'), (width, height))
    main_screen.blit(fon, (0, 0))

    menumode_start_btn = StartButton()
    menumode_info_btn = InfoButton()
    menumode_shop_btn = ShopButton()
    jar = MenuJar()

    all_sprites = Group()
    all_sprites.add(menumode_start_btn)
    all_sprites.add(menumode_info_btn)
    all_sprites.add(menumode_shop_btn)
    all_sprites.add(jar)

    menumode_money_sprites = Group()
    transform_number(data['money'], menumode_money_sprites, (90, 20))
    menumode_money_sprites.draw(main_screen)

    menumode_high_score_sprites = Group()
    x = 1000 - 25 * (len(str(data['high score'])) + 1)
    transform_number(data['high score'], menumode_high_score_sprites, (x, 20))
    menumode_high_score_sprites.draw(main_screen)

    high_score = Sprite()
    high_score.image = pygame.image.load('data/Images/menu/high_score.png')
    high_score.mask = pygame.mask.from_surface(high_score.image)
    high_score.rect = high_score.image.get_rect()
    high_score.mask = pygame.mask.from_surface(high_score.image)
    high_score.rect.x = 760 - 25 * (len(str(data['high score'])) - 1)
    high_score.rect.y = 20
    all_sprites.add(high_score)
    all_sprites.draw(main_screen)

    pygame.display.flip()

    if not background_music_playing:
        pygame.mixer.music.load('data/Music/Background.mp3')
        pygame.mixer.music.play(-1)
        background_music_playing = True