высота функции ccJumpTo уменьшается? - PullRequest
1 голос
/ 14 июня 2010

Я работаю над версией Cocos2D 0.9.3.Я делаю демонстрационную игру под названием DoodleJump.теперь, когда я делаю объект для прыжка по событию Touch, он переходит на следующий уровень.

Я статически определил высоту прыжка, как это.

actionTo = [CCJumpTo actionWithDuration: 1 позиция: ccp (SpriteImage.position.x, 40 + 28) высота: 110 прыжков: 1];[SpriteImage runAction: actionTo];

Он будет правильно прыгать на платформе на уровне 1.но когда он приземлится на платформу на уровне 2, он прыгнет не на полную высоту, а прыгнет очень низко по сравнению с предыдущим прыжком.на уровне 3 он будет прыгать ниже уровня 2 и так далее.Это будет постепенно уменьшаться в высоте в прыжке.

Пожалуйста, помогите.

1 Ответ

2 голосов
/ 31 июля 2010

Я думаю, вам нужно изменить это:

ccp(SpriteImage.position.x,40+28)

на это:

ccp(SpriteImage.position.x, SpriteImage.position.y + 40 + 28)

В целом, я не очень понял, как работает CCJump, это очень запутанно, и у меня были проблемы снемного прыгает слишком высоко или низко со временем.В итоге я использовал свой собственный код перехода, используя скорость.Это делается методом обновления, а kGravity является константой (0,2f):

velocity.y -= kGravity;
self.position = CGPointMake(position_.x += velocity.x, position_.y += velocity.y);

Когда вы хотите прыгнуть, вы просто устанавливаете speed.y на более высокое значение, например 10. И если игрокпадает слишком быстро, поэтому просто убедитесь, что speed.y превышает какое-либо настраиваемое значение, например -20.

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