【问题标题】:How does one initialize/move a camera in a SpriteKit program using Swift?如何使用 Swift 在 SpriteKit 程序中初始化/移动相机?
【发布时间】:2015-05-07 10:04:30
【问题描述】:

我有一张地图,它比设备的屏幕尺寸大,所以我希望用户能够通过拖动屏幕来浏览地图,类似于《部落冲突》。

如何创建相机视图以便在地图上拖动相机?

另外,当场景切换到地图时,如何自定义相机中心的起始位置?

【问题讨论】:

    标签: ios swift camera sprite-kit draggable


    【解决方案1】:

    swift 中没有摄像头。这个想法是您将背景添加到“世界节点”

    // set up stuff you want to add to world node
    let bg = SKSpriteNode(... initializer  
    
    // make a "worldNode" that you move around
    self.worldNode = SKNode()
    
    // add your bg to the worldNode
    worldNode.addChild(bg)
    
    // add worldNode to the scene
    self.addChild(worldNode)
    

    好的,现在你有了它.. 现在你可以根据位置来移动世界

    func centerViewOn(centerOn: CGPoint) { 
        self.worldNode.position = CGPoint(x: -x, y: -y)
    }
    

    你传入玩家位置,worldNode 会移动。这就是一般的想法。

    您可能需要在此处添加一些有条件的东西,以使相机不会移动太远。使用此代码,相机没有限制,并且可以超越游戏世界的边缘。您想限制它,使其在玩家到达边缘时停止跟随玩家。

    【讨论】:

    • 你在“(...初始化程序”中放了什么?
    • 任何你想要的......你可以使用图像、纹理图集制作一个 SKSpriteNode,你可以只使用颜色和大小来制作一个。这取决于你想要做什么。 developer.apple.com/library/ios/documentation/SpriteKit/…看初始化一个新精灵
    • 当我尝试使用代码“self.world = SKNode()”添加世界节点时,Xcode 告诉我我的 GameScene 没有名为“世界”的成员。如何将节点初始化到我的场景?
    • 您可以删除该行,然后在场景顶部添加一个属性。让 worldNode = SKNode()
    猜你喜欢
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多