swift - 停止 SKAudioNode 播放
问题描述
我试图仅在玩家移动时播放脚步声。我添加了一个检查以查看播放器是否已经在移动,以确保它不会在彼此之上播放音频。
由于某种原因footstepSound.run(SKAction.stop())
无法正常工作,这导致一堆曲目相互播放,这听起来很糟糕。
有任何想法吗?
let footstepSound = SKAudioNode(fileNamed: "Footsteps.mp3")
if (degree != 50) {
if (isFootstepping) { return }
isFootstepping = true
self.addChild(footstepSound)
}
else if (isFootstepping && degree == 50) {
isFootstepping = false
footstepSound.run(SKAction.stop())
footstepSound.removeFromParent()
}
解决方案
解决了!问题是footstepSound 变量没有全局声明。这导致在每个函数调用上创建一个新变量,因此当 .removeFromParent 被调用时,它永远不会引用旧变量。
推荐阅读
- c# - UNITY ECS 不在运行时注册新实体
- python-3.x - python在多个函数中使用多个值
- listview - 有没有办法只让 ListView 的 ItemTemplate 不可见?
- angular - Longpress event triggers tap event
- java - JPA criteria Updatequery not really updating anything
- python - Frequency count in a dictionary -- Python using comprehension
- python - Python Regex symbolize unlimited amount of characters
- excel - 变量确定单元格的值,但调用自定义函数并在之后执行
- javascript - 使用 webpack 远程导入电子库
- ios - NSManagedObject 在指定队列上使用