現在2Dアクションゲーム用のステージエディタを作っています。
大まかに完成して使える状態になったのですが、
ペイントソフトなどにある”バケツ”の機能をつけたいと考えています。
ステージエディタのバケツツールでは
「同じチップが並んでいる範囲に別のチップを敷き詰める」
ということをやりたいです。
(たとえばこの画像の状態でブロックが並んでいるところをクリックすると別のチップに置き換わる)
同じチップが並んでいる範囲を見つける方法が思い浮かばず困っています。
よろしくお願いします。
C# ステージエディタのバケツツール
Re: C# ステージエディタのバケツツール
ちなみにチップの並びはbyte[,]Dataという2次元配列に入っています。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: C# ステージエディタのバケツツール
一種の画像処理ですから次のサイトが参考になると思います。
「画像処理におけるアルゴリズム」
http://homepage2.nifty.com/tsugu/sotuke ... ec3-2.html
「ラベリング処理アルゴリズム 画像処理ソリューション」
http://imagingsolution.blog107.fc2.com/ ... y-193.html
「画像処理におけるアルゴリズム」
http://homepage2.nifty.com/tsugu/sotuke ... ec3-2.html
「ラベリング処理アルゴリズム 画像処理ソリューション」
http://imagingsolution.blog107.fc2.com/ ... y-193.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: C# ステージエディタのバケツツール
softyaさん、参考URLありがとうございます。
とても参考になりました。
ステージデータにラベリング処理をして別の2次元配列に結果を書き込んで、
マウスでクリックした座標のラベルの部分を別のチップで置き換えれば
よさそうです。
がんばってみます。
とても参考になりました。
ステージデータにラベリング処理をして別の2次元配列に結果を書き込んで、
マウスでクリックした座標のラベルの部分を別のチップで置き換えれば
よさそうです。
がんばってみます。