好的,我正在使用 pygame 制作 2D 卷轴游戏,但希望能够控制何时考虑碰撞。例如,在我的玩家碰撞并死亡后,他立即在屏幕中间重生,问题是附近经常有另一个碰撞对象会立即杀死玩家。我想要的是一小段时间,在这段时间内,玩家不会受到碰撞,允许它首先移动到安全的地方,然后继续正常播放广告。我在想也许将重生放在一个虚拟精灵组中,然后随着时间的推移将其移除并将其添加到另一个有碰撞的组中。我真的不知道。
问问题
315 次
1 回答
0
当玩家死亡时,我会设置一个变量,其中包含您希望它无懈可击的帧数。当您进行碰撞检测时,您可以检查玩家是否还剩下任何无敌帧,并且仅在没有剩余帧时处理碰撞。
def kill_player(player):
# handle moving the player after death, anything else you need to do
# set player invulnerability to 30 frames
player_invulnerable_frames = 30
if environment_rect.collides(player_rect) and player_invulnerable_frames = 0:
# perform collision response stuff here
在您的游戏循环或更新函数中,如果当前大于零,您可以减少无敌帧的数量
while(running):
# your game loop stuff
if player_invulnerable_frames > 0:
player_invulnerable_frames -= 1
于 2013-05-22T17:51:18.740 回答