投稿記事

プログラムの記事 (1)

ただのもやし 2020/01/25 09:05

街づくりSLG進捗その9-描画順問題とその解決策

皆様おはようございます!
ただのもやしでございます。

バグ発生

いつもの街づくりゲーム制作進捗となります。
先日2x2サイズの建物をぼちぼち置いてみようと思い、
単純に置いてみました。

んん??なんか重なり方変だな???

ということで、描画順問題について

このような特殊な描画をするもの、例えばクオータービューなども当てはまりますが、単純に座標順に奥から描画するという手段で組んでいるとこういった現象が起こります。

同様の問題は各所で議論されているようなのですが、それでもなお決定版と言えるアルゴリズムが中々見つからない・・・ということで、2Dでこういった表現をするのは中々難易度が高いと言えるでしょう。

ついでにわたくし事で、クオータービューの処理を作っていた頃にも色々と調べましたが、その時は明確な正解にはたどり着きませんでした。
そしてそのプロジェクトは凍結中です。

今までは1x1サイズのみだったため問題が見えていなかったわけですね。
具体的にどういうコードを書いていたかは後述(フォロワーさん限定)

解決策

今回改めてググって調べたところ、「中心座標」というキーワードにたどり着きました。
それをヒントに色々改造し、中心座標を基準にオブジェクトを並び替えるという処理にしよう、という結論に至りました。
ソート処理などは以前作っていたクオータービュー処理を参考にしつつ、修正を行った結果がこちらになります。

現時点では問題がなくなったように見えますね!
完全に解決したかはきちんと検証しないとわかりませんが、ひとまず一旦この状態で開発を進めていきます。

ということで、進捗報告自体は以上となります。

ソースコード

以下、フォロワーさん限定ですがソースコードのビフォーアフターを掲載します。

フォロワー以上限定無料

一部抜粋したソースコードが書いてあるだけです。

無料

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索