我有一个名为Player的精灵,当它与另一个名为Powerup的精灵发生碰撞时,它会在负y方向上启动精灵播放器达700像素。
精灵播放器自我发射700像素之后,我想要播放声音,但要做到这一点,我需要找到一种方法来检查精灵播放器是否已经完成了700像素的启动。
基本上是这样的:
if sprite_player collides with sprite_powerup:
sprite_playerYcoordbeforepowerup = previous_Y
launch_player_up_700pixels
then check
if sprite_playercurrentYcoord - previous_Y == 700:
playSound()
是否有与pygame.mouse.get_pos()函数类似的函数返回鼠标光标的位置,而是返回精灵的x和y值?如果没有,我将如何做到这一点?
对不起,如果措辞严重,希望它可读:)
答案 0 :(得分:1)
您应该使用“ islaunched”变量的某种形式表示,以告诉系统播放器是否刚刚启动,但会在循环的下一次迭代时重置。
或者,您可以简单地在y改变后在动作循环内播放声音(但是,如果运动是基于速度的话,则不是这样)。我的意思是,您很可能会简单地将玩家向上传送700px,在这种情况下,动作和声音之间的延迟是无关紧要的,并且很可能会损害游戏性。