让矩形继续向我给他的方向移动

时间:2016-08-29 10:52:25

标签: python python-2.7 pygame

我正在制作一个蛇游戏,但我实际上使用的是矩形而不是蛇,我不能让矩形继续向我给他的方向移动它只是移动一个当我按下它,所以我想制作它不断移动如何去做。

这就是代码:

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)

1 个答案:

答案 0 :(得分:0)

如果你想让矩形继续移动,即使没有按下任何按钮,我也会推荐一个speed变量。实际上,您需要x_speedy_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_speedy_speed,主循环将“记住”它正在移动,并且仅在识别输入时停止或更改。主循环只需在每次迭代时将*_speed添加到*_location,然后计算下一次迭代的速度。

相关问题