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
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