2011-12-25 4 views
0

Я хотел бы изменить размер экрана, чтобы спрайты исчезли, прежде чем они достигли реальных краев экрана.Размер экрана в cocos2d

НО, но я все еще хочу, чтобы мой фон оставался на всем экране.

Представьте себе бумагу на экране, поэтому я хочу, чтобы игра существовала только на этой бумаге, и вокруг этой бумаги все еще будет какой-то фон.

Итак, как мне установить свой CCSprites для перемещения и выхода из этой бумаги и медленно исчезать при приближении к ее краям?

мои спрайты движется с: (мне нужно поставить код, чтобы получить опубликованные на сайте причина «стандарт»)

id moveclouds1 = [CCMoveTo actionWithDuration:30 position:ccp(420,380)]; 

спасибо.

ответ

0

Вы можете использовать glscissor для этого просто подкласса CCLayer, чтобы сделать ваш «бумажный экран». Затем добавьте спрайты внутри этого слоя. на этом слое переопределить метод визита

- (void) visit 
{ 
    glPushMatrix(); 
    glEnable(GL_SCISSOR_TEST); 

glScissor(x,y, width, height); //here put the position and the size of the paper/screen 

[super visit]; 
    glDisable(GL_SCISSOR_TEST); 
    glPopMatrix(); 

} 

спрайт достигает границы бумаги/экран будет разрезана выключен. ПОМНИТЕ: glScissor будет использовать значения PIXEL не баллы, поэтому ваша работа должна использовать двойные значения для отображения сетчатки (может пригодиться CC_CONTENT_SCALE_FACTOR())

+0

wow звучит сложно, я был уверен, что это простая вещь. – Curnelious

Смежные вопросы