移動量の計算

by Nowloading_ forked from traceを使う (diff: 25)
謎ばかり。http://wonderfl.net/c/vYFgで使う移動可能マスの算出方法がわからん。

キャラ座標(x,z)から(x±α,z±β)の座標を書き出していき、その座標に移動可能を示すPlaneでも置けば良いと思うんだ。

完成品
もう少しコード数多くなるかと思ったけど、これならいいや。
♥0 | Line 30 | Modified 2011-09-21 15:22:28 | MIT License
play

ActionScript3 source code

/**
 * Copyright Nowloading_ ( http://wonderfl.net/user/Nowloading_ )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/4Rzl
 */

// forked from ton_'s traceを使う
package {
    import com.actionscriptbible.Example;
    public class FlashTest extends Example{
        private var idou:Array = new Array();
        private var move:int = 3;
        private var zahyou:Array = [2,2];
        public function FlashTest() {
            // write as3 code here..
            var a:int = (0x328  & 0xf)*3;
            trace("aの値は",a,"です");
            
            for(var i:int = move; i>0; i--){
                //cubes[x±α,z]と[x,z±βの4つ
                idou.push([zahyou[0]-i,zahyou[1]]);
                idou.push([zahyou[0]+i,zahyou[1]]);
                idou.push([zahyou[0],zahyou[1]-i]);
                idou.push([zahyou[0],zahyou[1]+i]);
                if(i>1){
                    for(var j:int = i-1; j>0; j--){
                        //cubes[x±(α-m),z±α]とcubes[x±α,z±(α-m)]の4α個
                        idou.push([zahyou[0]-(i-j),zahyou[1]+j]);
                        idou.push([zahyou[0]-(i-j),zahyou[1]-j]);
                        idou.push([zahyou[0]+(i-j),zahyou[1]+j]);
                        idou.push([zahyou[0]+(i-j),zahyou[1]-j]);
                    }
                }
            }
            for(var k:int = 0; k<idou.length; k++){
                trace("_",idou[k],"_");
            }
            trace("aafdffas");
        }
    }
}