pyxen.Sound

附加到 Entity 作为组件的短音频片段。

Sound 完全加载到内存中——用于跳跃、击中和拾取等短效果。

有关音频概念,请参见音频


构造函数

Sound(filename)

一个必需的位置参数:项目中 WAV 音频素材的名称。


参数

参数类型描述
filenamestrWAV 素材的名称

示例

jump_sound = Sound("jump")

附加 Sound

在生成时:

sfx = world.spawn(sound=Sound("jump"))

或稍后:

entity.sound = Sound("jump")

分配声音会立即开始播放。


组件属性

通过 entity.sound 访问:

属性类型读/写描述
loopbool读/写启用循环
volumefloat读/写增益(限制 >= 0.0)
panfloat读/写立体声声像(-1.0 到 1.0)
timefloat只读当前播放位置(秒)
durationfloat只读总时长(秒)
finishedbool只读播放完成时为 True

loop

entity.sound.loop = True

启用后,声音结束后自动重新开始。


volume

entity.sound.volume = 0.5

低于 0.0 的值被限制为 0.0


pan

entity.sound.pan = -1.0  # full left
entity.sound.pan =  1.0  # full right
entity.sound.pan =  0.0  # center

限制在 -1.01.0 范围内。


time

t = entity.sound.time

只读。当前播放位置(秒)。


duration

d = entity.sound.duration

只读。声音的总时长(秒)。


finished

if entity.sound.finished:
    world.destroy(entity)

只读。当声音播放完成时为 True(且 loopFalse)。


格式

Sound 素材必须是 WAV 文件。


常见错误

缺少文件名

Sound()
ValueError: Sound must have a file

无效素材

Sound("nonexistent")

声音对象会被创建,但播放会静默失败并记录警告。