Просмотр прокрутки, когда персонаж достигает границы

Я делаю игру, похожую на Марио. На данный момент мой персонаж может ходить влево и вправо и не может идти дальше, когда достигает границы. Теперь я хочу, чтобы представление прокручивалось, когда символ находится на расстоянии x пикселей от границы. Он должен прокручиваться не только по горизонтали, но и по вертикали.

На данный момент у меня есть 1 класс, расширяющий cclayer. Этот класс рисует спрайт и блоки. Я искал, куда идти отсюда, но я действительно не нашел ничего полезного/актуального. Так что было бы здорово, если бы у кого-то были какие-то советы.

Кроме того, в упомянутом классе я также создаю мир box2d с гравитацией. Если мне нужно создать несколько слоев, нужно ли создавать несколько миров box2d для каждого слоя?


person Aelion    schedule 08.01.2014    source источник
comment
Вы можете попробовать примеры Parallax в проекте Cocos2dx TestCpp. Также вы можете просто создать 2 слоя, один для фона, а другой для персонажа. Когда персонаж достигает почти конца одной стороны, вы можете либо уменьшить, либо увеличить компонент X положения фонового слоя в соответствии с направлением вашего персонажа.   -  person Vikas Patidar    schedule 09.01.2014


Ответы (1)


Вы можете использовать действие CCFolow. Это следует за узлом. Пример:

CCSprite * hero = CCSprite::create("hero.png");
CCLayer * gamelLayer = GameLayer::create();
CCFollow *follow = CCFollow(hero, CCRect(0, 0, 4056, 3062));
gameLayer->runAction(follow);

При смене позиции героя игровой слой тоже перемещается, но всегда мы видим на экране фрагмент CCRect(0, 0, 4056, 3062). В этой ситуации вам нужно использовать не Scrollview, а обычный CCLayer.

person Wez Sie Tato    schedule 13.01.2014