Iphone, target-c, как сделать метод Jump для платформера - PullRequest
0 голосов
/ 11 июля 2009

У меня есть это IBAction, которое должно совершать прыжок персонажа на экране, однако, когда он вызывается, он просто перемещает персонажа один раз, затем каждый вызов после этого персонажа просто перемещается вниз все больше и больше. Эту функцию нужно просто вызвать, тогда персонаж «подпрыгнет», а затем упадет прямо с экрана, поскольку я не столкнулся с землей. Любые предложения, почему это происходит? Tim - это имя моего UIImageView, в котором находится chracater, кстати.

-(IBAction)Jump:(id)sender

{ int jumpSpeed ​​= JumpSpeedLimit; CGPoint newCenter = tim.center;

if(!mainJumping){
    //then start jumping
    mainJumping = TRUE;
    jumpSpeed = JumpSpeedLimit*-1;
    newCenter.x -= jumpSpeed;
    tim.center = newCenter;

} else {
    //then continue jumping if already in the air
    //crazy math that I won't explain
    if(jumpSpeed < 0){
        jumpSpeed *= 1 - JumpSpeedLimit/75;
        if(jumpSpeed > -JumpSpeedLimit/5){
            jumpSpeed *= -1;
        }
    }
    if(jumpSpeed > 0 && jumpSpeed <= JumpSpeedLimit){
        jumpSpeed *= 1 + JumpSpeedLimit/50;
    }
    newCenter = tim.center;
    newCenter.x -= jumpSpeed;
    tim.center = newCenter;
    /*
    //if hits the floor, then stop jumping

    if(tim.center.x >= 360 - tim.bounds.size.height){
        mainJumping = FALSE;            
        newCenter = tim.center;
        newCenter.x = 360 - tim.bounds.size.height;
        tim.center = newCenter;
    }*/

}

}

Ответы [ 2 ]

1 голос
/ 11 июля 2009

Вы в корне ошибаетесь. Вы хотите, чтобы при нажатии кнопки «прыгать» устанавливался какой-то флаг, а затем в коде игрового движка обрабатывался этот флаг.

0 голосов
/ 11 июля 2009

Похоже, что работа для CoreAnimation больше, чем работа для повторного вызова IBAction. Создайте путь анимации, по которому должен двигаться ваш вид, и добавьте функцию синхронизации, чтобы придать эффект ускорения силы тяжести, что-то вроде образца поваренной книги анимации: http://developer.apple.com/documentation/GraphicsImaging/Conceptual/CoreAnimation_Cookbook/Articles/Timing.html#//apple_ref/doc/uid/TP40006077-SW1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...