import pygame
from stuff_that_works import Square_checkbox
pygame.init()
class MyGame:
def __init__(self):
self.gamestate = 'intro_screen'
self.run = True
self.SCREEN_WIDTH = 800
self.SCREEN_HEIGHT = 600
self.FPS = 30
self.clock = pygame.time.Clock()
self.screen = pygame.display.set_mode((self.SCREEN_WIDTH, self.SCREEN_HEIGHT))
pygame.display.set_caption('SM4')
def options_Screen(self, event):
self.screen.fill(defaults.BLACK)
checkbox_1 = Square_checkbox(0, 0, self.screen, 30, 30, defaults.RED, defaults.WHITE, 'checkbox_1')
checkbox_2 = Square_checkbox(40, 0, self.screen, 30, 30, defaults.RED, defaults.WHITE, 'checkbox_2')
checkbox_3 = Square_checkbox(-100, -140, self.screen, 30, 30, defaults.RED, defaults.WHITE, 'checkbox_3')
checkbox_4 = Square_checkbox(-100, -110, self.screen, 30, 30, defaults.RED, defaults.WHITE, 'checkbox_4')
checkbox_5 = Square_checkbox(-100, -80, self.screen, 30, 30, defaults.RED, defaults.WHITE, 'checkbox_5')
boxes = []
boxes.append(checkbox_1)
boxes.append(checkbox_2)
for box in boxes:
box.update_checkbox(event)
for box in boxes:
box.render_checkbox()
def main(self):
while self.run:
self.clock.tick(self.FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.run = False
if self.gamestate == 'options':
self.options(event)
elif self.gamestate == 'intro_screen':
self.intro_screen()
pygame.display.flip()
edit1:正如rabbid76提到的,去掉了有效的部分,增加了游戏循环。
我犯了一个错误 Checkbox
类,当在与pygame循环相同的文件上运行时,它可以正常工作,但在导入该类并创建示例时,它无法正常工作。
这个 self.active
未在对象上保存或覆盖。
我尝试使用@property获得相同的结果。
也尝试过使用 global active
但这会更改所有对象,而不仅仅是示例。
有人能帮我了解发生了什么事来找到解决方案吗?
暂无答案!
目前还没有任何答案,快来回答吧!