<!--親の顔より見た光景-->

日々の発見を残していきます。

【Android】マインスイーパのメイン画面を作る

f:id:akagi13213:20170226214406p:plain
こんな画面を作った。

最初は
・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を導入した。
見た目最高、使いやすい
f:id:akagi13213:20170226225001p:plain