📄 mycanvas.java
字号:
this.AUTO1();
break;
case FIGHT_SKILL:
this.F_SKILL();
break;
case PLAY_FIGHT:
this.P_FIGHT();
break;
case GAME_MENU:
this.MENU();
break;
case GAME_START:
switch (key) {
case LEFT_KEY:
gameState = PLAY_MENU;
break;
case FIRE:
enter = true;
break;
}
break;
case PLAY_MENU:
switch (key) {
case RIGHT_KEY:
gameState = GAME_START;
break;
case KEY_NUM8:
case DOWN:
menuPoint++;
if (menuPoint == 4) {
menuPoint = 3;
}
break;
case KEY_NUM2:
case UP:
menuPoint--;
if (menuPoint == -1) {
menuPoint = 0;
}
break;
case FIRE:
switch (menuPoint) {
case 0:
gameState = PLAY_STATE;
break; //角色状态
case 1:
gameState = PLAY_EQUAL;
break; //武器装备
case 2:
gameState = PLAY_BAG;
break; //使用道具
case 3:
dr.saveFile();
gameState = GAME_START;
break; //保存游戏
}
break;
}
break;
}
}
protected void paint(Graphics g) {
//System.out.println("heroX==========="+hero.x);
// System.out.println("heroY=========="+hero.y);
Graphics tg = g;
g = gg;
//PAINT**********************************************************************
if (gameState == PLAY_FIGHT) { //戰斗場景
String hp, mp, maxHP, maxMP;
map.paintMap(g);
hp = "" + hero.hp + "/" + hero.maxHP;
mp = "" + hero.mp + "/" + hero.maxMP;
g.drawImage(img_emenyBattle, emeny_battleX, emeny_battleY,
g.TOP | g.LEFT);
tools.drawPartImage(g, image.hero1_fight, hero_battleX,
hero_battleY, hero_battlePoint * 40, 0, 40, 40);
g.drawImage(image.rect, 0, 135, 20);
tools.drawPartImage(g, image.hero1_fight, 5, 145, 0, 0, 40, 40);
g.drawImage(image.fight_menu, 140, 140, 20);
switch (battleMenuPoint) { //战斗菜单效果
case 0:
tools.drawPartImage(g, image.fight_menu1, 140, 140, 0, 0, 26,
15);
break;
case 1:
tools.drawPartImage(g, image.fight_menu1, 140, 155, 0, 15, 26,
15);
break;
case 2:
tools.drawPartImage(g, image.fight_menu1, 140, 170, 0, 30, 26,
15);
break;
case 3:
tools.drawPartImage(g, image.fight_menu1, 140, 185, 0, 45, 26,
15);
break;
}
if (heroFightState) { //英雄技能动画
switch (skillPoint) {
case 0:
hero.attack = 150;
tools.drawPartImage(g, image.effect45, 20, 60,
effectPoint * 38, 0, 38, 45);
break;
case 1:
hero.attack = 300;
tools.drawPartImage(g, image.effect46, 20, 60,
effectPoint * 49, 0, 49, 28);
break;
case 2:
hero.attack = 500;
tools.drawPartImage(g, image.effect47, 20, 60,
effectPoint * 50, 0, 50, 40);
break;
case 3:
hero.attack = 1000;
tools.drawPartImage(g, image.effect48, 20, 60,
effectPoint * 27, 0, 27, 50);
break;
}
}
if (emenyFightState) {
if (img_Eeffect == image.effect45) {
tools.drawPartImage(g, img_Eeffect, 100, 60,
effectPoint * 38, 0, 38, 45);
}
}
if (sufferNumState) {
tools.drawNumber(g, image.heroHP, heroHpVeriable, HeroVariableX,
HpVariableY, 10, 10);
tools.drawNumber(g, image.emenyHP, emenyHpVeriable,
EmenyVariableX, HpVariableY, 10, 10);
}
g.drawImage(image.fight_hpmp, 5, 180, 20);
g.drawString(hp, 13, 175, 20);
g.drawString(mp, 13, 185, 20);
}
if (gameState == FIGHT_SKILL) {
tools.drawPartImage(g, image.rect, 20, 20, 20, 10, 136, 48); //技能选项背景框
tools.drawPartImage(g, image.rect, 20, 68, 20, 10, 136, 48); //技能选项背景框
tools.drawPartImage(g, image.sign, 60, 30, 17 * 12, 0, 12, 12); //技能前面的装饰物
tools.drawPartImage(g, image.sign, 60, 50, 17 * 12, 0, 12, 12); //技能前面的装饰物
tools.drawPartImage(g, image.sign, 60, 70, 17 * 12, 0, 12, 12); //技能前面的装饰物
tools.drawPartImage(g, image.sign, 60, 90, 17 * 12, 0, 12, 12); //技能前面的装饰物
g.drawString("半月斩", 75, 27, 20);
g.drawString("赤炎斩", 75, 47, 20);
g.drawString("剑囵舞", 75, 67, 20);
g.drawString("青龙升", 75, 87, 20);
switch (skillPoint) {
case 0:
g.drawImage(image.point, 40, 30, 20);
break;
case 1:
g.drawImage(image.point, 40, 50, 20);
break;
case 2:
g.drawImage(image.point, 40, 70, 20);
break;
case 3:
g.drawImage(image.point, 40, 90, 20);
break;
}
}
if (gameState == GAME_LOGO) {
g.drawImage(image.logo1, 40, 40, g.LEFT | g.TOP);
} //LOGO自動播放
if (gameState == GAME_AUTORUN) {
g.setColor(0x0);
g.fillRect(0, 0, this.screenWidth, this.screenHeight);
g.setColor(0xffffff);
g.drawString("东汉末年,汉室衰微,群雄逐", logo1X, logo1Y, g.LEFT | g.TOP);
g.drawString("鹿中原,四世三公出身的袁绍", logo1X, logo1Y + 10, g.LEFT | g.TOP);
g.drawString("为扩大地图,与北平太守公孙", logo1X, logo1Y + 20, g.LEFT | g.TOP);
g.drawString("瓒展开一场厮杀,公孙瓒手下", logo1X, logo1Y + 30, g.LEFT | g.TOP);
g.drawString("大将常山赵云与河北名奖战在", logo1X, logo1Y + 40, g.LEFT | g.TOP);
g.drawString("一处。。。。。。。。。。。", logo1X, logo1Y + 50, g.LEFT | g.TOP);
} //LOGO1开头背景介绍
if (gameState == GAME_AUTORUN1) { //片头对话场景
map.paintMap(g);
map.paintMapShelter(g);
boss1.paint(g);
hero.paintHero(g);
boss1.npc_talk(g, this);
}
if (gameState == GAME_MENU) {
} //進入游戲主目錄
switch (gameState) {
case PLAY_STATE:
break;
case GAME_MENU:
paint_menu(g);
break;
case GAME_START:
map.paintMap(g);
hero.paintHero(g);
if (map.Data_Map_Shelter != null) {
map.paintMapShelter(g);
}
break; //游戲狀態:開始游戲
case GAME_CONTINUE:
break; //讀取存檔
case GAME_SET:
break; //設置音量
case GAME_HELP:
if (!helpPoint) {
g.drawImage(image.Help, 0, 0, 20);
} else {
g.drawImage(image.Help2, 0, 0, 20);
}
break; //幫助
case GAME_STOP:
break;
case PLAY_MENU:
tools.drawPartImage(g, image.rect, 40, 50, 5, 5, 88, 50);
tools.drawPartImage(g, image.rect, 40, 100, 5, 5, 88, 50);
g.drawString("角色属性", 60, 55, 20);
g.drawString("武器装备", 60, 75, 20);
g.drawString("使用道具", 60, 95, 20);
g.drawString("保存游戏", 60, 115, 20);
switch (menuPoint) {
case 0:
g.drawImage(image.point, 40, 55, 20);
break;
case 1:
g.drawImage(image.point, 40, 75, 20);
break;
case 2:
g.drawImage(image.point, 40, 95, 20);
break;
case 3:
g.drawImage(image.point, 40, 115, 20);
break;
}
break; //退出游戲
}
//PAINT END******************************************************************
g = tg;
g.drawImage(this.imgBuffer, 0, 0, 20);
}
/**
* 画菜单
* @param g Graphics
*/
public void paint_menu(Graphics g) {
g.drawImage(image.logoback, 0, 0, g.LEFT | g.TOP);
g.setColor(0xffffff);
switch (mainMenuPoint) {
case 0:
g.drawString("開始游戲", 70, 180, g.LEFT | g.TOP);
break;
case 1:
g.drawString("继续游戏", 70, 180, g.LEFT | g.TOP);
break;
case 2:
g.drawString("游戏关于 ", 70, 180, g.LEFT | g.TOP);
break;
case 3:
g.drawString("游戏设置 ", 70, 180, g.LEFT | g.TOP);
break;
case 4:
g.drawString("退出游戏 ", 70, 180, g.LEFT | g.TOP);
break;
}
}
protected void keyReleased(int keyCode) {
key = 0;
this.countKey = 0;
enter = false;
}
public void run() {
while (running) {
long start = System.currentTimeMillis();
try {
this.game_logic();
this.repaint();
this.serviceRepaints();
} catch (Exception e) {
e.printStackTrace();
}
;
long end = System.currentTimeMillis();
if ((70 - (end - start)) > 0) {
try {
thread.sleep(70 - (end - start));
} catch (InterruptedException ex) {
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -