我正在尝试在 pygame 中移动一个矩形这是我正在尝试工作的代码:currBlock1 = pygame.draw.rect(surface, (0, 255, 255), (340, 50, 60, 30))currBlock2 = pygame.draw.rect(surface, (0, 255, 255), (310, 80, 60, 30))currBlock1.move(340, 80)currBlock2.move(310, 110)这里有什么问题吗?
1 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
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, 60, 30)
# application loop
while run:
# [...]
pygame.draw.rect(surface, (0, 255, 255), currBlock1)
pygame.draw.rect(surface, (0, 255, 255), currBlock2)
currBlock1.move_ip(0, 30)
currBlock2.move_ip(0, 30)
添加回答
举报
0/150
提交
取消