所以我一直在尝试使用用户输入仅移动一个立方体,但是当我尝试同时移动两个立方体,而不是一个,这是我的目标。如何移动一个立方体(使用用户输入)而不是同时移动两个?谢谢 :^)import pygamepygame.init()pygame.display.set_caption('Crash!')win = pygame.display.set_mode((800, 600))x = 150y = 300width = 100height = 60scHeight = 600scWidth = 800vel = 0.5running = Truewhile 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
2 回答
慕娘9325324
TA贡献1783条经验 获得超4个赞
为立方体使用单独的位置:
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))
眼眸繁星
TA贡献1873条经验 获得超9个赞
PyGame 只是按照你告诉它的坐标绘制你想要它绘制的形状。
因此,如果我们查看这两个pygame.draw.rect()
调用,我们可以看到它们都有y
,所以当您更新y
用户输入的值时,您“移动”了两个矩形。
添加回答
举报
0/150
提交
取消