pygame checkbox类在本地工作,但在导入时不工作

ulydmbyx  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(320)
  1. import pygame
  2. from stuff_that_works import Square_checkbox
  3. pygame.init()
  4. class MyGame:
  5. def __init__(self):
  6. self.gamestate = 'intro_screen'
  7. self.run = True
  8. self.SCREEN_WIDTH = 800
  9. self.SCREEN_HEIGHT = 600
  10. self.FPS = 30
  11. self.clock = pygame.time.Clock()
  12. self.screen = pygame.display.set_mode((self.SCREEN_WIDTH, self.SCREEN_HEIGHT))
  13. pygame.display.set_caption('SM4')
  14. def options_Screen(self, event):
  15. self.screen.fill(defaults.BLACK)
  16. checkbox_1 = Square_checkbox(0, 0, self.screen, 30, 30, defaults.RED, defaults.WHITE, 'checkbox_1')
  17. checkbox_2 = Square_checkbox(40, 0, self.screen, 30, 30, defaults.RED, defaults.WHITE, 'checkbox_2')
  18. checkbox_3 = Square_checkbox(-100, -140, self.screen, 30, 30, defaults.RED, defaults.WHITE, 'checkbox_3')
  19. checkbox_4 = Square_checkbox(-100, -110, self.screen, 30, 30, defaults.RED, defaults.WHITE, 'checkbox_4')
  20. checkbox_5 = Square_checkbox(-100, -80, self.screen, 30, 30, defaults.RED, defaults.WHITE, 'checkbox_5')
  21. boxes = []
  22. boxes.append(checkbox_1)
  23. boxes.append(checkbox_2)
  24. for box in boxes:
  25. box.update_checkbox(event)
  26. for box in boxes:
  27. box.render_checkbox()
  28. def main(self):
  29. while self.run:
  30. self.clock.tick(self.FPS)
  31. for event in pygame.event.get():
  32. if event.type == pygame.QUIT:
  33. self.run = False
  34. if self.gamestate == 'options':
  35. self.options(event)
  36. elif self.gamestate == 'intro_screen':
  37. self.intro_screen()
  38. pygame.display.flip()

edit1:正如rabbid76提到的,去掉了有效的部分,增加了游戏循环。
我犯了一个错误 Checkbox 类,当在与pygame循环相同的文件上运行时,它可以正常工作,但在导入该类并创建示例时,它无法正常工作。
这个 self.active 未在对象上保存或覆盖。
我尝试使用@property获得相同的结果。
也尝试过使用 global active 但这会更改所有对象,而不仅仅是示例。
有人能帮我了解发生了什么事来找到解决方案吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题