我正在制作一个蛇游戏,但我实际上使用的是矩形而不是蛇,我不能让矩形继续向我给他的方向移动它只是移动一个当我按下它,所以我想制作它不断移动如何去做。
这就是代码:
def keys ():
pressed = pygame.key.get_pressed()
for i in range(2):
if pressed[pygame.K_UP]:
# rect.move_ip(0,-3)
rect2.move_ip(0, -3)
if pressed[pygame.K_DOWN]:
# rect.move_ip(0,3)
rect2.move_ip(0, 3)
if pressed[pygame.K_LEFT]:
# rect.move_ip(-3,0)
rect2.move_ip(-3, 0)
if pressed[pygame.K_RIGHT]:
# rect.move_ip(3,0)
rect2.move_ip(3, 0)
答案 0 :(得分:0)
如果你想让矩形继续移动,即使没有按下任何按钮,我也会推荐一个speed
变量。实际上,您需要x_speed
和y_speed
。
x_speed = y_speed = 0
x_location = y_location = 0
def keys():
global x_speed
global y_speed
pressed = pygame.key.get_pressed()
for i in range(2):
if pressed[pygame.K_UP]:
y_speed = 3
if pressed[pygame.K_DOWN]:
y_speed = -3
if pressed[pygame.K_LEFT]:
x_speed = -3
if pressed[pygame.K_RIGHT]:
x_speed = 3
while True:
keys()
x_location += x_speed
y_location += y_speed
pygame.draw.rect(SCREEN, COLOR, (x_location, y_location, WIDTH, HEIGHT))
通过使用x_speed
和y_speed
,主循环将“记住”它正在移动,并且仅在识别输入时停止或更改。主循环只需在每次迭代时将*_speed
添加到*_location
,然后计算下一次迭代的速度。