До недавнего времени я просто менял координату x моего спрайта на каждое обновление, и я был доволен этим. Но вчера, когда я находился в режиме debugDraw, я узнал, что после определенной физики физика скорости не будет правильно выравниваться со спрайтом, например: Позже мне сообщили, что (по Birkemose в форуме cocos2d) предпочтительный способ переместить физическое тело от А к В - применить к нему импульс. Но я понятия не имею, как достичь постоянной скорости таким образом. Это код, который я использовал, чтобы переместить его без применения какого-либо импульса:Как перемещать спрайт с динамическим физическим телом с постоянной скоростью
-(void)update:(CCTime)delta{
rollingHero.position=ccp(rollingHero.position.x+scrollSpeed*delta,
rollingHero.position.y);
physicsNode.position=ccp(physicsNode.position.x-scrollSpeed*delta,
physicsNode.position.y);
}
Так, чтобы создать ощущение перемещения прокручивает узел физики и герой в противоположных направлениях с одинаковой скоростью прокрутки. Я пробовал много разных вариантов применения импульсов, но я никогда не двигался с постоянной скоростью. Скорость ускоряется, и герой получает заставку. Я был бы очень признателен, если бы кто-то разместил образец кода.
Спасибо за прекрасный и подробный ответ –