如何在 Pygame 中移动一个奇异对象

所以我一直在尝试使用用户输入仅移动一个立方体,但是当我尝试同时移动两个立方体,而不是一个,这是我的目标。如何移动一个立方体(使用用户输入)而不是同时移动两个?谢谢 :^)


import pygame

pygame.init()


pygame.display.set_caption('Crash!')

win = pygame.display.set_mode((800, 600))


x = 150

y = 300

width = 100

height = 60

scHeight = 600

scWidth = 800

vel = 0.5


running = True


while running:

    keys = pygame.key.get_pressed()

    if keys[pygame.K_UP] and y > vel:

        y -= vel

    if keys[pygame.K_DOWN] and y < scHeight - height - vel:

        y += vel

    win.fill((0, 0, 0))

    plane = pygame.draw.rect(win, (255, 0, 0), (x, y, width, height))

    meteor = pygame.draw.rect(win, (255, 255, 0), (700, y, width, height))

    pygame.display.update()


    for event in pygame.event.get():

        if event.type == pygame.QUIT:

            running = False


catspeake
浏览 175回答 2
2回答

慕娘9325324

为立方体使用单独的位置:x1, y1 = 150, 300x2, y2 = 700, 300所以每个立方体的位置可以单独改变。例如,一个立方体可以通过箭头键移动,而另一个立方体可以通过w和skeys = pygame.key.get_pressed()if keys[pygame.K_UP] and y2 > vel:&nbsp; &nbsp; y2 -= velif keys[pygame.K_DOWN] and y2 < scHeight - height - vel:&nbsp; &nbsp; y2 += velif keys[pygame.K_w] and y1 > vel:&nbsp; &nbsp; y1 -= velif keys[pygame.K_s] and y1 < scHeight - height - vel:&nbsp; &nbsp; y1 += vel每个对象都是 id 绘制在自己的位置:plane = pygame.draw.rect(win, (255, 0, 0), (x1, y1, width, height))meteor = pygame.draw.rect(win, (255, 255, 0), (x2, y2, width, height))

眼眸繁星

PyGame 只是按照你告诉它的坐标绘制你想要它绘制的形状。因此,如果我们查看这两个pygame.draw.rect()调用,我们可以看到它们都有y,所以当您更新y用户输入的值时,您“移动”了两个矩形。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python