微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用python3移动矩形

如何解决使用python3移动矩形

我正在尝试在pygame中移动一个矩形 这是我要开始工作的代码

currBlock1 = pygame.draw.rect(surface,(0,255,255),(340,50,60,30))
currBlock2 = pygame.draw.rect(surface,(310,80,30))
currBlock1.move(340,80)
currBlock2.move(310,110)

这是怎么了?

解决方法

pygame.Rect.move不会移动矩形本身。该方法返回一个新的并移动的矩形。您必须使用就地运行的 pygame.Rect.move_ip。此外,move / move_ip的参数是偏移量而不是位置:

currBlock1.move_ip(0,30)
currBlock2.move_ip(0,30)

实际上,您在每一帧中都重新创建了相同的矩形。您需要在应用程序循环之前构造pygame.Rect()对象,并且必须在循环中移动它:

currBlock1 = pygame.Rect(340,50,60,30)
currBlock2 = pygame.Rect(310,80,30)

# application loop
while run:

    # [...]

    pygame.draw.rect(surface,(0,255,255),currBlock1)
    pygame.draw.rect(surface,currBlock2)
    currBlock1.move_ip(0,30)
    currBlock2.move_ip(0,30)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。