自分の作っているアクションゲームは
フィールド上を上下左右に動けて、プラスジャンプ出来るタイプのアクションゲームです。
変数は横X,高さY,奥行きZと三つ使っています。
そこで、たくさん敵を表示するまでは出来たのですが
キャラの重なり方がおかしいので、調べている内に
グラフィックを描画する順番が原因なのがわかりました。
取り合えずバブルソートを使って、Zの値が低い順にグラフィックを描画しました。
この様にして見たのですが
↓
これだと、Z値が同じグラフィック同士が並ぶと
repeat max kari.cnt = z.cnt loop //ソート開始 バブルソート repeat max,1 repeat max - 1,1 if (kari.(cnt-1) > kari.cnt){ kari.(cnt-1)=kari.(cnt-1)^kari.cnt kari.cnt=skari.cnt^kari.(cnt-1) kari.(cnt-1)=kari.(cnt-1)^kari.cnt } loop loop //50まで repeat max switch sortkari.cnt //主人公 case z.0 pos x.0,(z.0 + y.0) gcopy g.0,sx.0,sy.0,size.0,size.0 swbreak //↑ //これを.0の部分を50まで増やして同じ風に書いています。 ・・・ swend loop return
主人公では無い方が消えてしまいます。
敵を出現させる変数として、主人公から敵の終わりの番号までフラグを作ってあるので
それを使えないか考えたのですが、キャラのZ値とそのフラグの関係がわかりませんでした。
どう言う風にやるとキャラ同士のZ値が同じでも片方が消えないで済むでしょうか。
また、もしこれより簡単で良い方法があったとしたら教えて欲しいです。