저는 현재 J2ME을 배우려고하고 4 개의 게임을 연결하려고합니다 (여러분 중 일부는 '4 행'으로 알 수 있습니다). 나는 화를 내고있는 한 가지를 제외하고는 게임의 모든 측면을 더 많거나 적게했습니다! 이것은 물론 사용자로부터 텍스트를 가져 오는 것입니다!j2me 캔버스를 사용하여 사용자로부터 어떻게 입력합니까? 이게 가능한가?
게임의 두 플레이어 모드의 경우 각 플레이어가 자신의 이름을 입력 할 수있게하려고합니다. 메인 미들 렛을 사용하지 않는 텍스트 입력 예제를 찾기 위해 고심하고 있습니다.
예를 들어 java2x.com의 예제는 단일 미드 렛 (클래스 또는 캔버스 또는 기타 없음) 만 사용합니다.
내 응용 프로그램의 주 미들 릿 시작 방법은 단순히 메인 메뉴 클래스 열립니다 로선 :
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
}
}
}
}
}
(위의 스위치에서 case 1)이 메뉴에서 나는 플레이어 이름을 모두 가져올 수 있도록 두 개의 텍스트 상자를 표시하고 싶습니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 캔버스로도 가능합니까? 그리고 내가 관련있는 예를 찾거나 도움이 될만한 것을 발견 할 수 있습니까?
고마워요! 솔루션을 빠르게 살펴 본 결과 작동해야합니다! 그러나 Ruibm이 말한 것처럼 나는 다양한 유형의 전화 키보드 뒤에 모든 로직을 구현해야만한다고 말했습니다. 이 문제를 해결할 수 없다면 사용해야 할 수도 있습니다! 감사! – Exile
게임의 경우 어쩌면이 사람과 같은 방식으로 입력 할 수 있습니다. http://devlinslab.blogspot.com/2007/11/handling-text-input-for-character-or.html –