iPhoneのOpenGlesアプリケーションでジェスチャー認識を使用する方法は?
質問
ビューベースのアプリケーションでジェスチャー認識を使用する方法は知っていますが、OpenGlseベースのアプリケーションで同じアイデアを適用すると、たとえばTapgestureRecognizerを追加し、Eaglviewをタップするとクラッシュします。それで、誰もがOpenGlesベースのアプリケーションでuitapgesturerecognizerの標準的な使用を見せてくれますか?
幸運をお祈りしています。
解決
ここでは、ジェスチャーサポートを備えた私のOpenGlesゲームの1つのサンプルコードをいくつかします。 (クラッシュしないで、それが役立つことを願っています)
- (void)viewDidLoad {
[super viewDidLoad];
CGRect rect = [[UIScreen mainScreen] bounds];
rect.size.height = 320;
rect.size.width = 480;
rect.origin.x = 0;
rect.origin.y = 0;
glView = [[EAGLView alloc] initWithFrame:rect pixelFormat:GL_RGB565_OES depthFormat:GL_DEPTH_COMPONENT16_OES preserveBackbuffer:NO];
[self.view addSubview: glView];
[glView addSubview: minimapView];
if(!shell->InitApplication())
printf("InitApplication error\n");
[NSTimer scheduledTimerWithTimeInterval:(1.0 / kFPS) target:self selector:@selector(update) userInfo:nil repeats:YES];
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(Panned:)];
[glView addGestureRecognizer:[pan autorelease]];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(Tapped:)];
[glView addGestureRecognizer:[tap autorelease]];
UITapGestureRecognizer *dbltap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(DoubleTapped:)];
[dbltap setNumberOfTapsRequired:2];
[glView addGestureRecognizer:[dbltap autorelease]];
UILongPressGestureRecognizer *longpress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(LongPressed:)];
[glView addGestureRecognizer:[longpress autorelease]];
}
およびセレクター関数
- (void) LongPressed:(UILongPressGestureRecognizer*)sender{
NSLog(@"Long Pressed");
}
所属していません StackOverflow