在SpriteKit中为不同屏幕上的节点大小定义变量的最佳方法

时间:2015-12-01 20:10:48

标签: ios swift sprite-kit

我在SpriteKit中制作游戏。我在不同的节点上有不同的类,我将在我的场景中使用。我需要让我的游戏具有通用性,以便适应每个屏幕。定义我将在不同类和主场景中使用的不同变量的最佳方法是什么。

2 个答案:

答案 0 :(得分:0)

然后初始化您的节点,您可以创建world SKNode的参数,然后访问您的world.frame.size

class NodeClass: SKSpriteNode {

    init(world: SKNode) {

        super.init(texture: nil, 
            color: UIColor.clearColor(), size: 
            CGSizeMake(world.frame.size.width / 24, world.frame.size.width / 24))
    }
}

您还可以设置position和movament,缩放取决于您的场景大小。

答案 1 :(得分:0)

您不应为不同的屏幕定义不同的元素大小。从长远来看,这将使一切变得更加复杂。

以点(不是像素)思考

不应考虑像素,而应根据点定义尺寸。

GameViewController中的下一步,将您的场景的scaleMode设置为.AspectFill

gameScene.scaleMode = .AspectFill

这样,整个场景(及其内容)将自动缩放以填充当前显示。你不会疯狂地尝试为每个元素管理不同的大小。