ページ 1 / 1
IraIraBarをゲームタイトル→ゲームシーンに移動のようにさせたい。
Posted: 2012年11月20日(火) 20:09
by ひなし
初めまして、お世話になっております。
今回はAndroidプログラミングの館のほうで説明してくださっている
IraIraBarのサンプルでタイトル→ゲームシーンへ移行を作るにはどうすればいいのか
ということを質問させていただきたいです。
自分でもいくつか方法を試してみたのですが、すべて 「予期せぬエラー~」となり
強制終了してしまうため駄目でした。
ご教授のほどよろしくお願いいたします。
Re: IraIraBarをゲームタイトル→ゲームシーンに移動のようにさせたい。
Posted: 2012年11月20日(火) 20:15
by nil
教授->教示の間違いでは?
丸投げは禁止です。
質問者さんの現在書いているコードをご提示ください。
Re: IraIraBarをゲームタイトル→ゲームシーンに移動のようにさせたい。
Posted: 2012年11月20日(火) 20:35
by ひなし
涼雅さん
レスを付けてくださりありがとうございます。
教授は教示の間違いでした、申し訳ありません。
現在書いているコードについては、質問のほうでも書かせていただいた通り
「予期せぬ~」となり強制終了してしまうたびに
そこを消しては元に戻してを繰り返しているので
サンプルコードのままとなっております。
サンプルコードのままを上げるというのもどうなのかと思い
ソースコードは上げませんでした。 申し訳ありませんでした。
Re: IraIraBarをゲームタイトル→ゲームシーンに移動のようにさせたい。
Posted: 2012年11月20日(火) 23:55
by Dixq (管理人)
あのサンプルはエラー処理が大して入れてありません。
別件でもいくつか質問が来ているので、ある程度エラー処理を入れたコードに直しておこうと思います。少々お待ちください。
描画で落ちる場合は
GameSurfaceView#
コード:
private void onDraw(SurfaceHolder holder) {
Canvas c = holder.lockCanvas();
if(c==null){
return;
}
_gameMgr.onDraw(c);
holder.unlockCanvasAndPost(c);
}
を試してみてください。
Re: IraIraBarをゲームタイトル→ゲームシーンに移動のようにさせたい。
Posted: 2012年11月21日(水) 09:55
by ひなし
おはようございます。
失礼いたします。
タッチをしたらゲームシーンへ移行するというのを試しているのですが
タッチイベントの関数を入れると例の「予期せぬ~」となり
なかなかうまくいきません。
どうしたらいいでしょうか。 いじっている箇所のコードは以下となります。
#GameManager
コード:
/**
* GameManagerのコンストラクタ
*
*/
GameManager() {
switch(status){
case TITLE:
break;
case PLAY:
// 画面4隅に四角形を配置
// コンフィグを特に設定せずnullを渡せばデフォルト設定になる
barrierList.add(new BarrierSquare(0, 0, 480, 20, null)); // 上側
barrierList.add(new BarrierSquare(0, 0, 20, 854, null)); // 左側
barrierList.add(new BarrierSquare(460, 0, 20, 854, null)); // 右側
barrierList.add(new BarrierSquare(0, 834, 480, 20, null)); // 下側
for (Barrier bar : barrierList) {
// タスクリストに障害物を追加
taskList.add(bar);
}
// 参考URL:http://www.javadrive.jp/start/linkedlist/
// 更新させなければいけないもののオブジェクトを作成する
player = new Player();
taskList.add(player);
taskList.add(new FpsController());
break;
}
}
[code]
#GameManager
[code = Java]
/**
* タスクの更新処理
*
* @return
*/
public boolean onUpdate() {
switch (status) {
case TITLE:
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
status = GameStatus.PLAY;
break;
}
break;
case PLAY:
// ゲームオーバーかゲームクリア状態だったら抜ける(止まる)
if (status == GameStatus.GAME_OVER || status == GameStatus.GAME_CLEAR) {
return true;
}
if (status == GameStatus.TITLE) {
status = GameStatus.TITLE;
}
// もし障害物に衝突したらonUpdateを抜ける
if (Collision()) {
return true;
}
for (int i = 0; i < taskList.size(); i++) {
// 更新失敗なら
if (taskList.get(i).onUpdate() == false) {
// そのタスクを消す
taskList.remove(i);
i--;
}
}
break;
}
return true;
}