单向场景切换版本 #1
No files matched your search
Binary file not shown.
@@ -1,5 +1,16 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
class GameConfig:
|
class GameConfig:
|
||||||
game_name = "Test Game"
|
game_name = "Test Game"
|
||||||
window_x = 1920/2
|
window_x = 1920/2
|
||||||
window_y = 1080/2
|
window_y = 1080/2
|
||||||
bg_color = (0, 0, 0)
|
bg_color = (0, 0, 0)
|
||||||
|
|
||||||
|
def data_path():
|
||||||
|
file_path = os.path.abspath(__file__)
|
||||||
|
project_path = os.path.dirname(os.path.dirname(os.path.dirname(file_path)))
|
||||||
|
data_path = os.path.join(project_path, "data")
|
||||||
|
return data_path
|
||||||
|
|
||||||
|
print(data_path())
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
import pygame
|
import pygame
|
||||||
from src.config.color import Color
|
from src.config.color import Color
|
||||||
|
from src.config.game_config import data_path, GameConfig
|
||||||
from src.scenes.base_scene import BaseScene
|
from src.scenes.base_scene import BaseScene
|
||||||
from src.scenes.game_scene import GameScene
|
from src.scenes.game_scene import GameScene
|
||||||
|
|
||||||
@@ -8,14 +11,42 @@ class MainMenuScene(BaseScene):
|
|||||||
def __init__(self, screen):
|
def __init__(self, screen):
|
||||||
super().__init__(screen)
|
super().__init__(screen)
|
||||||
self.button_status = False
|
self.button_status = False
|
||||||
|
self.debug_status = False
|
||||||
|
|
||||||
|
# 设置字体
|
||||||
|
font_file = os.path.join(data_path(),"Dymon-ShouXieTi.otf")
|
||||||
|
self.font = pygame.font.Font(font_file,16)
|
||||||
|
|
||||||
|
# 文本
|
||||||
|
self.game_info_text = self.font.render('按任意键开始游戏', True, Color.white)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
pygame.draw.rect(self.screen, Color.white, [10,20,30,40])
|
# 按键按下则切换场景
|
||||||
if self.button_status:
|
if self.button_status:
|
||||||
self.switch_to_scene(GameScene)
|
self.switch_to_scene(GameScene)
|
||||||
|
|
||||||
|
# 显示提示文本
|
||||||
|
|
||||||
|
screen_rect = self.screen.get_rect() # 获取屏幕矩形
|
||||||
|
text_rect = self.game_info_text.get_rect() # 获取文本矩形
|
||||||
|
self.__show(text_rect, (0, 15))
|
||||||
|
text_rect.center = screen_rect.center # 将文本居中到屏幕
|
||||||
|
self.screen.blit(self.game_info_text, text_rect.topleft)
|
||||||
|
|
||||||
|
self.__show(screen_rect)
|
||||||
|
self.__show(text_rect,(0,30))
|
||||||
|
self.__show(text_rect.center,(0,45))
|
||||||
|
|
||||||
def handle_event(self, event):
|
def handle_event(self, event):
|
||||||
if event.type == pygame.KEYDOWN:
|
if event.type == pygame.KEYDOWN:
|
||||||
self.button_status = True
|
self.button_status = True
|
||||||
if event.type == pygame.KEYUP:
|
if event.type == pygame.KEYUP:
|
||||||
self.button_status = False
|
self.button_status = False
|
||||||
|
|
||||||
|
def __show(self, info, dest=(0, 0)):
|
||||||
|
if not self.debug_status:
|
||||||
|
return
|
||||||
|
if not isinstance(info, str):
|
||||||
|
info = str(info)
|
||||||
|
info_text = self.font.render(info, True, Color.white)
|
||||||
|
self.screen.blit(info_text, dest)
|
||||||
Reference in new issue
Block a user