Godot4のTileMapでセルの値を取得したい!
概要
今回の記事では、Godot4のTileMapでの値を取得する手順を掲載する。
仕様書
環境
- Gogot 4.2.1
手順書
TileSet
とTileMap
の座標については下記を参照。
上記の記事と同様に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)
の入力があると問答無用で扉の座標を削除する。背景色の灰色が表示される感じ。
まとめ(感想文)
読み書きできるといろいろ作れそうな感じ。