1

我有一个正在进行的游戏,玩家只能左右移动,但在地图上的某些地方,他们可以向上或向下推动以前往这些方向的新场景(例如通过后墙上的门)。

如何设置我的 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;
    }
}
4

1 回答 1

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)。

于 2012-05-16T17:40:48.903 回答