Swiftpack.co - rrbox/SKNodeBuilder as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by rrbox.
rrbox/SKNodeBuilder v1.0.0
Builder for SpriteKit Node
⭐️ 1
🕓 36 weeks ago
iOS macOS
.package(url: "https://github.com/rrbox/SKNodeBuilder.git", from: "v1.0.0")

SKNodeBuilder

2Dゲーム制作フレームワーク SpriteKit の SKNode を Builder パターンで設計できるようにする SwiftPM です。

DEMO

Builder

Builder オブジェクトをインスタンス化すると, イニシャライザに応じて内部に SKNode インスタンスが作成されます.

let rect = SKSpriteNode(color: .white, size: CGSize(width: 32, height: 32)
Builder<SKNode>()
    .position(CGPoint(x: 32, y: 100)) // 座標を設定
    .add(// 子ノードを追加(既に変数に保持されている場合)
        child: rect,
        build: { builder in
            builder
                .position(CGPoint(x: 0, y: 32)) // 子ノードの座標を設定
        }
    )
    .add(// 子ノードを追加
        child: Builder<SKLabelNode>(text: "Rect")
            .vertivalAlignment(.center)
            .horizontalAlignment(.center)
            .fontColor(.black)
            .position(x: -32, y: -32)
    )

NodeBuilder

Builder の機能をアトリビュートで実装できます。

@NodeBuilder var node = SKNode()
func anyMethod() {
    // プロパティに $ をつけることで Builer ラッパのインスタンスにアクセスできます
    self.$node
        .add(child: SKSpriteNode(color: .white, size: CGSize(width: 32, height: 32)))
        .add(child: SKLabelNode(text: "Rect"), build: { builder in
            builder
                .position(x: -32, y: -32)
        })
}

Builder で編集可能な SKNode 一覧

  • SKNode
  • SKSpriteNode
  • SKLabelNode
  • SKShapeNode

GitHub

link
Stars: 1
Last commit: 15 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

SKNodeBuilder v3.2.1
15 weeks ago

What's Changed

テストコードを修正しました。

Full Changelog: https://github.com/rrbox/SKNodeBuilder/compare/3.2.0...3.2.1

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics