Skip to content

Instantly share code, notes, and snippets.

@RPGP1
Created May 6, 2014 04:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RPGP1/d6b69102e24ac6591db9 to your computer and use it in GitHub Desktop.
Save RPGP1/d6b69102e24ac6591db9 to your computer and use it in GitHub Desktop.
マップシステム考えた。
Mapは、TileSetを一つ持つ。
自身の持つ二次元配列とTileSetから受け取る画像配列で描画する。
TileSetは、Tileをまとめる。
分割前の画像・分割方法を記憶し、Tileを生成して保持。
Tileから画像を受け取り画像配列を作る。
Tileの一部だけ画像を変更するとそれを記憶しておく。
Tileはそれぞれのtype毎にサブクラスを定義し、生成時に受け取った画像などの情報を適切に処理する。
オートタイルで実際に表示される画像(複数)を保持する。
オートタイル時にどのtypeと境界を作るかなどを判定するメソッドもTileで定義する。
<編集時(配置)>Tileは4層構造になっている。配置されると、その情報をTileSetに渡すと、オートタイル処理をして、各々の層を画像配列でのindexに変換してMapに渡す。
<編集時(コピー)>対象のマス(複数も可)の4層全ての番号をMapからTileSetに渡し、それから各々のTileを割り出す。そのTileの何番目の画像であったかも保持しておく。ただしオートタイル有効なコピーなら強制で0とする。
<編集時(コピー先)>オートタイル無効なら画像配列のindexを計算してそのまま置く。そうでなければ各々オートタイル判定だけして配置する。
<編集時(属性)>Tileには様々な属性が有り、配置時にMapのそのマスにコピーする。今のところは移動制限(手段/方向)のみ採用?
<編集時(TileSet)>TileSetは連結のみ可能。#仕様は予告なく変更される場合があります
連結しないと逆に面倒(1つのMapに複数TileSet)になるので、恐らく実装せざるを得ない。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment