1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/python4fun-LearnCC

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Button.py 3.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
猫姐 Отправлено 11.10.2021 03:48 c26aa47
import pygame
class Button(pygame.sprite.Sprite):
def __init__(self, image_name, pos_x, pos_y):
super(Button, self).__init__()
self.image_index = 0
self.image_list = []
self.name = image_name
self.pos_x = pos_x
self.pos_y = pos_y
pygame.mixer.init()
self.hit = pygame.mixer.Sound("./sounds/button_hit.wav")
self.hit.set_volume(0.5)
for i in range(2):
real_image_name = "./images/" + image_name + str(i) + ".png"
image = pygame.image.load(real_image_name)
self.image_list.append(image)
self.rect = self.image_list[0].get_rect(left=self.pos_x, top=self.pos_y)
def is_speaker(self):
if self.name == "speaker":
return True
else:
return False
def is_previous(self):
if self.name == "pre":
return True
else:
return False
def is_next(self):
if self.name == "next":
return True
else:
return False
def revert_image(self):
self.image_index = (self.image_index + 1) % 2
def set_index(self, index):
if self.image_index != index:
self.image_index = index
if self.image_index == 1:
self.hit.play()
def update(self):
# screen.fill("red", self.rect)
# self.screen.blit(self.image_list[self.image_index], (self.pos_x, self.pos_y))
self.image = self.image_list[self.image_index]
def draw(self, screen):
screen.blit(self.image, self.rect)
def do_mouse_on(self, mouse_x, mouse_y):
if self.rect.collidepoint(mouse_x, mouse_y):
self.set_index(1)
else:
self.set_index(0)
speaker_button = Button("speaker", 830, 115)
previous_button = Button("pre", 830, 311)
next_button = Button("next", 830, 500)
study_mode_buttons = pygame.sprite.Group()
study_mode_buttons.add(speaker_button)
study_mode_buttons.add(previous_button)
study_mode_buttons.add(next_button)
# 主菜单页面学习模式、娱乐模式,退出按钮实例化
menu_mode_study = Button("study_mode", 711, 144)
menu_mode_game = Button("play_mode", 702, 357)
menu_mode_exit = Button("game_exit", 903, 575)
menu_mode_buttons = pygame.sprite.Group()
menu_mode_buttons.add(menu_mode_study)
menu_mode_buttons.add(menu_mode_game)
menu_mode_buttons.add(menu_mode_exit)
# 娱乐模式中菜单实例化
play_mode_menu = Button("menu", 1130, 0)
# 游戏结束界面再玩一次,返回主菜单实例化
game_over_play = Button("play_again", 541, 422)
game_over_menu = Button("game_over_menu", 560, 541)
game_over_buttons = pygame.sprite.Group()
game_over_buttons.add(game_over_play)
game_over_buttons.add(game_over_menu)
# 全部通关界面,返回主菜单和退出实例化
all_pass_return = Button("pass_return", 486, 496)
all_pass_exit = Button("pass_exit", 704, 495)
all_pass_buttons = pygame.sprite.Group()
all_pass_buttons.add(all_pass_return)
all_pass_buttons.add(all_pass_exit)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/python4fun-LearnCC.git
git@api.gitlife.ru:oschina-mirror/python4fun-LearnCC.git
oschina-mirror
python4fun-LearnCC
python4fun-LearnCC
master