📄 gamecanvas.java
字号:
(GameCanvas.SKILL_INFO[lv / 5] >> 4 & 0x3ff) +
(GameCanvas.SKILL_INFO[lv / 5] & 0xf)))).concat(
"learned!"), 1, 1);
pause(1000);
}
}
GameCanvas.gold += goldGained;
clearActionWindow();
drawStringInActionWindow(String.valueOf(String.valueOf(goldGained)).
concat("G gained!"), 1, 1);
goldGained = 0;
pause(1000);
for (int i = 0; i < numItemGained && GameCanvas.haveItemNb < 39;
i++) {
GameCanvas.haveItem[GameCanvas.haveItemNb] = itemGained[i];
clearActionWindow();
drawStringInActionWindow(String.valueOf(String.valueOf("WeapnArmorShielRing Sell OutHeal YNo ATKDEFH PM PHlpItmStSaveToTop A1 A2 A3 A4 A5 A6 A7 A8 S1 S2 S3 A4 A5 A6 A7 A8 R1 R2 R3 R4 R5 R7 R8 R9 SmallsMedmSupersSmallsMedmSupersSmallsMedmSupersS1S2S3S4 S5 S6 S7 S8 S9 K1K2 K3 K4 K5 K6 K7 K8 K9 K10 .".
substring(GameCanvas.ITEMS[itemGained[i] / 10][itemGained[i] %
10][0] >> 7 & 0xfff,
(GameCanvas.ITEMS[itemGained[i] /
10][itemGained[i] % 10][0] >> 7 & 0xfff) +
(GameCanvas.ITEMS[itemGained[i] /
10][itemGained[i] % 10][0] >> 0 & 0x7f)))).
concat(" gained!"), 1, 1);
GameCanvas.haveItemNb++;
pause(1000);
}
numItemGained = 0;
if ( ( -monsters[beingAttacked] - 3) % 6 == 0 &&
GameCanvas.nowDungeonFloor ==
GameCanvas.MON_BATTLE[GameCanvas.nbOfDungeon].length - 1) {
player.setClip("boss_killed.mmf");
clearScreen();
int screenRefX = 0;
int screenRefY = 19;
int screenWidth = 120;
int screenHeight = 60;
int monster = -monsters[beingAttacked];
int monsterWidth = GameCanvas.monsterImg[monster / 3].getWidth();
int monsterHeight = GameCanvas.monsterImg[monster /
3].getHeight();
int monsterX = screenRefX + (screenWidth - monsterWidth) / 2;
int monsterY = (screenRefY + screenHeight) -
GameCanvas.monsterImg[monster / 3].getHeight() - 10;
GameCanvas.drawFillRect(screenRefX, screenRefY, screenWidth - 1,
screenHeight, 0);
for (int i = screenRefX; i <= (screenRefX + screenWidth) - 26;
i += 6) {
int charHeight = 21;
GameCanvas.drawImage(monsterX, monsterY,
GameCanvas.monsterImg[monster / 3]);
drawCharacImage(i,
(screenRefY + screenHeight) - charHeight - 10,
3, 0);
GameCanvas.drawFillRect(i - 6,
(screenRefY + screenHeight) - charHeight -
10, 6, charHeight, 0);
repaintIt();
pause(70);
}
pause(1000);
drawAttackAnimation(monsterX, monsterY, monsterWidth,
monsterHeight, true);
GameCanvas.drawFillRect(monsterX - 7, monsterY - 7,
monsterWidth + 14, monsterHeight + 14,
0);
drawRoundBox(0, screenRefY + screenHeight + 1, screenWidth, 36,
0xffffff);
String hisWords;
switch ( (monster - 3) / 6) {
case 0: // '\0'
hisWords = "\uCFE0\uC5D0\uC5D1~~~~";
break;
case 1: // '\001'
hisWords = "\uC73C\uC545! \uB450\uACE0\uBCF4\uC790!";
break;
case 2: // '\002'
hisWords = "\uCF01! \uB098 \uC0C8\uB410\uC5B4.";
break;
case 3: // '\003'
default:
hisWords = "\uC774\uAC8C \uB05D\uC774 \uC544\uB2C8\uB2E4";
GameCanvas.drawString(
"\uC5D0\uD53C\uC18C\uB4DC2\uC5D0\uC11C \uBCF4\uC790.",
6, screenRefY + screenHeight + 21);
break;
}
GameCanvas.drawString(hisWords, 6,
screenRefY + screenHeight + 7);
pause(5000);
GameCanvas.stateInBattle = 0;
dungeonCleared( ( -monsters[beingAttacked] - 3) / 6);
} else {
GameCanvas.stateInGame = 20;
GameCanvas.stateInBattle = 0;
makeDungeon();
}
GameCanvas.inMenu = false;
} else
if (GameCanvas.stateInBattle == 4 &&
(GameCanvas.SKILL_INFO[GameCanvas.menuPagePos *
GameCanvas.maxMenuNb + GameCanvas.menuCursorPos] >> 30 & 1) ==
1 && beingAttacked < 2 && monsters[beingAttacked + 1] >= 0) {
beingAttacked++;
} else {
clearActionWindow();
GameCanvas.stateInBattle = 6;
}
GameCanvas.keyEnabled = true;
} else
if (GameCanvas.stateInBattle == 6) {
GameCanvas.keyEnabled = false;
for (int i = 0; i < 3; i++) {
GameCanvas.offScreen2.drawImage(GameCanvas.offImage, 0, 0, 0);
if (monsters[i] < 0) {
continue;
}
int checkY = 0;
int interval = 80;
for (int j = 0; j < 2; j++) {
GameCanvas.offScreen.setClip(MONSTER_POS[i][0] - 2 - 1,
MONSTER_POS[i][1], 36, 32);
GameCanvas.drawImage( -1, 0, GameCanvas.offImage2);
repaintIt();
pause(interval);
GameCanvas.offScreen.setClip( (MONSTER_POS[i][0] - 2) + 1,
MONSTER_POS[i][1], 36, 32);
GameCanvas.drawImage(1, 0, GameCanvas.offImage2);
GameCanvas.offScreen.setClip(0, 0, 120, 143);
repaintIt();
pause(interval);
}
pause(interval);
GameCanvas.drawImage(0, -1, GameCanvas.offImage2);
GameCanvas.drawFillRect(0, (getHeight() + 16) - 1, 128, 1,
0xffffff);
repaintIt();
pause(interval);
GameCanvas.drawImage(0, 0, GameCanvas.offImage2);
repaintIt();
pause(interval);
player.setClip("beaten.mmf");
for (int k = 0;
k < (GameCanvas.MONSTER_INFO[monsters[i]][0] >> 17 & 0x3f);
k++) {
checkY += Math.abs(GameCanvas.ran.nextInt() % 2) + 1;
}
checkY = Math.max(0, checkY - GameCanvas.attribute[1]);
hp -= checkY;
clearActionWindow();
drawStringInActionWindow(String.valueOf(String.valueOf( (new
StringBuffer("HP damage ")).append(checkY).append(""))), 1, 1);
drawStatusWin();
pause(1000);
if (hp > 0) {
continue;
}
GameCanvas.stateInGame = 10;
break;
}
GameCanvas.stateInBattle = 0;
GameCanvas.keyEnabled = true;
if (GameCanvas.stateInGame != 10) {
drawActionWindow();
drawCursorInActionWindow();
} else {
clearActionWindow();
drawStringInActionWindow("(T.T) Ooops!", 1, 1);
pause(1000);
GameCanvas.nowVillageNb = 1;
hp = 1;
GameCanvas.inMenu = false;
GameCanvas.characXPos = 3;
GameCanvas.characYPos = 110;
drawStreet();
}
}
} else {
pause(200);
}
} while (true);
}
volatile boolean alive;
volatile int mul;
volatile int nowCloudPos;
volatile int moveCount;
public GeneralThread() {
alive = true;
mul = 1;
nowCloudPos = 210;
moveCount = 0;
}
}
public GameCanvas() {
state = 0;
lv = 1;
hp = attribute[2];
mp = attribute[3];
exp = 0L;
curPosInActWindow = new int[2][2];
monstersHP = new int[3];
goldGained = 0;
expGained = 0;
numItemGained = 0;
itemGained = new int[3];
phone_number = "0000005279";
player = new SoundPlayer();
ran = new Random();
if (offImage == null) {
offImage = Image.createImage(120, 143);
offScreen = offImage.getGraphics();
offImage2 = Image.createImage(120, 143);
offScreen2 = offImage2.getGraphics();
font = offScreen.getFont();
}
try {
brick1 = Image.createImage("/brick1.png");
roof1 = Image.createImage("/roof1.png");
loftwin = Image.createImage("/loftwin.png");
chimney = Image.createImage("/chimney.png");
entrance1 = Image.createImage("/entrance1.png");
doorpillar1 = Image.createImage("/doorpillar1.png");
pillar = Image.createImage("/pillar.png");
window = Image.createImage("/window.png");
iconsImg = Image.createImage("/icons.png");
dungate = Image.createImage("/dungate.png");
dunbrick1 = Image.createImage("/dunbrick1.png");
dunbrick2 = Image.createImage("/dunbrick2.png");
tree1 = Image.createImage("/tree1.png");
tree2 = Image.createImage("/tree2.png");
cloud = Image.createImage("/cloud.png");
effectImg = Image.createImage("/effect.png");
characImg = Image.createImage("/charac.png");
monsterImg[0] = Image.createImage("/mon0.png");
monsterImg[1] = Image.createImage("/mon1.png");
monsterImg[2] = Image.createImage("/mon2.png");
monsterImg[3] = Image.createImage("/mon3.png");
monsterImg[4] = Image.createImage("/mon4.png");
monsterImg[5] = Image.createImage("/mon5.png");
monsterImg[6] = Image.createImage("/mon6.png");
monsterImg[7] = Image.createImage("/mon7.png");
hpmpImg = Image.createImage("/hpmp.png");
logo = Image.createImage("/logo.png");
title = Image.createImage("/title.png");
star = Image.createImage("/star.png");
moon = Image.createImage("/moon.png");
wings = Image.createImage("/wings.png");
antenna = Image.createImage("/antenna.png");
pointerImg = Image.createImage("/pointer.png");
gauge = Image.createImage("/gauge.png");
number = Image.createImage("/number.png");
} catch (Exception exception) {}
player.start();
s_click = player.loadSoundData("click.mmf");
s_cancel = player.loadSoundData("cancel.mmf");
s_move_cursor = player.loadSoundData("move_cursor.mmf");
LCD_WIDTH = getWidth();
LCD_HEIGHT = getHeight();
WIDTH = 120;
HEIGHT = 144;
correctionX = (LCD_WIDTH - WIDTH) / 2;
correctionY = (LCD_HEIGHT - HEIGHT) / 2;
}
public void showNotify() {
try {
logo = Image.createImage("/logo.png");
title = Image.createImage("/title.png");
clearScreen();
drawImage(8, 27, title);
drawLine(8, 116, 112, 116, 0);
drawLine(8, 118, 112, 118, 0);
drawImage(24, 114, logo);
title = logo = null;
} catch (Exception exception) {}
System.gc();
keyEnabled = false;
stateInGame = 4;
repaintIt();
generalThread = new GeneralThread();
generalThread.start();
}
public void paint(Graphics g) {
g.drawImage(offImage, correctionX, correctionY, 0);
}
public void repaintIt(int i, int j, int k, int l) {
repaint(correctionX + i, correctionY + j, k, l);
}
public void repaintIt() {
repaintIt(0, 0, WIDTH, HEIGHT);
}
public void drawCharacter(int direction) {
drawCharacImage(characXPos, characYPos, direction, 0);
}
public void drawCharacImage(int x, int y, int direction, int nb) {
int position = (direction * 2 + nb) * 19;
offScreen.setClip(x, y, 19, 21);
offScreen.drawImage(characImg, x - position, y, 0);
offScreen.setClip(0, 0, 120, 143);
}
private void drawString(int s, int x, int y) {
drawString("WeapnArmorShielRing Sell OutHeal YNo ATKDEFH PM PHlpItmStSaveToTop A1 A2 A3 A4 A5 A6 A7 A8 S1 S2 S3 A4 A5 A6 A7 A8 R1 R2 R3 R4 R5 R7 R8 R9 SmallsMedmSupersSmallsMedmSupersSmallsMedmSupersS1S2S3S4 S5 S6 S7 S8 S9 K1K2 K3 K4 K5 K6 K7 K8 K9 K10 .".
substring(s / 100, s / 100 + s % 100), x, y);
}
public void drawStringRight(String s, int rightX, int y) {
drawString(s, rightX - font.stringWidth(s), y);
}
public void setMenuInfo(int mode, int item[]) {
menuPagePos = 0;
menuCursorPrePos = menuCursorPos = 0;
itemName = item;
totalMenuNb = itemName.length;
switch (mode) {
case 0: // '\0'
menuStartX = 6;
menuStartY = 29;
menuOffset = 14;
maxMenuNb = 4;
menuWidth = 100;
break;
case 1: // '\001'
menuStartX = 6;
menuStartY = 29;
menuOffset = 14;
maxMenuNb = 4;
menuWidth = 110;
break;
case 50: // '2'
menuStartX = 7;
menuStartY = 45;
menuOffset = 15;
maxMenuNb = 5;
menuWidth = 60;
break;
case 140:
menuStartX = 4;
menuStartY = 4;
menuOffset = 16;
maxMenuNb = 5;
menuWidth = 86;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -