Javaの質問です。
よくあるRPGゲームの”Enterキーを押すと次の話に進む”みたいなものをつくりたいんですけど、どんなコードになるのでしょうか?
要するに、なんかの処理→Enter入力→なんかの処理→Enter入力……
みたいな感じにしたいです。
一応ググってみたのですがよくわからなかったです。初心者が手を出すには早いものなのですか?
お手数ですがサンプルコードを頂けたら嬉しいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
GUI に何のライブラリを使っているか書かないとみんな回答しづらいと思います。
AWT, Swing, SWT などがその一例です。どれを使っていますか?
AWT, Swing, SWT のいずれを使っていたとしても、キーボード操作はイベントとして処理されるという基本は同じです。
それは理解できているでしょうか?
キーボード操作の検知とハンドリングはライブラリが行ってくれるのが一般的です。
イベントリスナーというのをあらかじめライブラリに登録しておくことで、キーボード操作検知時にその処理が呼び出されるというものです。
やりたいことを実現する方法にも簡単な方法とその発展形があります。
簡単な方法は、現在の状態を表す変数を定義し、キーボード操作によりその状態を変えて行くという方法です。
各処理はその状態変数によって動作が変わるように実装します。
例えば以下のような感じです(雰囲気実装ですのであしからず)。
lang
1public class MainApplication ... implements KeyListener { 2 3 // 現在の場面を 1 からの番号で表すことにする。 4 private int sceneNumber = 1; 5 6 public void init() { 7 // キーボード操作が発生した場合、keyPressed が呼び出されるよう登録する。 8 addKeyListener(this); 9 } 10 11 public void keyPressed(KeyEvent e) { 12 swtich (sceneNumber) { 13 case 1: 14 case 2: 15 case 3: 16 case 4: 17 // 場面 1, 2, 3, 4 の場合は、エンターキーが押されたら場面を進める。 18 switch (e.getKeyCode()) { 19 case KeyEvent.VK_ENTER: 20 sceneNumber = sceneNumber + 1; 21 break; 22 } 23 break; 24 case 5: 25 // 場面 5 は別の操作を行う。 26 switch (e.getKeyCode()) { 27 case KeyEvent.VK_UP: 28 // 上キーを押したとき。 29 // ... 30 break; 31 case KeyEvent.VK_DOWN: 32 // 下キーを押したとき。 33 // ... 34 break; 35 } 36 break; 37 } 38 39 // 他の場所でも sceneNumber を使って処理をする。例えば場面によって画面の表示が変わるなど。 40 41}
場面が変われば操作も変わるということは往々にしてあると思うので、switch 文で場面ごとに操作が変わるようにします。
この方法だと場面の数だけ分岐の処理を1つのソースコードに全部書く必要があります。
場面によって変わる処理はキーボード操作だけではないでしょうから、それらも全部同じような書き方になります。
場面の数が少なければこの方法でも十分実装できます。入門編です。
発展形では場面毎に処理が切り替えられるような方法を考えます。
例えば各場面を別々のパネルに実装して、場面の切り替えのタイミングでパネルを切り替えるなどです。
そうした場合、場面をまたがって保持する情報がでてくるでしょうから、
情報を保存するクラスを切り分けて実装したり、場面をまたがって必要となる処理を共通クラスとしてくくり出したり、
などを行うことになるでしょう。
GUI プログラミングの知識もそうですが、必要に応じて複数クラスを実装することになるので Java プログラミングの応用力で必要になります。
場面が多くなればこの方法をとらざるを得なくなるでしょう。
投稿2015/04/06 04:02
総合スコア297
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/04/06 04:42
2015/04/06 05:29
2015/04/06 05:31
2015/04/07 13:58