|
■バージョン1.0(「アプリ作成」ページにある雛形ソース)からの主な変更点
キー操作の感度UPのため、control、key、paintの振り分け処理の追加
数値キー、*キー、#キーに対応
keyRepeatingの修正、keyContinuingの追加
rankingメソッド(内容はなし)の追加
→iアプリ用はコチラ
→v/ezアプリ用はコチラ
■iアプリ用
DoJaの
Kicker.java
import com.nttdocomo.ui.*;
/**
* ゲームの開始処理を行うクラスです。
*
* @author RGB
* @version 1.1
*/
public class Kicker extends IApplication {
/**
* メインのキャンバスです。
*/
private MainCanvas mc;
/**
* アプリケーションが起動したら呼ばれるメソッドです。
*/
public void start() {
mc = new MainCanvas(this);
Display.setCurrent(mc);
mc.start();
}
}
|
DoJaの
MainCanvas.java
import com.nttdocomo.ui.*;
import com.nttdocomo.io.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.*;
/**
* メインのキャンバスです。
*
* @author RGB
* @version 1.1
*/
public class MainCanvas extends Canvas implements Runnable {
// ------------------------------------------------------------------------
//
// 共通部:特に変更する必要はありません。
//
// ------------------------------------------------------------------------
/**
* 使用領域の幅です。
*/
public static final int AREA_WIDTH = 240;
/**
* 使用領域の高さです。
*/
public static final int AREA_HEIGHT = 240;
/**
* 画面の幅です。
*/
public static final int DISPLAY_WIDTH = Display.getWidth();
/**
* 画面の高さです。
*/
public static final int DISPLAY_HEIGHT = Display.getHeight();
/**
* キー処理で使用する定数で、「上キー」を表します。
*/
public static final int KEY_UP = Display.KEY_UP;
/**
* キー処理で使用する定数で、「下キー」を表します。
*/
public static final int KEY_DOWN = Display.KEY_DOWN;
/**
* キー処理で使用する定数で、「右キー」を表します。
*/
public static final int KEY_RIGHT = Display.KEY_RIGHT;
/**
* キー処理で使用する定数で、「左キー」を表します。
*/
public static final int KEY_LEFT = Display.KEY_LEFT;
/**
* キー処理で使用する定数で、「決定キー」を表します。
*/
public static final int KEY_SELECT = Display.KEY_SELECT;
/**
* キー処理で使用する定数で、「0キー」を表します。
*/
public static final int KEY_0 = Display.KEY_0;
/**
* キー処理で使用する定数で、「1キー」を表します。
*/
public static final int KEY_1 = Display.KEY_1;
/**
* キー処理で使用する定数で、「2キー」を表します。
*/
public static final int KEY_2 = Display.KEY_2;
/**
* キー処理で使用する定数で、「3キー」を表します。
*/
public static final int KEY_3 = Display.KEY_3;
/**
* キー処理で使用する定数で、「4キー」を表します。
*/
public static final int KEY_4 = Display.KEY_4;
/**
* キー処理で使用する定数で、「5キー」を表します。
*/
public static final int KEY_5 = Display.KEY_5;
/**
* キー処理で使用する定数で、「6キー」を表します。
*/
public static final int KEY_6 = Display.KEY_6;
/**
* キー処理で使用する定数で、「7キー」を表します。
*/
public static final int KEY_7 = Display.KEY_7;
/**
* キー処理で使用する定数で、「8キー」を表します。
*/
public static final int KEY_8 = Display.KEY_8;
/**
* キー処理で使用する定数で、「9キー」を表します。
*/
public static final int KEY_9 = Display.KEY_9;
/**
* キー処理で使用する定数で、「*キー」を表します。
*/
public static final int KEY_ASTERISK = Display.KEY_ASTERISK;
/**
* キー処理で使用する定数で、「#キー」を表します。
*/
public static final int KEY_POUND = Display.KEY_POUND;
/**
* 押されたキーの値です。
*/
private int keyeventPressed = 0;
/**
* このキャンバスのグラフィックスオブジェクトです。
*/
private Graphics g = null;
/**
* 現在のフレームカウントです。
*/
private int frameCount = 0;
/**
* 現在のシーンです。
*/
private int scene = 0;
/**
* シーンの切り替え状態を管理します。
*/
private boolean sceneSwitch = false;
/**
* 設定されたIApplicationオブジェクトです。
*/
private IApplication kicker;
/**
* ゲーム用のスレッドです。
*/
private Thread th;
/**
* キーイベント発生時にtrueとなります。
*/
private boolean keyeventHappen;
/**
* キーリピート開始時のframeCountです。
*/
private int startRepeatCount;
/**
* コンストラクタです。
*/
public MainCanvas(IApplication kicker) {
this.kicker = kicker;
}
/**
* キャンバス処理を開始します。
*/
public void start() {
repaint();
}
/**
* 画面の描画要求時に呼ばれます。
*
* @param g グラフィックスオブジェクトが渡されます。
*/
public void paint(Graphics g) {
if(th == null) {
this.g = g;
th = new Thread(this);
th.start();
Thread.currentThread().yield();
}
}
/**
* キーイベント取得メソッドです。
*
* @param type イベントのタイプが渡されます。
* @param param イベントのパラメータが渡されます。
*/
public void processEvent(int type, int param) {
if(type == Display.KEY_PRESSED_EVENT) {
keyeventPressed = param;
}
else if(type == Display.KEY_RELEASED_EVENT) {
keyeventPressed = 0;
startRepeatCount = 0;
}
if(keyScene()) {
paintScene();
keyeventHappen = true;
}
}
/**
* 指定されたキーが、押された状態であるかを判定します。
*
* @param key 検索するキーを設定します。
*/
public boolean keyPressing(int key) {
if(keyeventPressed == key) {
keyeventPressed = 0;
return true;
}
else {
return false;
}
}
/**
* 指定されたキーが、押されっぱなしの状態であるかを判定します。
*
* @param key 検索するキーを設定します。
*/
public boolean keyContinuing(int key) {
if(keyeventPressed == key) {
return true;
}
else {
return false;
}
}
/**
* 指定されたキーが、キーリピート状態であるかを判定します。
*
* @param key 検索するキーを設定します。
*/
public boolean keyRepeating(int key) {
if(keyeventPressed == key) {
if(startRepeatCount == 0) {
startRepeatCount = frameCount;
return true;
}
else if(frameCount - startRepeatCount > 1) {
return true;
}
else {
return false;
}
}
else {
return false;
}
}
/**
* アプリを終了します。
*/
public void exit() {
IApplication.getCurrentApp().terminate();
}
/**
* 画像を読み込みます。
*
* @param name 画像名称を設定します。
* @return 読み込んだ画像を返します。
*/
public Image loadImage(String name) {
MediaImage mImg = null;
Image img = null;
try {
mImg = MediaManager.getImage("resource:///" + name + ".gif");
mImg.use();
img = mImg.getImage();
}
catch(ConnectionException ce) {
if(mImg != null) {
mImg.unuse();
mImg.dispose();
}
throw new RuntimeException(ce.getMessage());
}
return img;
}
/**
* 描画開始時・描画終了時の処理を行います。
*
* @param state 描画開始はtrue、描画終了はfalseを設定します。
*/
public void draw(boolean state) {
if(state) {
g.lock();
}
else {
g.unlock(false);
}
}
/**
* 描画に使用する色を設定します。
*
* @param red 赤要素の輝度を指定します(0〜255)。
* @param green 緑要素の輝度を指定します(0〜255)。
* @param blue 青要素の輝度を指定します(0〜255)。
*/
public void setColor(int red, int green, int blue) {
g.setColor(Graphics.getColorOfRGB(red, green, blue));
}
/**
* 矩形領域を塗りつぶします。
*
* @param x 矩形の左上のX座標を指定します。
* @param y 矩形の左上のY座標を指定します。
* @param width 矩形の幅を指定します。
* @param height 矩形の高さを指定します。
*/
public void fillRect(int x, int y, int width, int height) {
g.fillRect(x, y, width, height);
}
/**
* 文字列を描画します。
*
* @param str 描画する文字列を指定します。
* @param x X座標を指定します。
* @param y Y座標を指定します。
*/
public void drawString(String str, int x, int y) {
g.drawString(str, x, y + Font.getDefaultFont().getBBoxHeight(str));
}
/**
* イメージを描画します。
*
* @param image 描画するイメージオブジェクトを指定します。
* @param x X座標を指定します。
* @param y Y座標を指定します。
*/
public void drawImage(Image image, int x, int y) {
g.drawImage(image, x, y);
}
/**
* ゲーム用スレッドの処理です。
*/
public void run() {
g = getGraphics();
try {
changeScene(SC_INIT);
while(true) {
keyeventHappen = false;
controlScene();
if(keyeventHappen == false) {
keyScene();
}
paintScene();
Thread.currentThread().sleep(100);
if(frameCount < Integer.MAX_VALUE) {
frameCount ++;
}
else {
frameCount = 0;
}
}
}
catch(Throwable t) {
System.out.println(t.getMessage());
exit();
}
}
/**
* シーンを変更します。
*
* @param scene 変更するシーンを設定します。
*/
public void changeScene(int scene) {
this.scene = scene;
sceneSwitch = true;
}
/**
* シーンの初期化処理をすべきかを判断します。
*
* @return シーンが変更された直後はtrueを返します。
* それ以降はfalseを返します。
*/
public boolean firstScene() {
return sceneSwitch;
}
/**
* シーンの初期化処理が終了した場合に呼び出します。
*/
public void firstSceneEnd() {
sceneSwitch = false;
}
/**
* ランキング画面を開きます。
*
* @param point 登録する得点を設定します。
*/
public void ranking(int point) {
}
// ------------------------------------------------------------------------
//
// 実装部:ゲームごとに変更します。
//
// ------------------------------------------------------------------------
/** 「初期化」シーンです。*/
public static final int SC_INIT = 0;
/** 「タイトル」シーンです。*/
public static final int SC_TITLE = 1;
/** 「プレイ」シーンです。*/
public static final int SC_PLAY = 2;
/** 「結果」シーンです。*/
public static final int SC_RESULT = 3;
/**
* シーンごとの制御処理を振り分けます。
*/
public synchronized void controlScene() {
switch(scene) {
case SC_INIT:
controlInit();
break;
case SC_TITLE:
controlTitle();
break;
case SC_PLAY:
controlPlay();
break;
case SC_RESULT:
controlResult();
break;
}
}
/**
* シーンごとのキー処理を振り分けます。
*
* @return キーイベントが処理された場合にtrueを返します。
*/
public synchronized boolean keyScene() {
if(firstScene()) {
return false;
}
switch(scene) {
case SC_INIT:
return keyInit();
case SC_TITLE:
return keyTitle();
case SC_PLAY:
return keyPlay();
case SC_RESULT:
return keyResult();
}
return false;
}
/**
* シーンごとの描画処理を振り分けます。
*/
public synchronized void paintScene() {
if(firstScene()) {
return;
}
switch(scene) {
case SC_INIT:
paintInit();
break;
case SC_TITLE:
paintTitle();
break;
case SC_PLAY:
paintPlay();
break;
case SC_RESULT:
paintResult();
break;
}
}
// ------------------------------
// 初期化シーン
// ------------------------------
/**
* 初期化シーンの制御処理を行います。
*/
public void controlInit() {
if(firstScene()) {
firstSceneEnd();
}
// タイトル画面へ遷移
changeScene(SC_TITLE);
return;
}
/**
* 初期化シーンのキー処理を行います。
*
* @return キーイベントが処理された場合にtrueを返します。
*/
public boolean keyInit() {
return false;
}
/**
* 初期化シーンの描画処理を行います。
*/
public void paintInit() {
}
// ------------------------------
// タイトルシーン
// ------------------------------
/**
* タイトルシーンの制御処理を行います。
*/
public void controlTitle() {
if(firstScene()) {
firstSceneEnd();
}
}
/**
* タイトルシーンのキー処理を行います。
*
* @return キーイベントが処理された場合にtrueを返します。
*/
public boolean keyTitle() {
return false;
}
/**
* タイトルシーンの描画処理を行います。
*/
public void paintTitle() {
draw(true);
setColor(0, 0, 255);
fillRect(0, 0, AREA_WIDTH, AREA_HEIGHT);
setColor(255, 0, 0);
drawString("HELLO", 10, 20);
draw(false);
}
// ------------------------------
// プレイシーン
// ------------------------------
/**
* プレイシーンの制御処理を行います。
*/
public void controlPlay() {
if(firstScene()) {
firstSceneEnd();
}
}
/**
* プレイシーンのキー処理を行います。
*
* @return キーイベントが処理された場合にtrueを返します。
*/
public boolean keyPlay() {
return false;
}
/**
* プレイシーンの描画処理を行います。
*/
public void paintPlay() {
}
// ------------------------------
// 結果シーン
// ------------------------------
/**
* 結果シーンの制御処理を行います。
*/
public void controlResult() {
if(firstScene()) {
firstSceneEnd();
}
}
/**
* 結果シーンのキー処理を行います。
*
* @return キーイベントが処理された場合にtrueを返します。
*/
public boolean keyResult() {
return false;
}
/**
* 結果シーンの描画処理を行います。
*/
public void paintResult() {
}
}
|
■v/ezアプリ用
MIDPの
Kicker.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* ゲームの開始処理を行うクラスです。
*
* @author RGB
* @version 1.1
*/
public class Kicker extends MIDlet {
/**
* メインのキャンバスです。
*/
private MainCanvas mc;
/**
* MIDlet開始時、またはPause状態時からResumeするときに呼ばれます。
*/
public void startApp() {
if(mc == null) {
mc = new MainCanvas(this);
Display.getDisplay(this).setCurrent(mc);
mc.start();
}
}
/**
* 電話がかかってきたときなどPauseさせる必要があるときに呼ばれます。
*/
public void pauseApp() {
}
/**
* MIDlet終了時に呼ばれます。
*/
public void destroyApp(boolean unconditional) {
}
}
|
MIDPの
MainCanvas.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import javax.microedition.rms.*;
import java.io.*;
import java.util.*;
/**
* メインのキャンバスです。
*
* @author RGB
* @version 1.1
*/
public class MainCanvas extends Canvas implements Runnable {
// ------------------------------------------------------------------------
//
// 共通部:特に変更する必要はありません。
//
// ------------------------------------------------------------------------
/**
* 使用領域の幅です。
*/
public static final int AREA_WIDTH = 240;
/**
* 使用領域の高さです。
*/
public static final int AREA_HEIGHT = 240;
/**
* 画面の幅です。
*/
public static int DISPLAY_WIDTH;
/**
* 画面の高さです。
*/
public static int DISPLAY_HEIGHT;
/**
* キー処理で使用する定数で、「上キー」を表します。
*/
public static final int KEY_UP = Canvas.UP;
/**
* キー処理で使用する定数で、「下キー」を表します。
*/
public static final int KEY_DOWN = Canvas.DOWN;
/**
* キー処理で使用する定数で、「右キー」を表します。
*/
public static final int KEY_RIGHT = Canvas.RIGHT;
/**
* キー処理で使用する定数で、「左キー」を表します。
*/
public static final int KEY_LEFT = Canvas.LEFT;
/**
* キー処理で使用する定数で、「決定キー」を表します。
*/
public static final int KEY_SELECT = Canvas.FIRE;
/**
* キー処理で使用する定数で、「0キー」を表します。
*/
public static final int KEY_0 = Canvas.KEY_NUM0;
/**
* キー処理で使用する定数で、「1キー」を表します。
*/
public static final int KEY_1 = Canvas.KEY_NUM1;
/**
* キー処理で使用する定数で、「2キー」を表します。
*/
public static final int KEY_2 = Canvas.KEY_NUM2;
/**
* キー処理で使用する定数で、「3キー」を表します。
*/
public static final int KEY_3 = Canvas.KEY_NUM3;
/**
* キー処理で使用する定数で、「4キー」を表します。
*/
public static final int KEY_4 = Canvas.KEY_NUM4;
/**
* キー処理で使用する定数で、「5キー」を表します。
*/
public static final int KEY_5 = Canvas.KEY_NUM5;
/**
* キー処理で使用する定数で、「6キー」を表します。
*/
public static final int KEY_6 = Canvas.KEY_NUM6;
/**
* キー処理で使用する定数で、「7キー」を表します。
*/
public static final int KEY_7 = Canvas.KEY_NUM7;
/**
* キー処理で使用する定数で、「8キー」を表します。
*/
public static final int KEY_8 = Canvas.KEY_NUM8;
/**
* キー処理で使用する定数で、「9キー」を表します。
*/
public static final int KEY_9 = Canvas.KEY_NUM9;
/**
* キー処理で使用する定数で、「*キー」を表します。
*/
public static final int KEY_ASTERISK = Canvas.KEY_STAR;
/**
* キー処理で使用する定数で、「#キー」を表します。
*/
public static final int KEY_POUND = Canvas.KEY_POUND;
/**
* 押されたキーの値です。
*/
private int keyeventPressed = 0;
/**
* このキャンバスのグラフィックスオブジェクトです。
*/
private Graphics g = null;
/**
* 現在のフレームカウントです。
*/
private int frameCount = 0;
/**
* 現在のシーンです。
*/
private int scene = 0;
/**
* シーンの切り替え状態を管理します。
*/
private boolean sceneSwitch = false;
/**
* 設定されたMIDletオブジェクトです。
*/
private MIDlet kicker;
/**
* ゲーム用のスレッドです。
*/
private Thread th;
/**
* キーイベント発生時にtrueとなります。
*/
private boolean keyeventHappen;
/**
* キーリピート開始時のframeCountです。
*/
private int startRepeatCount;
/**
* コンストラクタです。
*/
public MainCanvas(MIDlet kicker) {
this.kicker = kicker;
DISPLAY_WIDTH = getWidth();
DISPLAY_HEIGHT = getHeight();
}
/**
* キャンバス処理を開始します。
*/
public void start() {
repaint();
}
/**
* 画面の描画要求時に呼ばれます。
*
* @param g グラフィックスオブジェクトが渡されます。
*/
public void paint(Graphics g) {
if(th == null) {
this.g = g;
th = new Thread(this);
th.start();
Thread.currentThread().yield();
}
}
/**
* キーを押した時に呼ばれます。
*
* @param keyCode 押されたキーのコードを設定します。
*/
public void keyPressed(int keyCode) {
switch(keyCode) {
case KEY_0 :
case KEY_1 :
case KEY_2 :
case KEY_3 :
case KEY_4 :
case KEY_5 :
case KEY_6 :
case KEY_7 :
case KEY_8 :
case KEY_9 :
case KEY_ASTERISK :
case KEY_POUND :
keyeventPressed = keyCode;
break;
default :
keyeventPressed = getGameAction(keyCode);
break;
}
if(keyScene()) {
paintScene();
keyeventHappen = true;
}
}
/**
* キーを離した時に呼ばれます。
*
* @param keyCode 押されたキーのコードを設定します。
*/
public void keyReleased(int keyCode) {
keyeventPressed = 0;
startRepeatCount = 0;
}
/**
* 指定されたキーが、押された状態であるかを判定します。
*
* @param key 検索するキーを設定します。
*/
public boolean keyPressing(int key) {
if(keyeventPressed == key) {
keyeventPressed = 0;
return true;
}
else {
return false;
}
}
/**
* 指定されたキーが、押されっぱなしの状態であるかを判定します。
*
* @param key 検索するキーを設定します。
*/
public boolean keyContinuing(int key) {
if(keyeventPressed == key) {
return true;
}
else {
return false;
}
}
/**
* 指定されたキーが、キーリピート状態であるかを判定します。
*
* @param key 検索するキーを設定します。
*/
public boolean keyRepeating(int key) {
if(keyeventPressed == key) {
if(startRepeatCount == 0) {
startRepeatCount = frameCount;
return true;
}
else if(frameCount - startRepeatCount > 1) {
return true;
}
else {
return false;
}
}
else {
return false;
}
}
/**
* アプリを終了します。
*/
public void exit() {
kicker.notifyDestroyed();
}
/**
* 画像を読み込みます。
*
* @param name 画像名称を設定します。
* @return 読み込んだ画像を返します。
*/
public Image loadImage(String name) {
Image img = null;
try {
img = Image.createImage("/" + name + ".png");
}
catch(IOException ie) {
throw new RuntimeException(ie.getMessage());
}
return img;
}
/**
* 描画開始時・描画終了時の処理を行います。
*
* @param state 描画開始はtrue、描画終了はfalseを設定します。
*/
public void draw(boolean state) {
if(state) {
}
else {
repaint();
}
}
/**
* 描画に使用する色を設定します。
*
* @param red 赤要素の輝度を指定します(0〜255)。
* @param green 緑要素の輝度を指定します(0〜255)。
* @param blue 青要素の輝度を指定します(0〜255)。
*/
public void setColor(int red, int green, int blue) {
g.setColor(red, green, blue);
}
/**
* 矩形領域を塗りつぶします。
*
* @param x 矩形の左上のX座標を指定します。
* @param y 矩形の左上のY座標を指定します。
* @param width 矩形の幅を指定します。
* @param height 矩形の高さを指定します。
*/
public void fillRect(int x, int y, int width, int height) {
g.fillRect(x, y, width, height);
}
/**
* 文字列を描画します。
*
* @param str 描画する文字列を指定します。
* @param x X座標を指定します。
* @param y Y座標を指定します。
*/
public void drawString(String str, int x, int y) {
g.drawString(str, x, y, Graphics.TOP|Graphics.LEFT);
}
/**
* イメージを描画します。
*
* @param image 描画するイメージオブジェクトを指定します。
* @param x X座標を指定します。
* @param y Y座標を指定します。
*/
public void drawImage(Image image, int x, int y) {
g.drawImage(image, x, y, Graphics.TOP|Graphics.LEFT);
}
/**
* ゲーム用スレッドの処理です。
*/
public void run() {
try {
changeScene(SC_INIT);
while(true) {
keyeventHappen = false;
controlScene();
if(keyeventHappen == false) {
keyScene();
}
paintScene();
Thread.currentThread().sleep(100);
if(frameCount < Integer.MAX_VALUE) {
frameCount ++;
}
else {
frameCount = 0;
}
}
}
catch(Throwable t) {
System.out.println(t.getMessage());
exit();
}
}
/**
* シーンを変更します。
*
* @param scene 変更するシーンを設定します。
*/
public void changeScene(int scene) {
this.scene = scene;
sceneSwitch = true;
}
/**
* シーンの初期化処理をすべきかを判断します。
*
* @return シーンが変更された直後はtrueを返します。
* それ以降はfalseを返します。
*/
public boolean firstScene() {
return sceneSwitch;
}
/**
* シーンの初期化処理が終了した場合に呼び出します。
*/
public void firstSceneEnd() {
sceneSwitch = false;
}
/**
* ランキング画面を開きます。
*
* @param point 登録する得点を設定します。
*/
public void ranking(int point) {
}
// ------------------------------------------------------------------------
//
// 実装部:ゲームごとに変更します。
//
// ------------------------------------------------------------------------
/** 「初期化」シーンです。*/
public static final int SC_INIT = 0;
/** 「タイトル」シーンです。*/
public static final int SC_TITLE = 1;
/** 「プレイ」シーンです。*/
public static final int SC_PLAY = 2;
/** 「結果」シーンです。*/
public static final int SC_RESULT = 3;
/**
* シーンごとの制御処理を振り分けます。
*/
public synchronized void controlScene() {
switch(scene) {
case SC_INIT:
controlInit();
break;
case SC_TITLE:
controlTitle();
break;
case SC_PLAY:
controlPlay();
break;
case SC_RESULT:
controlResult();
break;
}
}
/**
* シーンごとのキー処理を振り分けます。
*
* @return キーイベントが処理された場合にtrueを返します。
*/
public synchronized boolean keyScene() {
if(firstScene()) {
return false;
}
switch(scene) {
case SC_INIT:
return keyInit();
case SC_TITLE:
return keyTitle();
case SC_PLAY:
return keyPlay();
case SC_RESULT:
return keyResult();
}
return false;
}
/**
* シーンごとの描画処理を振り分けます。
*/
public synchronized void paintScene() {
if(firstScene()) {
return;
}
switch(scene) {
case SC_INIT:
paintInit();
break;
case SC_TITLE:
paintTitle();
break;
case SC_PLAY:
paintPlay();
break;
case SC_RESULT:
paintResult();
break;
}
}
// ------------------------------
// 初期化シーン
// ------------------------------
/**
* 初期化シーンの制御処理を行います。
*/
public void controlInit() {
if(firstScene()) {
firstSceneEnd();
}
// タイトル画面へ遷移
changeScene(SC_TITLE);
return;
}
/**
* 初期化シーンのキー処理を行います。
*
* @return キーイベントが処理された場合にtrueを返します。
*/
public boolean keyInit() {
return false;
}
/**
* 初期化シーンの描画処理を行います。
*/
public void paintInit() {
}
// ------------------------------
// タイトルシーン
// ------------------------------
/**
* タイトルシーンの制御処理を行います。
*/
public void controlTitle() {
if(firstScene()) {
firstSceneEnd();
}
}
/**
* タイトルシーンのキー処理を行います。
*
* @return キーイベントが処理された場合にtrueを返します。
*/
public boolean keyTitle() {
return false;
}
/**
* タイトルシーンの描画処理を行います。
*/
public void paintTitle() {
draw(true);
setColor(0, 0, 255);
fillRect(0, 0, AREA_WIDTH, AREA_HEIGHT);
setColor(255, 0, 0);
drawString("HELLO", 10, 20);
draw(false);
}
// ------------------------------
// プレイシーン
// ------------------------------
/**
* プレイシーンの制御処理を行います。
*/
public void controlPlay() {
if(firstScene()) {
firstSceneEnd();
}
}
/**
* プレイシーンのキー処理を行います。
*
* @return キーイベントが処理された場合にtrueを返します。
*/
public boolean keyPlay() {
return false;
}
/**
* プレイシーンの描画処理を行います。
*/
public void paintPlay() {
}
// ------------------------------
// 結果シーン
// ------------------------------
/**
* 結果シーンの制御処理を行います。
*/
public void controlResult() {
if(firstScene()) {
firstSceneEnd();
}
}
/**
* 結果シーンのキー処理を行います。
*
* @return キーイベントが処理された場合にtrueを返します。
*/
public boolean keyResult() {
return false;
}
/**
* 結果シーンの描画処理を行います。
*/
public void paintResult() {
}
}
|
|