gpt4 book ai didi

python - Pygame 卡住并且对按键或尝试关闭窗口没有反应

转载 作者:行者123 更新时间:2023-12-01 06:43:49 27 4
gpt4 key购买 nike

我检查了其他类似的问题,但找不到我的问题的答案。我正在尝试在 pygame 中制作一个简单的国际象棋游戏来练习一些人工智能编码,但是我遇到了一些问题,因为 pygame 窗口拒绝以任何方式关闭或对输入使用react。

我在屏幕上看到棋盘,但随后一切都挂起。这很奇怪,因为我以为我已经设置了正确终止游戏的方法,但由于某种原因它们不起作用。

到目前为止我的代码是:

import pygame
import sys

class ChessGame():
'''An overall class controlling a chess game'''

def __init__(self):
'''Initialise the class and set up variables'''

pygame.init()
self.screen = pygame.display.set_mode((600, 600))
self.bg = pygame.image.load('images/board.jpg')


def _check_keydown_events(self, event):
'''Take action on user key presses'''

if event.key == pygame.K_ESCAPE:
sys.exit()

def check_events(self):
'''React to user input'''

for event in pygame.event.get():
if pygame.event == pygame.QUIT:
sys.exit()
elif pygame.event == pygame.KEYDOWN:
self._check_keydown_events(event)

def update_screen(self):

self.screen.blit(self.bg, (0,0))
pygame.display.flip()

def run_game(self):
'''Run main game loop'''
clock = pygame.time.Clock()

while True:
self.update_screen()
self.check_events()
clock.tick(2)

def main():
chess = ChessGame()
chess.run_game()

if __name__ == '__main__':
main()

最佳答案

pygame.event是一个模块。引用事件对象的变量名称是event
事件的类型存储在 pygame.event.Event.type 属性中。对象(事件类型):

class ChessGame():

# [...]

def check_events(self):
'''React to user input'''

for event in pygame.event.get():

#if pygame.event == pygame.QUIT:
if event.type == pygame.QUIT:
sys.exit()

# elif pygame.event == pygame.KEYDOWN:
elif event.type == pygame.KEYDOWN:
self._check_keydown_events(event)

关于python - Pygame 卡住并且对按键或尝试关闭窗口没有反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59333333/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com