我试图在PyGame中使用if语句,以便在玩家碰到屏幕边缘时使声音影响游戏,但是我似乎在if语句中犯了一个错误;换句话说,我检查条件的方式是错误的,因为我不想让我的声音效果在用户位于屏幕边缘时持续播放,我想让声音在播放器位于屏幕边缘时播放一次。我也不想让我的播放器滑出屏幕。
我在名为'bump_sound'的变量中创建了一个处理播放命令的变量:
bump_sound = pygame.混音器.声音(“bump.wav”)
下面是if语句的样子:
# These if statements check to make sure the player won't slide off the screen.
# They also check if the player hits the edge; if so, play the bump sound.
if self.rect.x >= 650:
self.rect.x = 650
bump_sound.play()
if self.rect.x >= 650:
self.rect.x = 650
if self.rect.x < 0:
self.rect.x = 0
bump_sound.play()
if self.rect.y > 325:
self.rect.y = 325
bump_sound.play()
if self.rect.y < 0:
self.rect.y = 0
bump_sound.play()
谢天谢地,玩家不会从屏幕上滑下来;但是,声音一直在播放。
1条答案
按热度按时间2uluyalo1#
您必须使用
>
而不是>=
:另一种方法是使用布尔变量。一个指示玩家是否击中边缘,另一个指示玩家是否在前一帧中击中边缘。只有当玩家在前一帧中触及边缘但没有击中时,才会播放声音:
x一个一个一个一个x一个一个二个x