2011-04-23 3 views
0

게임용 멀티 터치 코드로 거의 끝났지 만 한 가지 더 문제가 있습니다. 이것은 코코스 2D에서 수행됩니다 btw :)멀티 터치 .. cctouchesended와 함께 도움이 필요합니다.

플레이어는 왼쪽에 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와 비교할 필요가 없습니다. 그냥 "if (moveRight)"하십시오. 그것은 훨씬 더

0
당신이 출시 된 해시 확인 HASH (touch.hash)에 대한 참조를 유지하고 당신은 지금 (릴리스)이 기능에 해당 CCTouchesBegan

을 저장할 것입니다

.

너무 :

당신의 ccTouchesBegan 기능이 눌려있는 버튼 확인에
  1. :

    경우 (CCRectContainsPoint (sprite1.boundingbox, touchlocation)) { rightSideButtonHash = touch.hash; )

    릴리스에서

당신이 rightSideButtonHash에 대해 touch.hash을 확인하고 터치이었다 있는지 알!

관련 문제