2021/10/06(水) [n年前の日記]
#1 [python][pygame] 道路の自動生成処理を書き直し
Python + Pygame を使って道路の自動生成処理っぽいことができないか試しているのだけど。
道路相当を一旦全部引いた後で、マップ全体をスキャンして、交差点や角を探して置換する方法は無理がありそうだと分かってきた。交差点その他として判別すべきパターンが、あまりにも多過ぎる…。Tiled上で、マウスでポチポチと、置換前後のパターンを増やしてみたけど…。こんなの人間が目視と手作業でリストアップなんかしてられない…。絶対にパターンの見落としもあるだろうし…。
そもそも、ロードローラーモドキのオブジェクトを大量発生させて、一気に並列して動かすから処理が面倒臭くなるような気がしてきた。一本一本、順々に引いていけば、タイルを置いていく際に交差点かどうか等の判断も比較的できるようになるのでは…。
ということで、処理の書き直しを始めた。
パターン置き換え用辞書の生成スクリプトを書いたり等もしてたけど、そのあたりは没だな…。
道路相当を一旦全部引いた後で、マップ全体をスキャンして、交差点や角を探して置換する方法は無理がありそうだと分かってきた。交差点その他として判別すべきパターンが、あまりにも多過ぎる…。Tiled上で、マウスでポチポチと、置換前後のパターンを増やしてみたけど…。こんなの人間が目視と手作業でリストアップなんかしてられない…。絶対にパターンの見落としもあるだろうし…。
そもそも、ロードローラーモドキのオブジェクトを大量発生させて、一気に並列して動かすから処理が面倒臭くなるような気がしてきた。一本一本、順々に引いていけば、タイルを置いていく際に交差点かどうか等の判断も比較的できるようになるのでは…。
ということで、処理の書き直しを始めた。
パターン置き換え用辞書の生成スクリプトを書いたり等もしてたけど、そのあたりは没だな…。
◎ 2021/10/07追記。 :
せっかく書いたのにもったいないから一応アップロード。
動かすと以下のような感じになる。Spaceキーで生成し直し。
ソースや使用ファイルは以下。
_05_makeroadtilemap2.py
_rep_dic0.json
_road_chip.png
辞書生成用のスクリプトや、置換パターンの Tiled用ファイルは以下。
_04_make_replace_dic.py
_road_replace_pattern.json
_road_chip.json
_road_replace_pattern.tmx
置換パターンを手作業でリストアップしていったけど、以下のような量になったわけで…。
これでもまだパターンが足りない…。しかも、一度正しく置換した後、また間違った状態に置換し直している可能性も否定できないわけで…。この方法はダメだなと…。
動かすと以下のような感じになる。Spaceキーで生成し直し。
ソースや使用ファイルは以下。
_05_makeroadtilemap2.py
_rep_dic0.json
_road_chip.png
辞書生成用のスクリプトや、置換パターンの Tiled用ファイルは以下。
_04_make_replace_dic.py
_road_replace_pattern.json
_road_chip.json
_road_replace_pattern.tmx
置換パターンを手作業でリストアップしていったけど、以下のような量になったわけで…。
これでもまだパターンが足りない…。しかも、一度正しく置換した後、また間違った状態に置換し直している可能性も否定できないわけで…。この方法はダメだなと…。
[ ツッコむ ]
以上です。