【发布时间】:2014-07-11 17:24:54
【问题描述】:
我必须通过 pygame 窗口直接移动矩形对象。我用pygame尝试了一些代码。代码是
import pygame
from itertools import cycle
pygame.init()
screen = pygame.display.set_mode((300, 300))
s_r = screen.get_rect()
player = pygame.Rect((100, 100, 50, 50))
timer = pygame.time.Clock()
movement = "straight"
x = 0
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
raise
if movement == 'straight':
x += 50
screen.fill(pygame.color.Color('Black'))
pygame.draw.rect(screen, pygame.color.Color('Grey'), player)
pygame.display.flip()
timer.tick(25)
这里的图像没有移动。我需要的是图像必须直线移动。
【问题讨论】:
-
你能修正你的缩进吗?首先,您更改了
x,但您从未使用它。看看这个:pygame.org/docs/ref/rect.html。此外,每次循环时,都需要重新绘制矩形。 -
@MattShank,我已回滚您的编辑。由于 python 是一种缩进非常重要的语言,因此对它的任何修改都应该由 OP 完成。您要求他们澄清是正确的,只是您自己没有这样做。缩进可能是他们问题的一部分,并且为他们“纠正”它可能会使问题本身无效。在这种情况下,我并不是说这是真的,但是当涉及到 python 和其他有空格意味着什么的语言时,不要乱用缩进。
-
@indivisible,明白了。
-
@user3830347 下次在代码上使用按钮
{}来保持缩进问题。
标签: python pygame pygame-surface