我在 Python 中创建了一个简单的基于文本的游戏,我将它与 libPd(纯数据包装器)结合使用。所有游戏代码都是在音频实现之前编写的,并按预期工作;同样,libPd 脚本本身也可以完美运行。然而,让他们一起玩得很好被证明是很棘手的。
我认为这与 while 循环和我对它们的使用有关。
以下是游戏代码的摘录 -
while True:
command = raw_input().lower()
if command == "commands":
print '"look around"'
print '"explore"'
print '"inventory"'
print '"examine"'
print '"take"'
print '"combine"'
print '"quit"'
elif command == "look" or command == "look around":
char.look()
……等等…………等等……
虽然 libPd 脚本本身如下 -
while True:
if not ch.get_queue():
for x in range(BUFFERSIZE):
if x % BLOCKSIZE == 0:
outbuf = m.process(inbuf)
samples[selector][x][0] = outbuf[(x % BLOCKSIZE) * 2]
samples[selector][x][1] = outbuf[(x % BLOCKSIZE) * 2 + 1]
ch.queue(sounds[selector])
selector = int(not selector)
libpd_release()
我最初尝试在 libPd 部分中缩进整个游戏代码,但这导致音频仅在键入命令后播放,一旦返回打印消息就停止。
我如何将两者结合起来,以使音乐保持不变,而玩家可以自由地运行其余的命令/游戏?