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;
    }
}

person Luke    schedule 16.05.2012    source источник
comment
код в вашем вопросе спас мою задницу   -  person RollRoll    schedule 05.09.2013
comment
Рад, что помог! :)   -  person Luke    schedule 05.09.2013


Ответы (1)


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

person Voldemort    schedule 16.05.2012