为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

catspeake 2022-01-18 17:11:54
所以我一直在尝试使用用户输入仅移动一个立方体,但是当我尝试同时移动两个立方体,而不是一个,这是我的目标。如何移动一个立方体(使用用户输入)而不是同时移动两个?谢谢 :^)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))


查看完整回答
反对 回复 2022-01-18
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

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


查看完整回答
反对 回复 2022-01-18
  • 2 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信