2011-04-23 82 views
0

我几乎已经完成了我的多点触控代码,但是我仍然遇到了另一个问题。这是在cocos2d做BTW :)多点触控..需要iOS 4.3或更高版本的帮助

玩家对左侧的DPAD和右侧的按钮,它工作正常,如果我按住了dpads的按住跳跃键,让他给跑正确和跳跃。

的问题是,一旦我抬起我的手指断跳跃键的所有动作停止,所以我必须抬起并再次按下我的手指向下DPAD ...

这是我cctouchesended

代码
-(void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 

////when the user has stopped touching the screen set the variables 
    ////back to false to stop its movement//// 

//self.myTouch = nil; 
for (UITouch *touch in touches) 
{ 
    if (moveRight == TRUE) { 
    [player stopAction:RunForward]; 

    } 
    if (moveLeft == TRUE) { 
    [player stopAction:RunBackwards]; 

    } 
    moveLeft = FALSE; 
    moveRight = FALSE; 
// jump = FALSE; 
} 



} 

回答

0

您最好将逻辑映射到2个按钮。或者至少为了跳跃。 与当前代码的问题是,您不检查,看看你抬起的手指。您可以添加支票,以便如果结束的触摸位于屏幕的左侧,则停止移动。

此外,您不需要将BOOL值与TRUE进行比较。只要做,“如果(moveRight)”。这是更好的

0

你会想保持参照HASH(touch.hash)并保存CCTouchesBegan

那么你现在(释放)具备的功能,你检查哪个哈希已被释放。

这样:

  1. 在ccTouchesBegan功能检查你按下哪个按钮

    如果(CCRectContainsPoint(sprite1.boundingbox,touchlocation)){ rightSideButtonHash = touch.hash; )

在发行

您检查touch.hash对rightSideButtonHash,你知道,如果它是联系!