【发布时间】:2015-08-01 20:38:19
【问题描述】:
玩家在我的游戏中拖动了一个精灵,但是当不小心用第二根手指触摸屏幕时,它显然会拧紧移动。
我使用了以下解决方案来禁用第二次触摸,但不幸的是它不起作用:
//--------------
-(void)touchesBegan:(NSSet*) touches withEvent:(UIEvent*) event {
if (touches.count == 1 && draggedNode == nil) {
CGPoint pos = [[touches anyObject] locationInNode:self];
SKNode * touchedNode = [self nodeAtPoint:pos];
if([touchedNode.name isEqual: @"shooterBall"]){
draggedNode = touchedNode;
}
draggedNodeOffset = CGPointMake(draggedNode.position.x - pos.x, draggedNode.position.y - pos.y);
}
}
//--------------
-(void)touchesMoved:(NSSet*) touches withEvent:(UIEvent*) event {
if (touches.count <= 1) {
CGPoint pos = [[touches anyObject] locationInNode:self];
draggedNode.position = CGPointMake(pos.x + draggedNodeOffset.x, pos.y+draggedNodeOffset.y);
}
}
//--------------
-(void)touchesEnded:(NSSet*) touches withEvent:(UIEvent*) event {
draggedNode = nil;
}
//--------------
您对此有任何解决方案吗?
提前感谢您的帮助!
【问题讨论】:
-
你为什么不使用手势识别器。它将允许您指定一次可以发生多少次触摸
-
我以为它是用来滑动和捏合的。
-
是的,你想让玩家的手指在屏幕上滑动或平移,对吧?
-
是的,但不仅仅是一次滑动,他可以将精灵拖动到屏幕的任何位置。和平移手势一样吗?
-
是的。在这里,我将给出更详细的解释
标签: ios objective-c sprite-kit