1

RPG スタイルのゲームで、ダイアログ テキスト用に柔軟なダイアログ ボックスをプログラムで作成しようとしています。シンプルなボックス グラフィックを設計し、それをすべての適切なパーツに分割し、8 ウェイ隣接グループとしてタイル セットに追加しました。

ここに画像の説明を入力

カメラ ノードに正常に追加できますが、自動マッピングが機能しません。私が得たのは、中央のタイルで構成された真っ黒なボックスだけです。Apple のドキュメントによると、enableAutomapping は「タイル マップがシーン エディターのような自動マッピング動作を使用するかどうかを指定する」ため、この設定が役立つと思います。

中央のタイルのみが選択され、すべてのエッジ/コーナーが無視され、真っ黒なボックスが表示されます。私が探している動作は、作成している形状に応じて SpriteKit が適切なエッジと内部タイルを選択することです。

これが私のコード(Swift 4.2)が現在どのように見えるかです:

func createDialogBox() {
    let dialogTileSet = SKTileSet(named: "Dialog")!

    for tileGroup in dialogTileSet.tileGroups {
        for tileRule in tileGroup.rules {
            for tileDefinition in tileRule.tileDefinitions {
                for texture in tileDefinition.textures {
                    texture.filteringMode = .nearest
                }
            }
        }
    }

    let tileSize = CGSize(width: 32, height: 32)
    let rows = 3, cols = 12

    let dialogBox = SKTileMapNode(tileSet: dialogTileSet,
                                  columns: cols,
                                  rows: rows,
                                  tileSize: tileSize)

    dialogBox.enableAutomapping = true

    for col in 0..<cols {
        for row in 0..<rows {
            dialogBox.setTileGroup(dialogTileSet.tileGroups.first, forColumn: col, row: row)
        }
    }

    dialogBox.zPosition = 2
    dialogBox.position = CGPoint(x: 48, y: -128)
    self.camera?.addChild(dialogBox)
}
4

1 に答える 1