【问题标题】:How do I scroll my background vertically using Cocos2d with Touches?如何使用带有 Touches 的 Cocos2d 垂直滚动背景?
【发布时间】:2012-03-04 23:23:50
【问题描述】:

我已经很接近解决这个问题了,只需要最后一点(逻辑)。在以下代码中,背景确实垂直滚动(通过触摸)并且朝正确的方向(即向下)移动。

问题是当它超出背景图像的内容大小时它不会停止滚动...

(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 发生时减速停止的方法...

【问题讨论】:

    标签: background scroll cocos2d-iphone touches


    【解决方案1】:

    这个问题令人困惑,因为直觉上你的大脑认为前景在移动,但实际上你需要移动的是背景,这样看起来就好像前景在移动......因此很容易迷失在 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);
    
    }
    

    不确定如何使滚动看起来更自然,但是...

    【讨论】:

      猜你喜欢
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多