私は現在、J2MEを学び、コネクト4ゲームを構築しようとしています(これを「4列」として知っている人もいるかもしれません)。私を怒らせている1つのことを除いて、私は多かれ少なかれ私のゲームのすべての側面を機能させています!もちろん、これはユーザーからのテキストの取得です。
ゲームの2人用モードでは、各プレーヤーが自分の名前を入力できるようにしたいと思います。メインのMidletを使用しないテキスト入力の実用的な例を見つけるのに苦労しています。
たとえば、java2x.comの例では、単一のミッドレットを使用しています(クラスやキャンバスなどは使用していません)。
現状では、私のアプリケーションのメインのmidlet startメソッドは、メインメニュークラスを開くだけです。
package midlet;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import view.*;
public class Main extends MIDlet {
public void startApp() {
MainMenu mm = new MainMenu();
showScreen(mm);
}
public static void showScreen(Displayable screen) {
Display.getDisplay(instance).setCurrent(screen);
}
public void pauseApp() {
}
public static void quitApp() {
instance.notifyDestroyed();
}
public void destroyApp(boolean unconditional) {
}
}
メインメニュークラスは次のとおりです。
package view;
import javax.microedition.lcdui.*;
import lang.*;
import model.*;
import midlet.Main;
public class MainMenu extends List implements CommandListener {
private Command ok = new Command(StringDefs.currDefs.getString("TEXT_OK"), Command.OK, 1);
public MainMenu() {
super(StringDefs.currDefs.getString("TEXT_TITLE"), List.IMPLICIT);
// we we add in the menu items
append(StringDefs.currDefs.getString("TEXT_PLAY1"), null);
append(StringDefs.currDefs.getString("TEXT_PLAY2"), null);
append(StringDefs.currDefs.getString("TEXT_HIGHSCORETABLE"), null);
append(StringDefs.currDefs.getString("TEXT_HELP"), null);
append(StringDefs.currDefs.getString("TEXT_QUIT"), null);
this.addCommand(ok);
this.setCommandListener(this);
}
public void commandAction(Command c, Displayable d) {
if (c == ok) {
int selectedItem = this.getSelectedIndex();
if (selectedItem != -1) {
switch (selectedItem) {
case 0:
GameBoard gameBoard = new model.GameBoard();
GameCanvasOnePlayer board = new GameCanvasOnePlayer(gameBoard);
Main.showScreen(board);
break;
case 1:
GameBoard gameBoardTwo = new model.GameBoard();
GameCanvasTwoPlayer GameCanvasTwoPlayer = new GameCanvasTwoPlayer(gameBoardTwo);
Main.showScreen(GameCanvasTwoPlayer);
break;
case 2:
HighScores hc = new HighScores();
midlet.Main.showScreen(hc);
break;
case 3:
Help he = new Help();
midlet.Main.showScreen(he);
break;
case 4:
QuitConfirmation qc = new QuitConfirmation();
midlet.Main.showScreen(qc);
break
}
}
}
}
}
このメニューから2人用ゲームを選択した場合(上記のスイッチのケース1)、両方のプレーヤー名を取得して保存できるように、2つのテキストボックスを表示したいと思います。
これを行うための最良の方法は何でしょうか?これはキャンバスでも可能ですか?そして、私が関連する例または少なくとも役立つかもしれない何かをどこで見つけることができるか知っていますか?