Python Pygame横向滚动:平台继续向相反方向移动到位置0
我无法使用pygame实现平台成型器的功能性横向滚动:每当玩家没有水平居中时,我希望世界(即平台)滚动 我相信主循环中的相关代码部分是:Python Pygame横向滚动:平台继续向相反方向移动到位置0,python,python-3.x,pygame,Python,Python 3.x,Pygame,我无法使用pygame实现平台成型器的功能性横向滚动:每当玩家没有水平居中时,我希望世界(即平台)滚动 我相信主循环中的相关代码部分是: if self.player.rect.center[0] != WIDTH/2: self.player.pos.x -= self.player.vel.x for pl in self.platforms: pl.rect.x -= self.player.vel.x 然而,发生的事情是 当玩家向左移动时,所有x位置0
if self.player.rect.center[0] != WIDTH/2:
self.player.pos.x -= self.player.vel.x
for pl in self.platforms:
pl.rect.x -= self.player.vel.x
然而,发生的事情是
- 当玩家向左移动时,所有x位置<0的平台都以恒定速度向右移动,但只移动到x=0李>
- 当玩家向右移动时,所有x位置>0的平台都以恒定速度向左移动,但仅在x=0之前
我错过了什么?我真的不明白为什么平台的行为如此怪异。我很确定原因是您在self.player.pos.x和p1.rect.x上都使用了(+=velocity)方法。这会导致多个问题,因为玩家只能在不在中心的情况下移动(这意味着一旦它在中心,它就不能离开),平台以与玩家相同的速度和方向移动。这就是造成这些奇怪效果的原因。(顺便说一句,你需要把水平线分成两半,否则你的移动速度会加倍!!!)
问题必须出现在代码的不同部分-因此,如果没有其他代码,我们无法提供帮助。顺便说一句:您可以使用
centerx
而不是center[0]
抱歉,但除非您贡献所有代码,否则我们无法帮助您。我们需要知道不同的部分如何相互作用,以找到您的问题。
self.player.pos.x -= self.player.vel.x/2
if self.player.rect.center[0] != WIDTH/2:
for plat in self.platforms:
plat.rect.x += self.player.vel.x/2