わずかに 3D のスプライトを使用するこのトップダウン ゲームを作ろうとしています。プレイヤーが到達したオブジェクトの前だけでなく後ろも歩けるようにしたいと考えています。
たとえば、彼が別のオブジェクトの後ろに一定の距離を置いている場合、彼はその後ろに移動し、他のオブジェクトの前に近づいている場合、彼はその前に移動します.
ストリート オブ レイジのような古いアーケード ゲームのようなものです。
何か案は?
わずかに 3D のスプライトを使用するこのトップダウン ゲームを作ろうとしています。プレイヤーが到達したオブジェクトの前だけでなく後ろも歩けるようにしたいと考えています。
たとえば、彼が別のオブジェクトの後ろに一定の距離を置いている場合、彼はその後ろに移動し、他のオブジェクトの前に近づいている場合、彼はその前に移動します.
ストリート オブ レイジのような古いアーケード ゲームのようなものです。
何か案は?
プレーヤーが移動するたびに、該当する各アイテムの y 位置を評価し、それに基づいて z-order/childIndex を並べ替える必要があります。
したがって、後ろ/前を歩くすべての「オブジェクト」とキャラクターがフォアグラウンドと呼ばれる親スプライトにある場合:
function sortZ(){
var arrayOfStuff:Vector<DisplayObject> = new Vector<DisplayObject>();
var i:int;
for(i=0;i<foreground.numChildren;i++){
arrayOfStuff.push(foreground.getChildAt(i));
}
arrayOfStuff.sort(sortArrayByY);
for(i=0;i<arrayOfStuff.length;i++){
foreground.setChildIndex(arrayOfStuff[i],i);
}
}
function sortArrayByY(valA:DisplayObject, valB:DisplayObject):int {
if(valA.y == valB.y) return 0;
if(valA.y > valB.y) return 1;
return -1;
}