Python 雪碧不停地上下摇晃
我已经在我的比赛中运用了重力,它一直在拉着我的球员。然而,当我的球员站在平台上时,他总是上下摇晃。我怎样才能解决这个问题Python 雪碧不停地上下摇晃,python,pygame,collision-detection,Python,Pygame,Collision Detection,我已经在我的比赛中运用了重力,它一直在拉着我的球员。然而,当我的球员站在平台上时,他总是上下摇晃。我怎样才能解决这个问题 PLAYER_ACC = 0.65 PLAYER_FRICTION = -0.12 PLAYER_GRAVITY = 0. class Player(pg.sprite.Sprite): def __init__(self, game, x, y): self.pos = vec(WIDTH / 2, HEIGHT / 2) self
PLAYER_ACC = 0.65
PLAYER_FRICTION = -0.12
PLAYER_GRAVITY = 0.
class Player(pg.sprite.Sprite):
def __init__(self, game, x, y):
self.pos = vec(WIDTH / 2, HEIGHT / 2)
self.vel = vec(0, 0)
self.acc = vec(0, 0
def collision_with_walls(self):
collision = pg.sprite.spritecollide(self, self.game.walls, False)
if collision:
self.pos.y = collision[0].rect.top
self.vel.y = 0
def update(self):
self.acc.x += self.vel.x * PLAYER_FRICTION
self.vel += self.acc
self.pos += self.vel + 0.5 * self.acc
self.collision_with_walls()
self.rect.midbottom = self.pos
感谢所有/任何帮助 为什么选择
collision
(在collision\u-with-walls(self)
)中的第一个元素?你是什么意思?我假设@clabe45指的是这个索引移动:collision[0]
@patrick是的,为什么选择collision[0]
而不是collision[1]
或collision[2]
?这是因为在Python中,我们从0开始计算,而不是从1开始。”“碰撞[0]”意味着我们的精灵会先与第一个物体碰撞,然后再与之碰撞。为什么在collision
(在collision\u with_walls(self)
)中选择第一个元素?你是什么意思?我假设@clabe45指的是这个索引移动:collision[0]
@patrick是的,为什么collision[0]
与冲突[1]或冲突[2]相反?这是因为在Python中,我们从0开始计数,而不是从1开始“碰撞[0]”意味着我们的精灵将与第一个物体碰撞,然后与第一个物体碰撞。