なにはともあれまずは画面設計
こんな感じ、中央バスケットコート部分はアスペクト固定の縦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 件のコメント:
コメントを投稿