今回はAndEngineを組み込んでクォータービューでサーバから取得した情報どおりに床をレンダリングするようにしました。
https://github.com/nagai/freemarket/tree/20140517
クォータービューについて
今回のアプリはプログラム内部では昔のドラクエのようなトップビューで管理していて
レンダリングする直前にクォータービューに変換してます。
トップビューからクォータービューへ変換および、クォータービューからトップビューへ変換は以下のように実装してます
// トップビューからクォータービューへ座標変換する
// →↓ にx,yが増えていく座標系
// 右上,右下にx,y が増えていく座標系
public static Point convertQuarterViewFromTopView( Point top ){
Point q = new Point();
q.x = (top.x + top.y);
q.y = (-top.x + top.y)/2;
return q;
}
public static Point convertTopViewFromQuarterView( Point q ){
Point top = new Point();
top.x = q.x/2 - q.y;
top.y = q.x/2 + q.y;
return top;
}
どうやってこの式になったかといえば、トップビューのチップとクォータービューのチップは変換できるわけで
クォータービューのチップの頂点座標からクォータービューの四隅になるように導いてます。
行列、三角関数をつかってもできますが今回はわりと強引にやりました。
次回はフリックでホールのスクロールができるようにします。