Загрузка и выгрузка фоновых изображений по ходу игры - PullRequest
0 голосов
/ 18 февраля 2011

Эй, ребята, У меня есть игра в стиле рейдан в стиле 2D / Fighter, над которой я сейчас работаю. При перемещении его из стандартной среды NSObject в Cocos2D я столкнулся с проблемой с моим фоновым изображением / спрайтом.

До cocos2d мой фон был очень большим по вертикали. 320x9999 (или что-то). Но он загрузился и создал иллюзию для очень большого уровня. Cocos2d имеет ограничения по размеру изображения, поэтому я был вынужден разделить изображение на 33 разных фоновых изображения, каждое размером 320x480.

Понимая, что память очень важна для платформы iOS, я решил создать 2 фоновых CCSprites: CCSprite * background1, * background2; Фон2 поверх фона1.

При использовании этих двух фонов, когда Jet движется вверх по экрану, каждый фон будет двигаться обратно вниз по экрану с равной скоростью, так как первый фон1 полностью смещается с экрана по вертикали, он высвобождается обратно в память и новый спрайт загружается в background1, а затем background1 располагается над background2 вертикально.

Когда background2 сходит с экрана, он освобождается, и новое изображение загружается в background2 и помещается поверх background1.

Создание иллюзии постоянного и последовательного фона.

Q. Это похоже на правильный метод? Q. Как я мог добиться чего-то подобного программно? У меня есть физика движения и все готово к работе. Я просто немного не уверен, как это сделать с Cocos.

Еще раз спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 21 мая 2011

A1) да, это правильный способ сделать это, и это почти очень легко сделать, так как ecode выглядит примерно так (у меня могут быть некоторые программные ошибки, рассматривайте это почти как псевдокод!):

if(background[1].position.y < 0)
{
    [layer removeChild:background[1] cleanup:YES];
    background[1] = background [2];
    background[2] = [CCSprite SpriteWithFile:"file id"]
    background[2].position = ccp(0,480);
    [background[2] runAction:[CCMoveBy actionWithDuration:1 position:ccp(0,1)]]
}

A2) если вам нужно только какое-то руководство, я дал вам реализацию того, что вам нужно, и если вы имеете в виду, что не знаете, как реализовать plysics с помощью cocos2d-iphone, попробуйте следующие руководства:

http://www.raywenderlich.com/457/intro-to-box2d-with-cocos2d-tutorial-bouncing-balls

http://www.raywenderlich.com/475/how-to-create-a-simple-breakout-game-with-box2d-and-cocos2d-tutorial-part-12

http://www.raywenderlich.com/505/how-to-create-a-simple-breakout-game-with-box2d-and-cocos2d-tutorial-part-22

0 голосов
/ 21 мая 2011

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

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