2011-12-25 15 views
0

スプライトが実際の画面の端に達する前にスプライトが消えるように画面サイズを変更したいと考えています。cocos2dの画面サイズ

しかし、私はまだ私の背景がすべての画面サイズにとどまりたいです。

自分の画面上に紙を描いているので、私はその紙にしか存在しないゲームをしたいと考えています。その紙の周りにはまだ背景があります。

私はどのように私のCCSpritesをその用紙から出し入れするように設定し、その端に来るとゆっくりと消えますか?

私のスプライトはと共に移動している:(iの原因サイト「標準」に公開を取得するためにいくつかのコードを配置する必要があります)

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

私はそれが簡単なことだと確信していました。 – Curnelious