【Godot4】TileMapのセルの値を取得する

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Godot4】TileMapのセルの値を取得する

2024-1-30 | , ,

Godot4のTileMapでセルの値を取得したい!

概要

今回の記事では、Godot4のTileMapでの値を取得する手順を掲載する。

仕様書

環境

  • Gogot 4.2.1

手順書

TileSetTileMapの座標については下記を参照。

上記の記事と同様にui_accept(Enter)の入力があると扉を開閉、ui_cancel(ESC)の入力があると扉の座標のTileMapを削除(nullに)する例。

開閉の判定を変数を使わず、セルの値で判定してるバージョン。

extends TileMap

func _input(event):
    if event.is_action_pressed("ui_accept"):
        if get_cell_atlas_coords(0, Vector2i(6, 4)) == Vector2i(5, 7):
            set_cell(0, Vector2i(6, 4), 0, Vector2i(0, 0))
        else:
            set_cell(0, Vector2i(6, 4), 0, Vector2i(5, 7))

    if event.is_action_pressed("ui_cancel"):
        set_cell(0, Vector2i(6, 4), 0, Vector2i(-1, -1))

TileMapのセルの値を取得してる部分。

get_cell_atlas_coords(0, Vector2i(6, 4)) == Vector2i(5, 7)

第1引数はTileMapのID、第2引数は値を取得するTileMapの座標、戻り値はTileSetの座標が返ってくる。

動作は前述の記事と同じなんだけども一応掲載。

最初は扉が閉まってる状態から始まる。

ui_accept(Enter)の入力があると扉が空き

もう一度ui_accept(Enter)の入力があると扉が閉まる。

ui_cancel(ESC)の入力があると問答無用で扉の座標を削除する。背景色の灰色が表示される感じ。

まとめ(感想文)

読み書きできるといろいろ作れそうな感じ。