2011-06-01 22 views
0

我已經實現了水平滾動,但是垂直滾動製作麻煩了,麻煩很難解釋。所以我可以垂直地滾動scene,並且水平地,如果是從場景的原點,即ccp(0,0)完成的。但是當向X滾動已經完成並在中間暫停時,如果我垂直滾動它,它實際上會對角滾動,回到原點(x)和y的新位置。
我知道理解起來很複雜,但怎樣才能實現從已經向下滾動的位置垂直滾動它。如何在box2d世界中正確實現水平和垂直滾動?

回答

0

如果有人有我的問題就在這裏爲他ANSWR,

//NAVIGATION TOWARDS X AND Y WhenEver and how ever you want   
      if (abs(diffX) > abs(diffY)) 
      { 
       CCLOG(@"yScrlFlag=%d",yScrlFlag); 
       if(diffX > 0) 
       { 
        xScrlFlag=1; 
        [self.parent runAction:[CCMoveTo actionWithDuration:round(-(-3112-self.parent.position.x)/250) position:ccp((-3112-self.position.x),self.parent.position.y)]]; 
       } 
       else 
       { 
        [self.parent runAction:[CCMoveTo actionWithDuration:(-self.parent.position.x/250) position:ccp(0,self.parent.position.y)]]; 
        xScrlFlag=0; 
       } 
      } 
      else 
      { 
       if (1) 
       { 
        if(diffY < 0) 
        { 
         yScrlFlag=1; 
         //CCLOG(@"\n nodePosition.x=%f \n nodePosition.y=%f",nodePosition.x,nodePosition.y); 
         [self.parent runAction:[CCMoveTo actionWithDuration:(-(-500-self.parent.position.y)/250) position:ccp(self.parent.position.x,(-self.position.y))]]; 
        } 
        else 
        { 
         yScrlFlag=0; 
         [self.parent runAction:[CCMoveTo actionWithDuration:(-(-500-self.parent.position.y)/250) position:ccp(self.parent.position.x,0)]]; 
        } 
        CCLOG(@"yScrlFlag=%d",yScrlFlag);      
       } 
      }