iPhone: камера после игрока в cocos2d - PullRequest
2 голосов
/ 23 мая 2010

Я делаю игру для iPhone в cocos2d.

Мне было интересно, как заставить камеру / вид следовать определенному спрайту?

я бы использовал класс CCCamera?

Ответы [ 2 ]

10 голосов
/ 23 мая 2010

Да, CCCamera будет работать. Тем не менее, он имеет некоторые недостатки, которые делают его нежелательным для некоторых целей. Перемещение слоев соответственно всех других объектов относительно этого спрайта может быть лучшим решением. Это зависит от игры.

Во-первых, ознакомьтесь с различными подходами и их недостатками, вы можете многое узнать из этой ветки форума cocos2d: http://www.cocos2d -iphone.org / форум / тема / 5363

Было бы полезно, если бы вы могли описать, о чем ваша игра и зачем вам нужна камера, прикрепленная к этому спрайту.

Например, если вы думаете о запущенной игре, такой как Canabalt, я бы не использовал камеру для прокрутки по всему миру, а вместо этого прокручивал все относительно игрока (к нему), когда игрок придерживался примерно того же координата х во время работы. Прекрасными примерами игр, в которых вы вообще не двигаете камеру, являются игры iCopter, в основном это упрощенные версии Canabalt. Обратите внимание, что спрайт игрока всегда остается с одинаковой координатой x, а игровой мир просто прокручивает

Прокрутка самой камеры, на мой взгляд, наиболее целесообразна, если у вас большой игровой мир, в котором игрок может перемещаться во всех направлениях, а количество объектов просто слишком велико и также перемещается в различных направлениях, поэтому обновляйте их позиции в каждом кадре будут как избыточными, так и подверженными ошибкам. А поскольку игровой мир настолько огромен, вы можете использовать положение камеры, чтобы ограничить то, что отображается на экране.

8 голосов
/ 14 января 2011

использовать действия CCFollow

Как это: -

[self runAction:[CCFollow actionWithTarget:(u r hero) worldBoundary:CGRectMake(0,0,1050,350)]];

это поможет

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