2012-03-04 14 views
0

私はこれを理解して、最後のビット(ロジック)が必要なのとかなり近いです。次のコードでは、背景が垂直方向にスクロールし、正しい方向(つまり下方向)に向かっています。タッチでCocos2dを使用して背景を縦にスクロールするにはどうすればよいですか?

問題は、それが背景画像のコンテンツサイズを超えて取得するときにスクロールを停止しないで...

(CGPoint)boundLayerPos:(CGPoint)newPos { 
CGSize winSize = [CCDirector sharedDirector].winSize; 
CGPoint retval = newPos; 
retval.y = -MAX(retval.y, -background.contentSize.height+winSize.height); 
retval.y = -MIN(retval.y, 0); 
retval.x = self.position.x; 
return retval; 
} 

は、私はまた、スクロールがすなわち...より自然に見えるようにする方法を疑問に思って。 TouchesEndedが発生したときに停止する方法。

答えて

0

直感的には、脳は前景が動いていると思うので混乱しますが、実際には動きが必要なため、動く必要がありますフォアグラウンドが動いているかのように...したがって、x/y、-x/y、x/-y、-x/-yの組み合わせで失われるのは簡単です。他の人とやりとりするのはちょっと混乱しています(つまり、あなたが「上がった」という意味ですか、「下った」という意味ですか)...

私にとっては、フォアグラウンドがスクロールされているそれが底に来るまで。これは、背景(自己)が最高点(1539.0)に達するまで上向きに移動しなければならないことを意味し、これは現在、背景画像の底を表示していたことを意味しました。

if (self.position.y > 1539.0f) { 

    //CCLOG(@"My position is greater than 1539"); 

    self.position = ccp(self.position.x, 1539.0f); 

} 

ないただし、スクロールがより自然に見えるようにする方法がわから...

:(すなわち、任意の更なるスクロール防止)私は私のダニ/ updateメソッドで次のように使用して終了し、それが動作します