📄 mycanvas.java~104~
字号:
package Game;
/////////////////////////////
//屏幕寬180
//屏幕高196
/////////////////////////////
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import java.io.*;
import javax.microedition.lcdui.Font;
public class MyCanvas extends Canvas implements Runnable {
//////////////////////////////////////////////////////宏定義
public static final int GAME_LOGO = 0;
public static final int UP = -1;
public static final int DOWN = -2;
public static final int LEFT = -3;
public static final int RIGHT = -4;
public static final int FIRE = -5;
public static final int LEFT_KEY = -6;
public static final int RIGHT_KEY = -7;
//////////////////////////////////////////////////////mc變量
DataRMS dr;
int viewX; //屏幕左上角坐标
int viewY; //屏幕左上角坐标
int screenWidth; //屏幕寬
int screenHeight; //屏幕高
Image imgBuffer; //雙緩沖圖片
Thread thread; //線程
Graphics gg; //雙緩沖畫筆
Font font;
Mymidlet midlet; //移動信息驅動描述
Tools tools; //工具
///////////////////////////////////////////////////////狀態變量
int gameState; //游戏總狀態 0--菜单页 1--游戏页
int scene; //游戏进行中的场景号: 0--战斗页 其它代表各场景的序号
int sceneAfterFight; //记录战斗之后应该回到的场景
boolean keyState; //按键狀態!!!!!!!
int switchFightState; //场景画面与战斗画面的切换状态:
boolean running; //游戲開始
int toScene; //即将要切换去的场景号
int SlideState;
///////////////////////////////////////////////////////指針變量
int mainMenuPoint; //游戲主目錄指針
//////////////////////////////////////////////////////計時器變量
int logoCount; //LOGO計時器
///////////////////////////////////////////////////////坐标变量
///////////////////////////////////////////////////////游戲變量
MyImage image; //圖片類
Map map; //地圖
Hero hero;
Menu menu; //菜单
Text text; //显示信息
boolean confirm = false; //是否按下确定
boolean dialogOn; //是否处于对话状态
int dialogID; //对话ID号,随着剧情增加
boolean firstBoot; //是否第一次游戏
int process = 0; //游戏进度,与同一个 NPC 说不同的话时用到
////////////////////////////////////////////////////////////////////////////////
public MyCanvas(Mymidlet midlet) { //構造!!!!!, 系統構造
this.setFullScreenMode(true); //設置全屏
this.dr = new DataRMS(this); //生成一个存储对象
gameState = GAME_LOGO;
image = new MyImage(this);
tools = new Tools(this);
this.midlet = midlet;
this.screenHeight = this.getHeight();
this.screenWidth = this.getWidth();
thread = new Thread(this);
imgBuffer = Image.createImage(this.getWidth(), this.getHeight());
gg = imgBuffer.getGraphics();
font = Font.getFont(0, 0, 16);
menu = new Menu(this);
hero = new Hero(this);
text = new Text(this);
}
////////////////////////////////////////////////////////////////////////////
//自定義方法
public void gamestart() { //游戲開始
thread.start();
running = true;
}
public void ClearScreen(Graphics g) {
g.setColor(0);
g.fillRect(0, 0, this.screenWidth, this.screenHeight);
}
public void game_logic() { /////////////邏輯!!!!!邏輯!!!!!邏輯!!!!!
}
public void checkTalk() {
if (text.getTextState() == 0 && confirm) { //没有对话时,并且按下确定时
switch (hero.getNextCollideNPC()) {
case 4: //与阿美对话时
dialogOn = true;
switch (process) {
case 1: //与阿美第一次对话完后
dialogID = 14;
break;
case 2: //与霍恩第一次对话完后
case 3: //与胡尔第一次对话完后
dialogID = 26;
break;
}
break;
case 2: //与霍恩对话
dialogOn = true;
switch (process) {
case 1: //与阿美第一次对话完后
dialogID = 15;
break;
case 2: //与霍恩第一次对话完后
case 3: //与胡尔第一次对话完后
dialogID = 25;
break;
}
break;
case 1: //与胡尔对话
dialogOn = true;
switch (process) {
case 1: //还没到与此 NPC 对话的时候
dialogID = 44;
break;
case 2: //与霍恩第一次对话完后
dialogID = 27;
break;
case 3: //与胡尔第一次对话完后
dialogID = 37;
break;
}
break;
case 0: //与萨耶对话
dialogOn = true;
switch (process) {
case 1:
case 2: //还没发展到此情节
dialogID = 44;
break;
case 3: //与胡尔第一次对话完后
dialogID = 38;
break;
}
break;
}
}
}
public void setDialog() {
if (dialogOn) {
text.emptyText();
switch (dialogID) {
case 1: //========= 与阿美第一次对话
// text.setText(0, "阿美:你终于醒了!");
text.setText(0, "辰:介不似蘋果李么!");
text.show();
break;
case 2:
// text.setText(0, "诺齐奥尼:这是什么地");
text.setText(0, "蘋果李:額。。你認識我?");
text.setText(1, "方?");
break;
case 3:
text.setText(0, "阿美:我的家啊!你已");
text.setText(1, "经昏睡了3天啦!");
break;
case 4:
text.setText(0, "诺齐奥尼:……");
break;
case 5:
text.setText(0, "阿美:你和你的朋友倒");
text.setText(1, "在海边,是我爸爸把你");
text.setText(2, "们救回来的。");
break;
case 6:
text.setText(0, "诺齐奥尼:露娜,露娜");
text.setText(1, "……她在哪?");
break;
case 7:
text.setText(0, "阿美:哦。是那个女孩");
text.setText(1, "吗?");
break;
case 8:
text.setText(0, "诺齐奥尼:嗯……");
break;
case 9:
text.setText(0, "阿美:她还在昏迷当中");
text.setText(1, "……");
break;
case 10:
text.setText(0, "诺奇奥尼:那我怎么才");
text.setText(1, "能救她啊……");
break;
case 11:
text.setText(0, "阿美:这个我也不知道");
text.setText(1, "……你去门口找我爸爸");
text.setText(2, "问问吧,他就在这附近");
break;
case 12:
text.setText(0, "卖装备呢!");
break;
case 13:
text.setText(0, "诺奇奥尼:嗯,好的…");
text.setText(1, "…");
text.setCanEnd(true); //第一对话结束!
process = 1;
break;
case 14: //========= 与阿美第二次对话
text.setText(0, "阿美:快去问问我爸爸");
text.setText(1, "吧,他就在外边附近。");
text.show();
text.setCanEnd(true); //此次对话结束
break;
case 15: //========= 与霍恩第一次对话
text.setText(0, "霍恩:小伙子你醒啦?");
text.show();
break;
case 16:
text.setText(0, "诺奇奥尼:谢谢您的救");
text.setText(1, "命之恩!我的朋友还没");
text.setText(2, "醒,能帮我救救他吗?");
break;
case 17:
text.setText(0, "霍恩:我已经尽力了,");
text.setText(1, "她中了一种很奇怪的毒");
text.setText(2, ",我从来没有见过……");
break;
case 18:
text.setText(0, "诺奇奥尼:那……那怎");
text.setText(1, "么办?");
break;
case 19:
text.setText(0, "霍恩:村子附近有个男");
text.setText(1, "孩叫胡尔,他性格很孤");
text.setText(2, "僻,但是精通医术,你");
break;
case 20:
text.setText(0, "试着去找他问问吧。");
break;
case 21:
text.setText(0, "诺奇奥尼:嗯…好的。");
break;
case 22:
text.setText(0, "霍恩:等一下……自从");
text.setText(1, "你们的岛被破坏后,村");
text.setText(2, "子附近有了许多奇怪的");
break;
case 23:
text.setText(0, "怪物,这是一把我精心");
text.setText(1, "打造的剑,你先拿去防");
text.setText(2, "身用。");
break;
case 24:
text.setText(0, "诺奇奥尼:嗯,谢谢,");
text.setText(1, "我会注意的。");
text.setCanEnd(true); //与霍恩第一次对话结束
process = 2;
break;
case 25: //========= 与霍恩第二次对话
text.setText(0, "霍恩:快去吧,救人要");
text.setText(1, "紧。");
text.show();
text.setCanEnd(true); //此次对话结束
break;
case 26: //========= 与阿美第三次对话
text.setText(0, "阿美:胡尔那人性格虽");
text.setText(1, "然孤僻,但是他内心里");
text.setText(2, "挺善良的。");
text.show();
text.setCanEnd(true); //此次对话结束
break;
case 27: //========= 与胡尔第一次对话
text.setText(0, "诺奇奥尼:请问你是胡");
text.setText(1, "尔吗?");
text.show();
break;
case 28:
text.setText(0, "胡尔:小子,问这个干");
text.setText(1, "嘛?想打架吗?");
break;
case 29:
text.setText(0, "诺奇奥尼:误会误会,");
text.setText(1, "我是请你帮我救人的…");
text.setText(2, "…");
break;
case 30:
text.setText(0, "胡尔:救人?天天都有");
text.setText(1, "人要我帮他们救人!我");
text.setText(2, "为什么要帮你?");
break;
case 31:
text.setText(0, "诺奇奥尼:求求你了,");
text.setText(1, "她对我非常重要!你想");
text.setText(2, "要什么我都能答应!");
break;
case 32:
text.setText(0, "胡尔:她?又是个痴情");
text.setText(1, "的人!好吧,看你那么");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -