- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
好吧,这个让我觉得自己像个彻头彻尾的白痴。
我的游戏中有一种方法,旨在通过一次弹出一个字母来为文本框中的文本设置动画。在我的 DDTextBox
类中,有一个名为 animateText
的动画方法。这是它的编码:
for (NSUInteger i = 1; i <= _text.length; i++)
{
[_scene runAction:[SKAction playSoundFileNamed:@"regularTextBeep.m4a" waitForCompletion:YES] completion:^{
[_scene runAction:[SKAction waitForDuration:0.2] completion:^{
((SKLabelNode*)[_scene childNodeWithName:@"textBoxText"]).text = (NSString*)[_text substringToIndex:i];
((SKLabelNode*)[_scene childNodeWithName:@"textBoxText"]).position = CGPointMake(20 + (((SKLabelNode*)[_scene childNodeWithName:@"textBoxText"]).frame.size.width / 2.0), ((SKLabelNode*)[_scene childNodeWithName:@"insideOfTextBox"]).frame.size.height - (((SKLabelNode*)[_scene childNodeWithName:@"textBoxText"]).frame.size.height / 2.0) - 15);
NSLog(@"Textbox loading a letter on iteration %u", i);
}];
}];
}
completion();
它的目的是使名为 textBoxText
的节点发生变化,因此它是字符串 _text
的子字符串,直到索引 i
,然后是 等到声音文件结束直到它移动到下一个字符。
目前,声音播放一次,所有文字同时弹出。有问题的音频文件长约 200 毫秒。我该怎么做才能一遍又一遍地播放同一个文件?我会在 [self runAction:completion:]
的方法调用之外声明 SKAction
吗?有什么想法吗?
最佳答案
您可以通过创建一系列操作来做到这一点。您可能需要进行一些调整。
NSMutableArray *marrActions = [NSMutableArray new];
for (NSUInteger i = 1; i <= _text.length; i++)
{
[marrActions addObject:[SKAction playSoundFileNamed:@"regularTextBeep.m4a" waitForCompletion:YES]];
[marrActions addObject:[SKAction waitForDuration:0.2]];
[marrActions addObject:[SKAction runBlock:^{
((SKLabelNode*)[_scene childNodeWithName:@"textBoxText"]).text = (NSString*)[_text substringToIndex:i];
((SKLabelNode*)[_scene childNodeWithName:@"textBoxText"]).position = CGPointMake(20 + (((SKLabelNode*)[_scene childNodeWithName:@"textBoxText"]).frame.size.width / 2.0), ((SKLabelNode*)[_scene childNodeWithName:@"insideOfTextBox"]).frame.size.height - (((SKLabelNode*)[_scene childNodeWithName:@"textBoxText"]).frame.size.height / 2.0) - 15);
NSLog(@"Textbox loading a letter on iteration %u", i);
}]];
}
[_scene runAction:[SKAction sequence:marrActions] completion:completion]; //Pass off the completion block here
关于ios - 等待 [SKAction playSoundFileNamed :waitForCompletion:],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29691320/
我正在尝试使用 SKAction 播放 aiff 文件。此代码导致 白噪声在模拟器和我的 iPod 上播放: SKAction *sound = [SKAction playSoundFileName
我有几个关卡都使用相同的音效。我没有在每个级别都使用相同的代码,而是将所有声音合并到一个单例类中。但是,当我从其他类运行该方法时,将其置于单例中不会播放任何声音。我没有错误或警告。 当我在每个类中使用
我正在使用这段代码为我的游戏关卡添加背景音乐 [self runAction:[SKAction playSoundFileNamed:@"dasdas.mp3" waitForCompletion:
我一直在使用 playSoundFileNamed() 来播放机关枪类型的声音 - 重复得非常快,并且经常有声音重叠。我想给它添加一个音量控制,但我不知道该怎么做——因为它需要不同数量的音效相互播放,
我想同时播放多个声音。我这样使用SpriteKit SKAction: SKAction.playSoundFileNamed("aa.wav", waitForCompletion: true) 我
我希望我的 SpriteKit 游戏不会中断用户收听的背景音乐(Music.app 或广播应用)。 一切顺利,直到执行到这一行: sSharedShootSoundAction = [SKAction
我正在使用 runAction(SKAction.playSoundFileNamed() 在我的游戏中添加音效。但是 Xcode 在这一点上发现了一个问题。播放声音时,屏幕滞后。我使用 self.r
我在使用受控定时器间隔发射大约 80 次激光后出现此错误,因此它每 0.2 秒发射一次。 * 由于未捕获的异常“加载资源失败”而终止应用程序,原因:“无法加载资源 squish.mp3”* 首先抛出调
我想弄清楚为什么 playSoundFileNamed 在接到两个连续的电话后不起作用。实际上,它仅在接到第一个电话后才起作用。复制步骤是: 开始游戏 等一个电话,然后转到后台 电话通话结束(来电者拒
无论我尝试在项目中播放什么 wav 文件,我都会收到相同的错误。错误状态:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法加载资源 namedfil
好吧,这个让我觉得自己像个彻头彻尾的白痴。 我的游戏中有一种方法,旨在通过一次弹出一个字母来为文本框中的文本设置动画。在我的 DDTextBox 类中,有一个名为 animateText 的动画方法。
注意: 已经几天了,我仍然遇到这个问题。有一件事会有所帮助,那就是了解一些可以尝试的故障排除想法,这样我就可以找出导致崩溃的原因。任何能引导我走向正确方向的帮助将不胜感激。 我在模拟器以及多个不同的
有没有办法调节通过 SKAction 播放的声音的音量 playSoundFileNamed:waitForCompletion: . 我想在我的游戏中实现一个简单的音乐和音效 slider 。我可以
有人在使用 iOS Sprite Kit 通过 iOS 设备的外部扬声器通过 SKAction playSoundFileNamed 播放音频时遇到过问题吗?我有以下代码可以通过耳机毫无问题地播放 M
我的游戏基本完成了。检查 Xcode 中的泄漏。发现我每次玩游戏都会泄漏大约 0.3 MB。然后去了仪器并查看了持久数据。 罪魁祸首 1: SKTexture,被调用了很多但没有持续增长 罪魁祸首 2
我正在尝试制作一个按钮,按下时会播放声音,再次按下时声音会停止。我正在使用 playSoundFileNamed: runAction: withKey: 和 removeActionForKey,但
我对 SpriteKit SKAction.playSoundFileNamed 有疑问。实际上,在正确播放一段时间后,应用程序崩溃并表示无法加载。该文件包含在捆绑导入中,项目文件存在并且一切都已正确
在我的应用程序中,我需要使用很多简短的不同 mp3(大约 500 个项目逐一) 所以我使用SKAction playSoundFileNamed 大约 200 声声音后,它崩溃并显示“无法加载资源 -
我在应用程序的崩溃日志中看到少量 SpriteKit playSoundFileNamed 崩溃。崩溃发生在 iOS 8.3 上。 0 CoreFoundation __exceptionPrepro
我现在已经遇到过无数次了。客户发给我一些 .mp3 放在项目中。当我尝试使用此代码播放它们时: SKAction *play = [SKAction playSoundFileNamed:@"bird
我是一名优秀的程序员,十分优秀!