如何解决使用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 举报,一经查实,本站将立刻删除。