我刚开始在Windows 10 PC上使用python 3.6.5上的pygame进行新游戏,当时我遇到了我无法解决的非常疯狂的故障。这是我的代码,我将在以后解释我的问题。
import pygame
pygame.init()
def create_window():
window = pygame.display.set_mode((800,600),pygame.HWSURFACE|pygame.DOUBLEBUF|pygame.FULLSCREEN)
create_window()
isRunning = True
while isRunning:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.type == K_a:
isRunning = False
pygame.quit()
因此,当我运行此代码时,pygame正常运行,从而创建了一个全屏黑色窗口。然后出现了鼠标,当我按A键时。当我这样做时,我无法退出pygame窗口。我进入Control + Alt + Delete任务管理器,它向我显示了桌面。图形变得不太真实,屏幕放大了。唯一的退出方法是进入任务管理器并结束python任务。然后,它又回到了正常的桌面。我看了另一个项目:pygame fullscreen mode exit我尝试了该解决方案,但是没有用。我一直在努力寻找奇怪台式机的解决方案,但是找不到。我会感谢您的帮助!
答案 0 :(得分:2)
因为没有画任何东西,所以出现黑屏。
代码仍在无限循环中运行,这就是为什么必须在任务管理器中完成它的原因。
按 A 不会执行 ,因为您的代码未正确对其进行检查:
if event.type == K_a:
应该是
if event.key == pygame.K_a:
您的桌面很奇怪,因为您使pygame将视频卡更改为800x600分辨率,而不是您的本机桌面分辨率
一切都正确,并且代码的行为与您编写的一样。
我使用上面的更改运行了代码,当我按下A
答案 1 :(得分:2)
我发现您的代码存在多个问题。以下是一些解决方案:
第一个问题是您正在使用Java Class
的地方使用com.company.example.AClass
。
AClass.java
第二个src/com/company/example
需要更改为event.type
。
第二个问题是event.key
必须以for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.type == pygame.K_a:
isRunning = False
开头,如下所示:
event.type
您的桌面看起来很模糊,因为PyGame应用程序以event.key
分辨率运行,该分辨率比大多数显示器都要小。在关闭PyGame窗口之前,它仍然处于打开状态。只要打开窗口,自定义分辨率就会保留。
希望我能帮助您!