Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pygame横向滚动:平台继续向相反方向移动到位置0_Python_Python 3.x_Pygame - Fatal编程技术网

Python Pygame横向滚动:平台继续向相反方向移动到位置0

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

我无法使用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的平台都以恒定速度向右移动,但只移动到x=0
  • 当玩家向右移动时,所有x位置>0的平台都以恒定速度向左移动,但仅在x=0之前
有时,直到x=0,平台才会一直移动。我相信当玩家的速度几乎为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