Actionscript 3 "faux" 2D 配列を使用してゲームにタイルを保存しています。プレイヤーが有効なタイルにのみ移動できるようにしたいと考えています。配列は「array[x][y]」のように構築され、配列の値とプレイヤーの動きの値の両方を知っているので、値が配置されています。indexOf が通常の配列で機能することは知っていますが、どうすれば 2D 配列をチェックできますか?
質問する
790 次
2 に答える
0
配列インスタンスがmyArray
の場合、次のように for ループを使用できます。
private function search(element:Object):Point
{
for (var columIndex:int = 0; columIndex < myArray.length; i++)
{
var rowIndex:int = myArray[columIndex].indexOf(element);
if (rowIndex != -1)
{
return new Point(columIndex, rowIndex);
}
}
return null;
}
クラスPoint
は次のようになります。
package
{
public class Point
{
public var x:int;
public var y:int;
public function Point(x:int, y:int)
{
this.x = x;
this.y = y;
}
}
}
于 2013-03-25T03:21:46.933 に答える
0
indexOf()
2D 配列で実行するには、ネストされた配列を反復処理して、2D 座標を返す必要があります (flash.geom.Point
そのために使用するか、このために調整した他のクラスを使用します)。ただし、配列内の正しい場所を照会してプレイヤーが有効な場所に移動したかどうかを確認し、その有効性を確認すると、より適切に実行できます。
function isValid(player:Player,playerWantsToMoveTo:Point):Boolean {...}
于 2013-03-25T04:00:25.497 に答える