Как заставить спрайт следовать за другим спрайтом? - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть игра-лабиринт. У меня есть главный спрайт, играющий в игру-лабиринт.После того, как главный спрайт ударил одного из его «друзей», этот «друг» будет следовать позади, куда бы ни шел основной спрайт.

Я знаю, как обнаружить обнаружение столкновений, но я не знаю, как сделать этого «друга»спрайт следует за основным спрайтом позади.Между основным спрайтом и "другом" спрайтом должно быть статическое расстояние

Пожалуйста, поделитесь кодом этой проблемы

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011

Вы можете использовать код Блейка, но поместить его в метод обновления вместо сенсорного обратного вызова. Взгляните на раздел «Создание вещей» в руководстве Cocos2D под названием «Урок 2: Ваша первая игра» .

0 голосов
/ 22 ноября 2011

Вы не дали язык, но он может быть довольно простым или довольно сложным. Если это = жесткое = расстояние, вы можете выразить это как:

друг х: = основной х - фиксированное расстояниеX. friend y: = main y - fixedDistanceY.

(синтаксис типа Smalltalk.)

Это будет выглядеть довольно жестко и создает проблемы, если относительные положения между основным спрайтом и другом должны быть в состоянии измениться, то есть друг иногда находится к северу от основного спрайта, но другие времена могут быть южными из-за препятствие.

Более естественный подход - сделать что-то подобное после перемещения основного спрайта:

(друг дальшеThan: fixedDistance from: Main) ifTrue: [friend moveToward: Main).

Тогда любой ИИ, который у вас есть для движущегося независимо друг от друга спрайта, может быть использован в этом контексте для поддержания его близко к основному спрайту.

Надеюсь, это поможет.

...