なにはともあれまずは画面設計
こんな感じ、中央バスケットコート部分はアスペクト固定の縦100%でセット
端末による画面サイズの違いを可変部分で吸収します
コート部分左上を原点(0,0)としてボールやゴールを扱うことにする
タッチや描画と実座標を合わせるためCourtクラスをつくる
public class Court { final public Rect SIZE = new Rect(0, 0, 15000, 12750); //(mm) final public int BALL_R = 122; final public int RING_R = 230; final public Point RING_CENTER = new Point(7500, 1790); public static Rect view; public Court(Rect r) { view = r; } public Point getDPlot(Point point) { int x = view.left + ((point.x * view.width()) / SIZE.width()); int y = view.top + ((point.y * view.height()) / SIZE.height()); return new Point(x, y); } }
こんな感じでSIZEに実座標の大きさをいれてコンストラクタのRect r に描画するピクセル単位のサイズをセットする
あとはgetDPlotメソッドのように、実座標の位置を与えて描画位置を返すメソッドを作成して、実座標から描画位置を取得してボールの描画などを行います
0 件のコメント:
コメントを投稿