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 に答える