我在pycharm中使用了这段代码,但是所有事件的打印均无效(退出,单击鼠标键或按下键盘上的键)
虽然我看到了pygame窗口,但是事件不起作用。
我还使用了get()而不是wait(),但还是没有运气。
有什么想法吗?
import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
while True:
event = pygame.event.wait()
if event.type == pygame.QUIT:
print('Quit')
if event.type == pygame.KEYDOWN:
print('Key Down')
print(event.key)
print(event.unicode)
if event.type == pygame.KEYUP:
print('Key Up')
print(event.key)
if event.type == pygame.MOUSEBUTTONDOWN:
print('Mouse Button Down')
print(event.pos)
print(event.button == pygame.BUTTON_RIGHT)
print(event.button == pygame.BUTTON_LEFT)
if event.type == pygame.MOUSEBUTTONUP:
print('Mouse Button Up')
print(event.pos)
print(event.button == pygame.BUTTON_RIGHT)
print(event.button == pygame.BUTTON_LEFT)
if event.type == pygame.MOUSEMOTION:
print('Mouse Motion')
print(event.pos)
print(event.rel)
更新 我发现这是pycharm的问题。 当我用pygame运行任何代码时,仅弹出一个黑色的pygame窗口,它不运行任何其他代码(事件,用颜色填充窗口,...)。甚至pygame窗口也不在我指定的尺寸内。
这里是另一个代码示例。
import pygame
pygame.init()
screen = pygame.display.set_mode((200, 200))
red = (255, 0, 0)
screen.fill(red)
pygame.display.update()
pygame.time.delay(10000)
当我在VS代码中运行它时:
当我在pycharm中运行它时:(:
我还为VS代码和pycharm定义了相同的解释器,并且我已经重新安装了pygame软件包。
答案 0 :(得分:0)
您可以尝试使用完整的游戏循环,因为这会反复更新窗口。
尝试:
import pygame
pygame.init()
screen = pygame.display.set_mode((200, 200))
red = (255, 0, 0)
running = True
while running:
screen.fill(red)
pygame.display.flip()
for event in pygame.event.get():
if event.type = pygame.QUIT:
running = False
pygame.quit()
答案 1 :(得分:0)
我使用的是pycharm,但是所有代码都没醒,所以我用鼠标右键单击它,然后选择在python cnsole中运行。 要么 :::::::::::: SHIFT + ALT + E