问题描述
我想在 Pygame 中创建一个以标题屏幕开头的游戏,当您单击“创建游戏”时,它应该会将您带到另一个屏幕,您可以在其中选择玩家数量。到目前为止,当我单击“创建游戏”时,会显示可以选择玩家数量的选项,但文本“创建游戏”仍然存在。 这是我的代码: 标签.py
import pygame
class Label:
def __init__(self,text,font_size,pos,color,surface):
self.surface = surface
x,y = pos
font = pygame.font.SysFont("monospace",font_size)
self.showed_text = font.render(text,True,color)
self.textRect = self.showed_text.get_rect()
self.textRect.center = (x,y)
def update(self):
self.surface.blit(self.showed_text,self.textRect)
客户端.py
from label import Label
from network import Network
import pygame
import pickle
pygame.init()
screen = pygame.display.set_mode((1440,810))
clock = pygame.time.Clock()
screen_width,screen_height = pygame.display.get_surface().get_size()
bg_surface = pygame.image.load('./bilder/background3.jpg').convert()
bg_surface = pygame.transform.scale(bg_surface,(screen_width,screen_height))
n = Network()
class MainScreen:
def __init__(self):
self.text_create = Label("Spiel erstellen",20,(screen_width // 2,screen_height // 3),(255,0),bg_surface)
def update(self):
self.text_create.update()
def change_scene(self):
global scene
if pygame.mouse.get_pressed()[0]:
mx,my = pygame.mouse.get_pos()
if self.text_create.textRect.collidepoint(mx,my):
scene.
scene = scenes["Create"]
class CreateGame:
def __init__(self):
self.labels = []
for e in range(1,5):
self.labels.append(Label(f"{e} Spieler",(screen_width // 5 * e,screen_height // 2),bg_surface))
def update(self):
for text in self.labels:
text.update()
def change_scene(self):
print("Change scene")
scenes = {"Main": MainScreen(),"Create": CreateGame() }
scene = scenes["Main"]
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
pygame.quit()
if event.type == pygame.MOUSEBUTTONDOWN:
scene.change_scene()
""" msg = ['c']
msg_got = n.send(msg)
print(msg_got)"""
screen.blit(bg_surface,(0,0))
scene.update()
pygame.display.flip()
pygame.display.update()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)