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

OSCHINA-MIRROR/python4fun-LearnCC

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
GameLevel.py 4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
猫姐 Отправлено 30.03.2022 16:10 c63a02c
import pygame
from setting import GAME_LEVEL_MAX
from db import *
from setting import all_cc_labels, GAME_LEVEL_MODE,\
GAME_PASS_ALL_MODE, GAME_PLAY_MODE
# 关卡界面中关卡显示
class GameLevelShow:
def __init__(self, game_level):
self.game_level = 0
self.level_images = []
self.pos_x = 115
self.dx = 120
self.pos_y = 75
self.dy = 120
self.rects_list = []
self.update(game_level)
def update(self, newest_game_level):
# if self.game_level != newest_game_level:
self.level_images = []
self.rects_list = []
self.game_level = newest_game_level
for start in range(self.game_level + 1):
image_name = "./images/rest/levelnum/level" + str(start+1) + ".png"
image = pygame.image.load(image_name)
self.level_images.append(image)
self.rects_list.append(image.get_rect())
column = 0
row = 0
for rect in self.rects_list:
rect.x = self.pos_x + column * self.dx
rect.y = self.pos_y + row * self.dy
column += 1
if column == 9:
column = 0
row += 1
def is_collide(self, mouse_x, mouse_y):
game_level = 0
for rect in self.rects_list:
if rect.collidepoint(mouse_x, mouse_y):
return True, game_level
game_level += 1
return False, -1
def draw(self, screen):
column = 0
row = 0
for image in self.level_images:
screen.blit(image, (self.pos_x + column * self.dx, self.pos_y + row * self.dy))
column += 1
if column == 9:
column = 0
row += 1
# 管理 玩家当前玩的是哪一关, 玩家通过的最大关卡,正确僵尸所举字的index
class GameLevelProcess:
def __init__(self):
self.game_level, self.max_pass_game_level = get_game_level()
self.playing_level = 0 # 记录用户正在玩的关卡
self.current_text_index = 0 # 记录用户所选关卡的第一个汉字索引
self.end_text_index = 0 # 当前这一关的最后一个汉字索引
self.game_level_show = GameLevelShow(self.max_pass_game_level)
def get_game_level(self):
return self.game_level
def get_max_game_level(self):
return self.max_pass_game_level
def set_playing_level(self, playing_level):
self.playing_level = playing_level
self.current_text_index = playing_level * 7
self.end_text_index = self.current_text_index + 7
def add_playing_game_level(self):
self.playing_level += 1
def get_playing_game_level(self):
return self.playing_level
def update_max_game_level(self):
if self.playing_level > self.max_pass_game_level:
self.max_pass_game_level = self.playing_level
def add_text_index(self, increment=1):
self.current_text_index += increment
def go_next(self):
self.add_text_index()
if self.current_text_index == self.end_text_index:
self.playing_level += 1
if self.playing_level == GAME_LEVEL_MAX:
return GAME_PASS_ALL_MODE
else:
self.update_max_game_level()
self.game_level_show.update(self.max_pass_game_level)
return GAME_LEVEL_MODE
return GAME_PLAY_MODE
def get_current_text_index(self):
return self.current_text_index
def draw_game_level(self, screen):
self.game_level_show.draw(screen)
def choose_game_level(self, x, y):
return self.game_level_show.is_collide(x, y)
def get_current_text_label(self):
return all_cc_labels[self.current_text_index]
def update_game_level(self):
update("game_level", str(self.game_level))
update("max_game_level", str(self.max_pass_game_level))

Опубликовать ( 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