2012-05-16 69 views
1

我有一個遊戲正在進行中,玩家只能左右移動,但在地圖上的某些地方,他們可以向上或向下推動以前往這些方向的新場景如通過後牆上的門)。cocos2d:SneakyJoystick向下移動的觸發代碼

如何設置我的SneakyJoystick以在用戶按下時觸發某些代碼?目前正在進行下面的操作來將我的播放器向左/向右移動,我希望這樣做可以繼續,但是(現在)當玩家完全向上或向下推動操縱桿時執行CCLOG。有任何想法嗎?

- (void) applyJoystick:(SneakyJoystick *)aJoystick forTimeDelta:(float)deltaTime { 
    CGPoint scaledVelocity = ccpMult(aJoystick.velocity, 325.0f); 
    CGPoint oldPosition = [self position]; 
    CGPoint newPosition = ccp(oldPosition.x + scaledVelocity.x * deltaTime, oldPosition.y); 

    [self setPosition:newPosition]; 
    if (oldPosition.x > newPosition.x) { 
     self.flipX = YES; 
    } else if (oldPosition.x == newPosition.x) { 
     // Intentionally do nothing to preserve orientation at start of scene! 
    } else { 
     self.flipX = NO; 
    } 
} 
+1

您的問題中的代碼救了我的屁股 – RollRoll

+0

高興得到了幫助! :) – Luke

回答

0
int extra = 20; 
if ((int) aJoystick.degrees > 270 - extra && aJoystick.degrees < 270 + extra) { 
    // Joystick button seems to be pointing down 
} 

我認爲作品。我不太記得。我認爲270度是完美的。我正在檢查方向度是否在一定範圍內(270 - 20和270 + 20)。