📄 gamecanvas.java
字号:
/** 港口任务头像图片y 8坐标 */
int headY = 8;
int x3 = 17;
int y3 = 60;
/** 选择跑商任务编号 */
int runShangSelect;
/** 各港口1~5级跑商任务对应目的地 */
int runShangAim[][] = new int[8][5];
/**
* 接受和取消跑商任务状态 0:接受任务成功 1:接受任务不成功(当前有跑商任务) 2:为取消跑商任务成功 3:为当前没有跑商任务,取消任务无效
*/
int rs;
/** 跑商信息详细提示拆分字符串数组 */
String runShangCueTemp[];
/** 随机进入战斗状态定时器 */
int actionTimer;
/** 是否随机战斗时间 */
boolean isRandom = true;
/** 记录随机时间 */
int actionNum;
/** 随机对象 */
Random random;
/** 对战过程中状态true为玩家控制状态 */
boolean playerAction = true;
/** 战斗画面背景x坐标 */
int actionCanvasX = -5;
/** 战斗画面背景 */
Image actionImage;
/** 玩家战斗画面船只图片 */
Image actionPlayerImage;
/** 战斗画面海盗船只图片 */
Image actionNpcImage;
/** 遭遇当前海盗等级 */
int npcLv = 1;
/** 当前海域序号 */
int seaIndex = 1;
/** 对战状态下绘制玩家选择攻击方式x,y坐标 */
int aX = 100;
int aY = 170;
/** 非玩家控制战斗进程0播放玩家攻击动画,1击中海盗播放动画,2海盗攻击动画,3播放击中玩家动画 */
int actionCourse = -1;
/** 攻击方式选择图片 */
Image actionFashion;
/** 是否绘制切入战斗画面盒装打开动画 */
boolean isStartAction = true;
/** 切入战斗画面剪切区域其实标签 */
int actionClipLable;
/** 玩家此次攻击是否出现爆击 */
boolean playerMax;
/** 炮弹图片 */
Image shotImage;
/** 玩家炮弹发射位置 */
int shotX1;
int shotY;
int shotY1;
/** 海盗船炮弹发射位置 */
int shotX2;
/** 海盗船此次攻击是否出现爆击 */
boolean npcMax;
/** 本轮攻击玩家失血量 */
int playerLoss;
/** 本轮攻击NPC失血量 */
int npcLoss;
/** 绘制失血y坐标 */
int lossY;
/** 判断抛物线上升或者下降 */
boolean b = true;
/** 记录逃跑是否成功 */
boolean flee;
/** 战斗结果标签-1战斗未结束,0战斗失败,1为战斗胜利 */
int actionResult = -1;
/** 爆炸图片 */
Image boomImage;
/** 爆炸图片绘制标签 */
int boomIndex;
/** 战斗胜利图片 */
Image actionWinImage;
/** 战斗失败界面图片 */
Image actionLostImage;
/** 主线任务对话 */
String mainDalog;
/** 主线任务进度 */
int mainDalogSum;
/** 主线任务对话长度的下标 */
int mainindex = 0;
/** 主线任务对话长度 */
int[] mainDalogLenth = { 5, 7, 9, 11, 12, 16, 17, 20, 21, 23, 100 };
/** 弹药的重量 */
int ammoWight[] = { 5, 10, 15, 20 };
/** 购买弹药需要的金钱 */
int ammoMoney[] = { 10, 30, 50, 80 };
/** 主线任务需要的声望值 */
int mainSound[] = { 0, 50, 200, 550, 1000, 2500, 3500, 10000000 };
int tempActionTimer;
boolean startTempActionTimer;
/** 完成任务发放宝物 */
boolean[] isSonny = new boolean[7];
/** 赌博的金钱 */
int GambingMoney[] = { 900, 600, 300 };
/** NPC点数 */
int aNumber;
/** 玩家点数 */
int pNumber;
/** 控制选择颜色 */
int color;
/** 是否显示文字 */
boolean showFont;
/** 是否进入NPC操作 */
boolean AI;
/** 是否NPC操作结束 */
boolean isWin;
/** 是否重新再来一次 */
boolean isAgain;
/** 是否显示 是 和 否 */
boolean isShow;
/** 隐藏地图是否可以进入 */
// 新增加的变量///////////////////////////////////////////////////////////////
/** 控制当前任务状态下隐藏地图是否开放1代表任务1中需开放的隐藏地图 */
boolean[] mapOpen = new boolean[6];
/** 关卡怪物显示图片 */
Image bossImage;
/** 移动象素控制 */
int dx, dy;
/** 暂存dx,dy */
int dx1, dy1;
/** 当前战斗对象是否是Boss */
boolean actionBoss;
/** 战斗中Boss图片 */
Image bossActionImage;
/** 进入港口提示文字 */
Image FontIn;
/** 离开港口提示文字 */
Image FontLift;
/** 游戏结束显示图片 */
Image gameOverImage;
/** 游戏结束图片y坐标(x坐标为屏幕宽度的一般) */
int gameOverY;
/** boss的x,y坐标 */
int bossPlace[][] = { { 125, 47 }, { 129, 169 }, { 67, 49 }, { 99, 24 },
{ 129, 161 } };
/** 玩家是否可以选择退出游戏 */
boolean canExit = false;
/** 边框图片 */
Image runs;
/** 商品图片 */
Image shangPin;
/** 交易界面图片 */
Image abc;
/** 购买选择框的Y坐标 */
int buyDown;
/** 购买选择框的X坐标 */
int buyRight;
/** 默认商品物价 */
int[][] buyMoney = { { 100, 120, 300, 80, 70 }, { 70, 220, 100, 180, 100 },
{ 100, 280, 130, 220, 80 }, { 80, 140, 160, 70, 90 },
{ 90, 210, 320, 380, 80 }, { 80, 110, 60, 180, 200 },
{ 200, 170, 800, 220, 170 }, { 360, 170, 230, 150, 220 } };
/** 商品编号 */
int[][] merchandise = { { 0, 1, 2, 3, 4 }, { 5, 6, 7, 8, 9 },
{ 10, 11, 12, 13, 14 }, { 15, 16, 17, 18, 19 },
{ 20, 21, 22, 23, 24, 25 }, { 25, 26, 27, 28, 29 },
{ 30, 31, 32, 33, 34 }, { 35, 36, 37, 38, 39 }
};
/** 购买物价水平 */
int[][] wujiashupin = { { 80, 80, 80, 80, 80 }, { 80, 80, 80, 80, 80 },
{ 80, 80, 80, 80, 80 }, { 80, 80, 80, 80, 80 },
{ 80, 80, 80, 80, 80 }, { 80, 80, 80, 80, 80 },
{ 80, 80, 80, 80, 80 }, { 80, 80, 80, 80, 80 } };
/** 卖出物价水平 */
int[][] sellMerchandise = { { 70, 130, 140, 150, 160, 170, 180, 190 },
{ 70, 130, 140, 150, 160, 170, 180, 190 },
{ 70, 130, 140, 150, 160, 170, 180, 190 },
{ 70, 130, 140, 150, 160, 170, 180, 190 },
{ 70, 70, 140, 150, 160, 170, 180, 190 },
{ 70, 70, 140, 150, 160, 170, 180, 190 },
{ 130, 70, 130, 140, 150, 160, 170, 180 },
{ 130, 70, 130, 140, 150, 160, 170, 180 },
{ 130, 70, 130, 140, 150, 160, 170, 180 },
{ 140, 70, 70, 140, 150, 160, 170, 180 },
{ 140, 70, 70, 140, 150, 160, 170, 180 },
{ 140, 130, 70, 130, 140, 150, 160, 170 },
{ 140, 130, 70, 130, 140, 150, 160, 170 },
{ 140, 130, 70, 130, 140, 150, 160, 170 },
{ 140, 130, 70, 70, 130, 140, 150, 160 },
{ 140, 130, 70, 70, 130, 140, 150, 160 },
{ 140, 130, 120, 70, 130, 140, 150, 160 },
{ 140, 130, 120, 70, 130, 140, 150, 160 },
{ 140, 130, 120, 70, 130, 140, 150, 160 },
{ 150, 140, 130, 70, 70, 130, 140, 150 },
{ 150, 140, 130, 70, 70, 130, 140, 150 },
{ 160, 150, 140, 130, 70, 130, 140, 150 },
{ 160, 150, 140, 130, 70, 130, 140, 150 },
{ 160, 150, 140, 130, 70, 130, 140, 150 },
{ 160, 150, 140, 130, 70, 70, 140, 150 },
{ 160, 150, 140, 130, 70, 70, 140, 150 },
{ 170, 160, 150, 140, 130, 70, 130, 140 },
{ 170, 160, 150, 140, 130, 70, 130, 140 },
{ 170, 160, 150, 140, 130, 70, 130, 140 },
{ 170, 160, 150, 140, 130, 70, 70, 130 },
{ 170, 160, 150, 140, 130, 70, 70, 130 },
{ 180, 170, 160, 150, 140, 130, 70, 130 },
{ 180, 170, 160, 150, 140, 130, 70, 130 },
{ 180, 170, 160, 150, 140, 130, 70, 130 },
{ 180, 170, 160, 150, 140, 130, 70, 70 },
{ 180, 170, 160, 150, 140, 130, 70, 70 },
{ 190, 180, 170, 160, 150, 140, 130, 120 },
{ 190, 180, 170, 160, 150, 140, 130, 120 },
{ 190, 180, 170, 160, 150, 140, 130, 120 },
{ 190, 180, 170, 160, 150, 140, 130, 120 },
};
/** 默认卖出物价水平 */
final int sell[][] = { { 70, 130, 140, 150, 160, 170, 180, 190 },
{ 70, 130, 140, 150, 160, 170, 180, 190 },
{ 70, 130, 140, 150, 160, 170, 180, 190 },
{ 70, 130, 140, 150, 160, 170, 180, 190 },
{ 70, 70, 140, 150, 160, 170, 180, 190 },
{ 70, 70, 140, 150, 160, 170, 180, 190 },
{ 130, 70, 130, 140, 150, 160, 170, 180 },
{ 130, 70, 130, 140, 150, 160, 170, 180 },
{ 130, 70, 130, 140, 150, 160, 170, 180 },
{ 140, 70, 70, 140, 150, 160, 170, 180 },
{ 140, 70, 70, 140, 150, 160, 170, 180 },
{ 140, 130, 70, 130, 140, 150, 160, 170 },
{ 140, 130, 70, 130, 140, 150, 160, 170 },
{ 140, 130, 70, 130, 140, 150, 160, 170 },
{ 140, 130, 70, 70, 130, 140, 150, 160 },
{ 140, 130, 70, 70, 130, 140, 150, 160 },
{ 140, 130, 120, 70, 130, 140, 150, 160 },
{ 140, 130, 120, 70, 130, 140, 150, 160 },
{ 140, 130, 120, 70, 130, 140, 150, 160 },
{ 150, 140, 130, 70, 70, 130, 140, 150 },
{ 150, 140, 130, 70, 70, 130, 140, 150 },
{ 160, 150, 140, 130, 70, 130, 140, 150 },
{ 160, 150, 140, 130, 70, 130, 140, 150 },
{ 160, 150, 140, 130, 70, 130, 140, 150 },
{ 160, 150, 140, 130, 70, 70, 140, 150 },
{ 160, 150, 140, 130, 70, 70, 140, 150 },
{ 170, 160, 150, 140, 130, 70, 130, 140 },
{ 170, 160, 150, 140, 130, 70, 130, 140 },
{ 170, 160, 150, 140, 130, 70, 130, 140 },
{ 170, 160, 150, 140, 130, 70, 70, 130 },
{ 170, 160, 150, 140, 130, 70, 70, 130 },
{ 180, 170, 160, 150, 140, 130, 70, 130 },
{ 180, 170, 160, 150, 140, 130, 70, 130 },
{ 180, 170, 160, 150, 140, 130, 70, 130 },
{ 180, 170, 160, 150, 140, 130, 70, 70 },
{ 180, 170, 160, 150, 140, 130, 70, 70 },
{ 190, 180, 170, 160, 150, 140, 130, 120 },
{ 190, 180, 170, 160, 150, 140, 130, 120 },
{ 190, 180, 170, 160, 150, 140, 130, 120 },
{ 190, 180, 170, 160, 150, 140, 130, 120 },
};
/** 默认商品买进水平 */
final int buysmz[][] = { { 80, 80, 80, 80, 80 }, { 80, 80, 80, 80, 80 },
{ 80, 80, 80, 80, 80 }, { 80, 80, 80, 80, 80 },
{ 80, 80, 80, 80, 80 }, { 80, 80, 80, 80, 80 },
{ 80, 80, 80, 80, 80 }, { 80, 80, 80, 80, 80 } };
/** 船舱物品 */
int[] deport = { 100, 100, 100, 100, 100 };
/** 分钟 */
int minute = 0;
/** 日期 */
int date = 1;
/** 月 */
int month = 1;
/** 支出费用 */
int payout;
/** 收入利润 */
int earning;
/** 界面2需要使用的文字信息 */
String[] scene2Str = { "港口: ", "交易中心", "赌 博", "修 理", "跑 商", "改造船体",
"月", "日" };
/** 界面4需要使用的文字信息 */
String scene4Str[] = { "任务 Lv1", "任务 Lv2", "任务 Lv3", "任务 Lv4", "任务 Lv5",
"取消任务", "返回港口" };
/** 界面12需要使用的文字信息 */
String scene7Str = "是否保存";
/** 界面10需使用文字信息 */
String scene10Str = "修理费用:";
/** 界面12需使用的文字信息 */
String[] scene12Str = { "修理成功", "您的金币不足,无法修理" };
/** 界面8需使用的文字信息 */
String[] scene8Str = { "跑商任务:", "跑商任务:无", "主线任务:", "主线任务:无" };
/** 界面13需使用的文字信息 */
String[] scene13Str = { "先把原有任务做完再来吧", "取消任务成功", "扣除金钱:200 扣除声望:5",
"当前没有任务" };
/** 界面14需使用的文字信息 */
String[] scene14Str = { "此次跑商任务顺利完成", "奖励金钱: ", "奖励声望: " };
/** 界面15需使用的文字信息 */
String scene15Str = "弹药不足!!";
/** 界面16需使用的文字信息 */
String[] scene16Str = { "逃跑成功!!", "按任意键返回航行界面", "逃跑失败!!", "按任意键继续对战" };
/** 界面18需使用的文字信息 */
String[] scene18Str = { "当前战况: 胜利", "对方等级: ", "我方等级: ", "当前装甲: ",
"获得金钱: ", "获得声望: ", "当前战况: 战败", "对方等级: ", "当前跑商任务失败",
"损失金钱: 200", "损失声望: 5" };
/** 界面19需使用的文字信息 */
String scene19Str = "需要金币 : ";
/** 界面20需使用的文字信息 */
String scene20Str = "当前无法进入此区域";
/** 界面21需使用的文字信息 */
String[] scene21Str = { "庄家:", "丹尼:", "金币" };
/** 界面24需使用的文字信息 */
String[] scene24Str = { "收入", "支出", "当前金币" };
/** 战斗界面需使用的文字信息 */
String[] actionStr = { "等级: ", "装甲: " };
public GameCanvas() {
// 设定游戏为正常状态(调试)
scene = -1;
// 获得屏幕宽度和高度
width = getWidth();
height = getHeight();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -