import pygame
pygame.init()
pygame.mixer.init()
clock = pygame.time.Clock()
walking = pygame.mixer.Sound("Walk.mp3")
run = True
while run:
# Your game logic and drawing code will go here
if pygame.key.get_pressed()[pygame.K_SPACE]:
walking.play()
pygame.display.update()
clock.tick(30)
所以我有这段代码,我想让我的非常短的声音(不到一秒长)每秒播放多次,但它似乎只受到 fps 和括号中的数字的影响,但我希望它只受括号内的数字影响
我尝试更改数字,但它仍然经常播放,因为它每帧播放一次而不是每秒播放一次
要控制声音播放的频率,您需要引入一种机制来确保声音按指定的间隔播放,而不是每帧播放。
import pygame
import time
pygame.init()
pygame.mixer.init()
clock = pygame.time.Clock()
walking = pygame.mixer.Sound("Walk.mp3")
run = True
sound_interval = 0.5 #seconds (change to your desired interval)
last_played_time = 0
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed()
current_time = time.time()
if keys[pygame.K_SPACE] and (current_time - last_played_time) >= sound_interval:
walking.play()
last_played_time = current_time
# your game logic and drawing code will go here
pygame.display.update()
clock.tick(30)
pygame.quit()
所做的更改:
last_played_time
以跟踪上次播放声音的时间。sound_interval
定义声音播放的频率。将根据当前时间进行检查,以确定自上次播放以来是否已经过去了足够的时间。