如果我做了一些愚蠢的事情,我很抱歉,我以前从来没有用过PYGAME. 我试图让pyGame通过查看字符串并相应地播放声音来玩摩尔斯码,尽管当我运行它时,它只播放3次短哔声和1次长哔声.这是因为同时播放多个哔声吗?有人能帮帮忙吗,因为我根本就没有玩Electron 游戏的经验. 以下是我的代码:

from pygame import mixer
import os
import time
CURR_DIR = os.path.dirname(os.path.realpath(__file__))
mixer.init()
l = ".... . .-.. ---"
h = list(l)
print(h)
def play(CURR_DIR, l):
    for i in l:
        if i == ".":
            mixer.music.load(CURR_DIR + "\short beep.mp3")
            mixer.music.set_volume(0.7)
            mixer.music.play()
            print(".")
        elif i == "-":
            mixer.music.load(CURR_DIR + "\long beep.mp3")
            mixer.music.set_volume(0.7)
            mixer.music.play()
            print("-")
        elif i == " ":
            time.sleep(1)
            print(" ")
play(CURR_DIR, l)

推荐答案

你必须等到音乐播放完pygame.mixer.music.get_busy().例如:

import os
import pygame
CURR_DIR = os.path.dirname(os.path.realpath(__file__))

pygame.mixer.init()
clock = pygame.time.Clock()

l = ".... . .-.. ---"
i = 0
pause = False
pause_end = 0
run = True
while run:
    clock.tick(100)
    if pause:
        if pygame.time.get_ticks() > pause_end:
            pause = False
    elif not pygame.mixer.music.get_busy():
        if i < len(l):
            if l[i] == ".":
                pygame.mixer.music.load(CURR_DIR + "/short beep.mp3")
                pygame.mixer.music.play(0)
                print(".")
            elif l[i] == "-":
                pygame.mixer.music.load(CURR_DIR + "/long beep.mp3")
                pygame.mixer.music.play(0)
                print("_")
            elif l[i] == " ":
                pause_end = pygame.time.get_ticks() + 1000
                pause = True
                print(" ")
            i += 1    
        else:
            run = False
    
pygame.quit()
exit()

Python相关问答推荐

更改matplotlib彩色条的字体并勾选标签?

如何在msgraph.GraphServiceClient上进行身份验证?

使用FASTCGI在IIS上运行Django频道

试图找到Python方法来部分填充numpy数组

用Python解密Java加密文件

在Python中管理打开对话框

基于索引值的Pandas DataFrame条件填充

在含噪声的3D点网格中识别4连通点模式

为什么Django管理页面和我的页面的其他CSS文件和图片都找不到?'

如何更改groupby作用域以找到满足掩码条件的第一个值?

旋转多边形而不改变内部空间关系

寻找Regex模式返回与我当前函数类似的结果

找到相对于列表索引的当前最大值列表""

在numpy数组中寻找楼梯状 struct

如何在FastAPI中替换Pydantic的constr,以便在BaseModel之外使用?'

PySpark:如何最有效地读取不同列位置的多个CSV文件

pytest、xdist和共享生成的文件依赖项

try 在单个WITH_COLUMNS_SEQ操作中链接表达式时,使用Polars数据帧时出现ComputeError

如何在Django查询集中生成带有值列表的带注释的字段?

Fake pathlib.使用pyfakefs的类变量中的路径'