2011-03-29 8 views
2

スプライトの列があると、スプライトが画面から消えてしまいます。同じスプライトが反対側に折り返して2つのスプライトが同時に表示されるようにしたいのですが、画面の動きの1つが画面上に表示され、消えるスプライトはもはや見えません。私はccnodeを作るように言われましたが、ここではすべてのことを行うコードがありますが、どれも動作しないので、最初からやり直す必要があります。ここで は、詳細はこの上の私の最後の質問へのリンクです:ここWhen sliding sprite, if sprite disappears off the side, it will wrap around to the opposite side?複数のスプライトでループを作成していますか?

はとにかく私のコードです:

for (int i =0; i<16; ++i) { 
     MyNode *currentSprite = [c1array objectAtIndex:i]; 
     if (currentSprite.contentSize.height>=320 || currentSprite.position.y-currentSprite.contentSize.height/2<=0){ 
      MyNode *Bsprite = currentSprite; 
      MyNode *Tsprite = currentSprite; 
      Bsprite.scale = 1.0; 
      Tsprite.scale = 1.0; 

      if(currentSprite.position.y >=253){ 
      Bsprite.position = ccp(currentSprite.position.x,-35); 
       [self addChild:Bsprite]; 
       Bsprite.visible = TRUE; 
      } 
      if (currentSprite.position.y <=0) { 
       Tsprite.position = ccp(currentSprite.position.x,324); 
       [self addChild:Tsprite]; 
       Tsprite.visible = TRUE; 
      } 
      MyNode *isChanging; 
      if ((Tsprite.visible == TRUE && currentSprite.visible == TRUE) || (Bsprite.visible == TRUE && currentSprite.visible == TRUE)) { 
       isChanging = TRUE; 
      } 
      if (isChanging == FALSE) { 
       [self removeChild:Tsprite cleanup:YES]; 
       [self removeChild:Bsprite cleanup:YES]; 
      } 
     } 
    } 

答えて

0

BSpriteとTSpriteは同じオブジェクト(currentSprite)へのポインタです。実際には、currentSpriteのクローンを作成するか、c1arrayと同じ方法で別の配列を作成して、2つの別々のオブジェクトが必要になります。

+0

私はコードをもう一度やり直したいと思っていました.tsprite/bspriteが有効になっている必要があるページに来るとき、そしてオフになったときにスプライトが消えたときに、もう一度やり直さなければならないので、私のコードはどこにでも問題がたくさんあるので、私は誰かが最初から助けてくれるようにしたいと思っていました。 – Dangermouse

関連する問題