无限滚动背景 - 如何使对象与地面一起移动

时间:2016-08-01 17:15:06

标签: ios swift scroll sprite-kit

我有一个无限滚动的背景和一个角色走路'在地平面上。

我想从上面丢弃物体并将它们降落在地面上 - 到目前为止一直很好。但物体不随地面移动。

无法找到任何可以解决这个问题的例子。

我的地面'就我的图形背景而言,它只是一个正确高度的边缘。

    let Edge = SKNode()
    Edge.physicsBody = SKPhysicsBody(edgeFromPoint: CGPointZero, toPoint: CGPointMake(self.frame.width + 1, 0))
    Edge.position = CGPointMake(0, bottomShelf_ItemStartPosition.y)
    self.addChild(Edge) 

我试过提供自己的SKSriteNode物理属性,但这并没有任何区别。

最好的方法是什么?必须是制作移动地面效果对象的简单方法。

添加滚动例程:

    func backgroudScrollUpdate1(){

    back.position = CGPoint(x: back.position.x - scrollPerFrameAmount, y: back.position.y)
    back2.position = CGPoint(x: back2.position.x - scrollPerFrameAmount, y: back2.position.y)

    if (back.position.x < -(back.size.width / 2)) {
        back.position = CGPointMake(back2.position.x + back.size.width, back.position.y)
    }

    if (back2.position.x < -(back.size.width / 2)) {
        back2.position = CGPointMake(back.position.x + back2.size.width, back2.position.y)
    }

}

更新 - 一些进展

我建立了一个物理世界,我的地面无限滚动。我有一些物品掉在了天空之外。并降落在地面上。我可以通过直接施加冲动或一件击中另一件事来移动物体。

但是,我所期待的是滚动的地面会拉动&#39;如果他们在地上的事情呢?

我在接触地面的物品上玩过不同的地面摩擦力,但看起来并不重要。

做了一件事的一件事是,如果我将项目的phsyics主体设置为圆形,那么地面确实会影响项目,在滚动的相反方向上转动它 - 但是当它碰到边缘时只是停下来,而不是在边缘旋转。

如果该部分正常工作,那为什么不会在地面上拖动一个矩形呢?

很想看到一个影响世界的示例代码确实会影响其他节点..

0 个答案:

没有答案