こんな画面を作った。
最初は
・GridLayoutとImageButton……マス
・Chronometer……経過時間
・TextView……残り爆弾数
でこの画面を実現する予定だったが、GridLayoutでボタン同士を密接させる事ができなかった。
一般的にゲーム画面を作る際はViewクラスを使うらしいので、そのクラスに画像を乗っけてった。
Viewで画像を表示する - @ANDROID開発
今のところはViewに画像を置いただけで、クリックリスナーは作ってない。
でもゲームの素材を作るのは楽しかった。
タッチした座標を受け取ってマスの画像を変更させる…というのが次の課題。
自分のスマホ解像度(1440 * 2560 xxxhdpi)にしか対応していないが、そこは開き直る。
以下、ソースコードのメモ。
【MainActivity.java】
MainActivityはGameViewクラスを呼び出すだけ。
【GameView.java】
・12行目…描画に必要なクラス。Paintクラスの中身はBitmapを描画する際は空でいいが、矩形や直線、円などを描画したいときは以下のようにPaintクラスに情報を格納する。
// 円 paint.setColor(Color.YELLOW); // 線の色 paint.setStrokeWidth(50); // 線の太さ paint.setAntiAlias(true); // アンチエイリアスするかどうか paint.setStyle(Paint.Style.STROKE); // 線のみ表示 // (x,y,r,paint) x座標, y座標, r半径 canvas.drawCircle(650, 440, 80, paint);
・13~18行目…描画で使う画像をリソースから指定する。
・20~30行目…描画の際の座標指定。
・42~46…マスの描画。マスを一個置いたらマスのX座標分(144Pixel)横に移動してまたマスを置く。これを縦でも同じように繰り返す。
【AndroidManifest.xml】
7行目でステータスバーを消してる。
このアプリの開発から、Eclipseは捨ててAndroidStudioを導入した。
見た目最高、使いやすい