ページ 11

Androidの館についての質問です

Posted: 2013年5月13日(月) 16:11
by lion
Androidの館を参考にイライラ棒を作りました、(アレンジも・・・)

そこで、僕の困っている、知りたいことを書きます

1、スタート画面を作る、

2、「スタート」ボタンをタップすると1面開始、

3、Goalにたどり着くと2面に・・・


という風にやりたいのですが・・・

この場合はどのような仕組みにすればいいのでしょうか?

スタート画面プロジェクト
1面のプロジェクト、
2面のプロジェクト
・・・・・

これらを同じ階層(フォルダ)にいれて・・・・・(どのように(プロジェクトを)繋げればいいのかもわかりません)

というようにやればいいのでしょうか?


DXライブラリみたいにExcelでできるのでしょうか?


よろしくお願いします。

Re: Androidの館についての質問です

Posted: 2013年5月13日(月) 17:55
by ISLe
プロジェクトを分ける必要はありません。

Androidの館に倣うなら、スタート画面やステージはタスクです。
タスクを継承したクラスとしてプロジェクトに追加し作成してください。

DXライブラリ自体にエクセルのデータを扱う機能はありませんが、龍神録の館のことをおっしゃっているのなら、考え方としてはあっていると思います。
エクセルでメンテできるメリットはないと思うので、データをCSVファイルにして外部に出す必要はなく、配列として内部に持たせれば良いと思いますけど。
読み込んだ後のデータの扱いの部分は参考になるはずです。

ステージ開始時にどういうデータを元に障害物を構築・配置するかは設計次第なので、そのへんどうするかはlionさんが決めなければいけません。

Re: Androidの館についての質問です

Posted: 2013年5月13日(月) 18:18
by Dixq (管理人)
ゲーム進行の管理はGameMgrが請け負うのが適切でしょう。
onUpdateで今すべき計算をし、onDrawで今すべき描画をします。
drawStatusでswitch文を使って状態によって異なる動きをさせていますよね。
あんな感じで、現在の状態を示す(スタート画面状態なのか、ゲーム画面状態なのか等)変数を用意し、
それによってどのように計算するかonUpdateとonDrawで処理を分岐させればよいかと思います。

Re: Androidの館についての質問です

Posted: 2013年5月13日(月) 18:27
by lion
ISLe さんが書きました:プロジェクトを分ける必要はありません。

Androidの館に倣うなら、スタート画面やステージはタスクです。
タスクを継承したクラスとしてプロジェクトに追加し作成してください。

DXライブラリ自体にエクセルのデータを扱う機能はありませんが、龍神録の館のことをおっしゃっているのなら、考え方としてはあっていると思います。
返信ありがとございます。

私的にはスタート画面は、スタートボタン(タップすると アラートダイアログ(選択式)が表示される)

例として、「かんたん」「むずかしい」のふたつをだすとして・・・

分岐させる。

これはxmlで作りたいです。

あとはonClickListennerなどでのやりかたがわかりません・・・・

以前に「リンゴ」というボタンを押したらクリックリスナーでリンゴの画像がでてくるというものをつくりましたが・・・継承したのはActuvityでしたし、setContentViewでxmlを指定していました。

おそらく今回の私の質問とは違うと思うのですが・・・

このやり方でできるのでしょうか?


また、今の段階では、GameMgrというクラスに障害物をダラダラと書いていますが、これを、もし3面作るとしたらどのようにすればいいのでしょうか?

Re: Androidの館についての質問です

Posted: 2013年5月13日(月) 18:49
by ISLe
lion さんが書きました:以前に「リンゴ」というボタンを押したらクリックリスナーでリンゴの画像がでてくるというものをつくりましたが・・・継承したのはActuvityでしたし、setContentViewでxmlを指定していました。
レイアウト(XML)には、プロジェクトでユーザー定義したView(を継承したクラス)を使うこともできます。

イライラ棒のプロジェクトは、Taskが基底クラスになっているのですが、インターフェースにすれば、Viewを継承したクラスをタスクにできます。
いわゆるふつうにリスナーでViewのイベントを処理して状況を記録し、状況に応じて動作するようにタスクのメソッドを実装します。
lion さんが書きました:また、今の段階では、GameMgrというクラスに障害物をダラダラと書いていますが、これを、もし3面作るとしたらどのようにすればいいのでしょうか?
ステージが変わるタイミングで障害物のリストをクリアして新しい障害物をセットするためのメソッドを用意すると良いと思います。
現在コンストラクタで障害物を構築しているコードはそこへ移します。

3面分の障害物をどのように構築するかは設計次第です。
とりあえず簡単なのは3面分を最初に全部作ってしまう方法ですが、個人的には将来性のない最悪手だと思います。

Re: Androidの館についての質問です

Posted: 2013年5月13日(月) 19:08
by lion
返信ありがとうございます


ちょっとここでふと思ったことなのですが、

スタート画面からゲームに移る際について閃いたことがありますのでご指摘ください。

ここをみました

ここであるように、スタート画面を「スタート」だけにして(難易度もなにもなし)てきとうな、
上記のページでいう「AndroidsCastleActivity」をつくり(もちろんxmlファイルも作ります)、インテント先を「intent.setClassName」をイライラバープロジェクトのアクテビティを継承している「IrairaBarActivity」を指定すれば、スタートボタンを押せばゲームが始まる・・・・

なんてうまい話はないでしょうか?

Re: Androidの館についての質問です

Posted: 2013年5月14日(火) 00:49
by ISLe
lion さんが書きました:なんてうまい話はないでしょうか?
単純な画面遷移であれば、それで良いと思います。
Intent使ってパラメータ渡すこともできますし。