- Androidアプリの開発を行いました。
2012年10月29日
2012年10月28日
2012年10月27日
Android用ゲーム開発 -5日目-
4日目からの続き。
まず、 Android Test Project を作成します。
プロジェクト名は、テストするプロジェクト名の後に"Test"をつけます。
Select Test Target で、テスト対象のプロジェクトを指定します。
ここでは、Tricorogue を選択します。
プロジェクトの作成が終わったら、テスト対象のソースコードの上で右クリックします。
右クリックしたら、JUnit テストケースを選択します。選択すると「新規JUnit テストケース」ウィンドウがポップアップします。
「新規JUnit テストケース」ウィンドウがポップアップしたら、「新規JUnit4 テスト」を選択し、
ソースフォルダを TricorogueTest/src フォルダを選択します。
JUnit4のビルドパスも追加します。
あとは、ソースコード毎にユニットテストを書いていきます。
今回は、Point,Mapクラスのテストを書きました。
6日目へ
ユニットテスト
とりあえず、起動できる段階になったので、ユニットテストの環境を整えます。まず、 Android Test Project を作成します。
プロジェクト名は、テストするプロジェクト名の後に"Test"をつけます。
Select Test Target で、テスト対象のプロジェクトを指定します。
ここでは、Tricorogue を選択します。
プロジェクトの作成が終わったら、テスト対象のソースコードの上で右クリックします。
右クリックしたら、JUnit テストケースを選択します。選択すると「新規JUnit テストケース」ウィンドウがポップアップします。
「新規JUnit テストケース」ウィンドウがポップアップしたら、「新規JUnit4 テスト」を選択し、
ソースフォルダを TricorogueTest/src フォルダを選択します。
JUnit4のビルドパスも追加します。
あとは、ソースコード毎にユニットテストを書いていきます。
今回は、Point,Mapクラスのテストを書きました。
6日目へ
2012年10月26日
2012年10月25日
Android用ゲーム開発 -4日目-
3日目からの続き。
フレームワークとの接点を局所化したいので、抽象UIを作ります。
RPGなので、マップと入力を用意し、抽象UIにつなげます。
これを、Activityにつなぎます。
dispatchKeyEventメソッドをオーバーライドします。
マップは、1と0の配列とし、画面にとりあえず、表示させています。
5日目へ。
抽象UI
フレームワークは便利だけれど、縛られると、新しいフレームワークに乗り換えができなくなってしまいます。やっぱり、カッコいいフレームワークが出たら、試して見たいしね。フレームワークとの接点を局所化したいので、抽象UIを作ります。
RPGなので、マップと入力を用意し、抽象UIにつなげます。
public class FundamentalUI {
private Input inputdevice;
private Map dungeon;
FundamentalUI() {
}
public String left() {
return inputdevice.left();
}
public String right() {
return inputdevice.right();
}
public String up() {
return inputdevice.up();
}
public String down() {
return inputdevice.down();
}
public String upperleft() {
return inputdevice.upperleft();
}
public String upperright() {
return inputdevice.upperright();
}
public String lowerleft() {
return inputdevice.lowerleft();
}
public String lowerright() {
return inputdevice.lowerright();
}
public String decision() {
return inputdevice.decision();
}
public Map getDungeon() {
return this.dungeon;
}
}
これを、Activityにつなぎます。
dispatchKeyEventメソッドをオーバーライドします。
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
TextView textView = (TextView) findViewById(R.id.Helloworld);
FundamentalUI fundamentalUI = new FundamentalUI();
if (event.getAction() == KeyEvent.ACTION_UP) {
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_DPAD_UP:
case KeyEvent.KEYCODE_K:
textView.setText(fundamentalUI.up());
return true;
case KeyEvent.KEYCODE_DPAD_DOWN:
case KeyEvent.KEYCODE_J:
textView.setText(fundamentalUI.down());
return true;
case KeyEvent.KEYCODE_DPAD_LEFT:
case KeyEvent.KEYCODE_H:
textView.setText(fundamentalUI.left());
return true;
case KeyEvent.KEYCODE_DPAD_RIGHT:
case KeyEvent.KEYCODE_L:
textView.setText(fundamentalUI.right());
return true;
case KeyEvent.KEYCODE_Y:
textView.setText(fundamentalUI.upperleft());
return true;
case KeyEvent.KEYCODE_U:
textView.setText(fundamentalUI.upperright());
return true;
case KeyEvent.KEYCODE_B:
textView.setText(fundamentalUI.lowerleft());
return true;
case KeyEvent.KEYCODE_N:
textView.setText(fundamentalUI.lowerright());
return true;
case KeyEvent.KEYCODE_DPAD_CENTER:
textView.setText(fundamentalUI.decision());
return true;
default:
break;
}
}
return super.dispatchKeyEvent(event);
}
マップは、1と0の配列とし、画面にとりあえず、表示させています。
5日目へ。
登録:
投稿 (Atom)









