神経衰弱アプリを作ってみる
1.イメージを決めて、早速コードを書き始めてみよう
さて前回は、世界に向かってオレ様宣言をしたところで終了したね。
では今回からは、もう少し実際に使えるアプリを作ってみることにしよう。
というわけで挑戦してみるのは、「神経衰弱アプリ」。
つまりトランプを並べて、それをめくって同じカードを探すゲームを作ってみる。
簡単に描くと、画面のイメージはこんな感じかな?
いゃ汚い絵だと侮るなかれ、アプリを作る前に手書きで実寸をイメージした画面を作ってみるのって意外に大事なんだぞ。
図のように、とりあえずカードは横に4枚×縦に6枚の、計24枚並べてみることにしよう。
この辺は後で変更も可能だろうから、まずはそんな感じでヨロシク。
では、早速コードを書いてみようかな。
前回の「オレ様」コードは、以下のとおりだったね。
package android.test;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
public class AndroidTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_android_test);
findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new AlertDialog.Builder(AndroidTestActivity.this).
setMessage("世界よ、オレの前にひざまずけ").show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_android_test, menu);
return true;
}
}
これを、次のように変更してみよう。
package android.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.view.Menu;
public class AndroidTestActivity extends Activity {
static final int ROW = 6; //セルの行数・・・(1)
static final int COL = 4; //セルの列数・・・(2)
@Override
public void onCreate(Bundle savedInstanceState) {
//ステータスバーを消去
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //・・・(3)
//タイトルバーを消去
requestWindowFeature(Window.FEATURE_NO_TITLE); //・・・(4)
super.onCreate(savedInstanceState);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_android_test, menu);
return true;
}
}
まず(1)(2)のところだけれども、最初にカードを並べる枚数を縦・横の定数で用意しておく。
一番最初に書いとけば、後で変更する際に見つけやすいと思うし。
ちなみに、ここで変数に
static final
とあるのは、JAVAで定数を宣言する際に使われる修飾詞だ。
この修飾詞をつけて宣言したものは、値を一度設定すると変更できなくなるんだね。
それで、定数の宣言に使われるってわけ。
この定数で宣言された名前の「ROW」と「COL」が、他の変数と違って全部大文字で書かれてるのはJAVAのお作法みたいなものだ。
他のプログラムを見たときにも、大文字で書かれているものは定数だなって分かりやすくて良いね。
その後の
int
ってのは、もちろん"integer"のことで、整数を宣言しているということ。
さて続いて(3)の行、これは画面のステイタスバー、つまり画面上部の通知領域とか呼ばれてる部分の表示を消すための命令。
さらに(4)は、同様に画面のタイトルバーの表示を消すための命令だ。
これらはゲームアプリなんかで、画面を広く使いたいときなどに良く使われる手段なので覚えておいても良いかもよ。
でもAndroidのバージョンが変わると、こういうテクニックも変わってくるんだよねーまーメンドクセーけど、その辺いずれは各自でガンバレ。
ところで上記の(3)(4)を挿入だけ挿入すると、左端にエラー警告の「バッテン」がつく。
これは例によって"import"の追加で解決するやつで、前述のコード内には既に追加済みなので念のため。
それから前回作ったコードで追加した"import"文で、今回は不要になったものもある。
これも同じく新コードでは削除済みだから、安心してくれたまえ、板前はそこにいたまえ。
さて、以上で実行できるコードにはなった。
でも実行したところで、真っ黒な画面が表示されるだけだから、あんま面白くないよ。
というわけで、今回はあんま面白くないところで一旦終了。
次回は、もう少しは面白くなるかもよ。