animation - 当我运行此示例 pygame 代码时,DOS 窗口出现并突然消失,无需等待任何用户输入

标签 animation pygame window screen

当我运行此示例 PyGame 代码时,会出现一个命令窗口,然后突然消失,无需等待任何用户输入。怎么了?我是一个新手,正在尝试学习Python。我以前只有 VBA 经验。

Python版本是:Python 3.8。

import pygame
import sys
pygame.init() 

win = pygame.display.set_mode((500,500))
pygame.display.set_caption("First Game") 

x = 50
y = 50
width = 40
height = 60
vel = 5 

run = True 

while run:
    pygame.time.delay(100) 

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False 

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        x -= vel 

    if keys[pygame.K_RIGHT]:
        x += vel 

    if keys[pygame.K_UP]:
        y -= vel 

    if keys[pygame.K_DOWN]:
        y += vel 
    win.fill((0,0,0))  # Fills the screen with black
    pygame.draw.rect(win, (255,0,0), (x, y, width, height))
    pygame.display.update()
    pygame.quit()
    sys.exit()

最佳答案

你的pygame.quit()sys.exit()都应该在run外部循环,以便它们仅在循环退出时执行。

您现在所拥有的将运行一次单次迭代,因为它在该迭代结束时退出。有些人说短游戏是好游戏,但你可能会认为太远了:-)

当我运行你的代码时,我看到的是带有红色方 block 的窗口短暂出现,然后整个程序退出。当我修复您的缩进时,窗口保留在那里,我可以使用箭头键移动红色方 block :

enter image description here

换句话说,这是您需要的表格:

run = True
while run:
    do_stuff()
pygame.quit()
sys.exit() # Probably not needed since you'll exit anyway.

鉴于窗口消失了,听起来您似乎是从 IDE 运行它。我总是喜欢从命令行运行它,这样,如果发生异常(或显示重要输出),我可以在程序完成后看到它。

关于animation - 当我运行此示例 pygame 代码时,DOS 窗口出现并突然消失,无需等待任何用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61786986/

相关文章:

animation - 是否可以在 WebGL 中导入/处理高级灯光属性 (IES)?

swift - 在 UIView.animate 期间动画形状图层类型自定义 UIViews?

python - 使用 tkinter 后 Pygame 窗口不会移动或关闭

python - 如何在pygame中检测两个图像的碰撞

javascript - CSS 过渡和浏览器选项卡

html - 为事件添加 IMG 标签

Python 2.7 - Pygame - 相交两个移动 Sprite

windows-runtime - WinJS 窗口大小

c++ - 将窗口设置为最顶层

ios - 交互式关闭 ViewController