我没有发现任何与SpriteKit多线程相关的问题。我认为这是获得一些建议的好机会。
我正在使用SpriteKit创建一个游戏,它由语音控制。所以我有另一个线程来检测语音。我使用委托在我的音频线程和我的SKScene之间进行通信。但是我可以说它延迟了几秒钟。我想找到一种通过声音来控制游戏的最佳方法。
SoundDetect.h
#import <Foundation/Foundation.h>
#import <SpriteKit/SpriteKit.h>
@protocol SoundDetectDelegate <NSObject>
-(void)update_from_sound: (SKSpriteNode*) node;
@end
@interface SoundDetect : NSObject
@property (nonatomic, weak) id <SoundDetectDelegate> delegate;
-(void)beat;
SoundDetect.m 当我检测到声音时,我有类似的东西。我的目标是更新我的SKScene
dispatch_async(dispatch_get_main_queue(),^{
SKSpriteNode * node = [SKSpriteNode spriteNodeWithImageNamed:@"2.png"];
[self.delegate update_from_sound:node];
});
HelloScene.h
#import <SpriteKit/SpriteKit.h>
#import "SoundDetect.h"
@interface HelloScene : SKScene <SoundDetectDelegate>
@end
HelloScene.m - (void)update_from_sound:(SKSpriteNode *)node {
[self addChild:node];
}
如果我想从另一个线程控制SKScene,这是一种典型的方法。
由于