因此,我一直尝试使用用户输入仅移动一个多维数据集,但是当我尝试统一移动两个多维数据集时,我没有一个目标。如何移动一个立方体(使用用户输入)而不是同时移动两个立方体?谢谢:^)
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
答案 0 :(得分:0)
PyGame只是按照您告诉的坐标绘制您想要绘制的形状。
因此,如果我们同时查看两个pygame.draw.rect()
调用,则可以看到它们都包含y
,因此,当您在用户输入上更新y
值时,将“移动”两个矩形。
答案 1 :(得分:0)
对多维数据集使用单独的位置:
x1, y1 = 150, 300
x2, y2 = 700, 300
因此,每个立方体的位置都可以单独更改。例如一个立方体可以通过箭头键移动,而另一个立方体可以通过 w 和 s
移动keys = pygame.key.get_pressed()
if keys[pygame.K_UP] and y2 > vel:
y2 -= vel
if keys[pygame.K_DOWN] and y2 < scHeight - height - vel:
y2 += vel
if keys[pygame.K_w] and y1 > vel:
y1 -= vel
if keys[pygame.K_s] and y1 < scHeight - height - vel:
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))