使用SpriteKit,我有一個場景,XYZMyScene
,當我在屏幕上觸摸時呈現另一場景,XYZMyOtherScene
。沒有擡起我的手指,當我移動手指時,我想要觸發touchesMoved:withEvent:
,但直到我第一次擡起手指,然後觸摸新場景並四處移動時,它纔會發射。如何在SpriteKit中呈現場景後立即接收觸摸事件?
是否有可能在不首先舉起手指的情況下讓它開火?
下面是一些簡單再生產代碼:
// XYZMyScene.h
#import <SpriteKit/SpriteKit.h>
@interface XYZMyScene : SKScene
@end
// XYZMyScene.m
#import "XYZMyScene.h"
#import "XYZMyOtherScene.h"
@implementation XYZMyScene
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.backgroundColor = [SKColor orangeColor];
}
return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
XYZMyOtherScene *otherScene = [[XYZMyOtherScene alloc] initWithSize:self.frame.size];
[self.view presentScene:otherScene];
}
@end
// XYZMyOtherScene.h
#import <SpriteKit/SpriteKit.h>
@interface XYZMyOtherScene : SKScene
@end
// XYZMyOtherScene.m
#import "XYZMyOtherScene.h"
@implementation XYZMyOtherScene
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.backgroundColor = [SKColor blueColor];
}
return self;
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"moving!");
}
@end
我建議你將XYZMyScene的元素移動到XYZMyOtherScene並處理來自同一場景的所有內容。 – ZeMoon
@akashg - 我不知道。它聽起來像它反駁了我所瞭解的有關分工和麪向對象的一切。有一個更好的解決方案... – akivajgordon
那麼,根據我對XYZMyScene的瞭解,它並沒有太多的工作。 – ZeMoon