我无法使用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之前不会一直移动。我相信当玩家速度几乎为0时它们会停止。
我错过了什么?我真的不明白为什么平台表现得如此奇怪。
答案 0 :(得分:0)
我很确定这是因为你在self.player.pos.x和p1.rect.x上都使用了(+ = velocity)方法。这会导致多个问题,因为玩家只能在不在中心时移动(这意味着一旦它在中心它没有出来),并且平台以相同的速度和相同的方向移动球员应该是。这就是导致这些奇怪效果的原因。 (你需要将速度分成两半,否则你的移动速度会快两倍!)
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