?? mycanvas.java~4~
字號:
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; //角色狀態(tài)
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) { //戰(zhàn)斗場景
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) { //戰(zhàn)斗菜單效果
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("大將常山趙云與河北名獎戰(zhàn)在", 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; //游戲狀態(tài):開始游戲
case GAME_CONTINUE:
break; //讀取存檔
case GAME_SET:
break; //設(shè)置音量
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("繼續(xù)游戲", 70, 180, g.LEFT | g.TOP);
break;
case 2:
g.drawString("游戲關(guān)于 ", 70, 180, g.LEFT | g.TOP);
break;
case 3:
g.drawString("游戲設(shè)置 ", 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 + -