微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 Pygame 中的表面删除有效的文本?

如何解决如何从 Pygame 中的表面删除有效的文本?

我想在 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 举报,一经查实,本站将立刻删除。