📄 gamecanvas.java
字号:
case 49: // '1'
nowMenu = menus[0];
menu_index = 1;
game_tip_progress = 0;
break;
case 50: // '2'
menu_index = 0;
game_tip_progress = 0;
current_state++;
load();
setVillageMode();
break;
case 51: // '3'
menu_index = 3;
nowMenu = menus[4];
break;
case 52: // '4'
menu_index = -1;
nowMenu = menus[1];
initOption();
break;
case 53: // '5'
nowMenu = menus[2];
menu_index = 5;
break;
case 54: // '6'
RagMerchant.midlet.notifyDestroyed();
break;
}
break;
case -1:
switch(i)
{
case 49: // '1'
isSound = !isSound;
break;
case 50: // '2'
isVibration = !isVibration;
break;
case 51: // '3'
nowMenu = menus[0];
menu_index = 0;
break;
}
initOption();
saveOption();
break;
case 1: // '\001'
switch(i)
{
case 49: // '1'
current_state++;
NewGame();
setVillageMode();
// fall through
case 50: // '2'
nowMenu = menus[0];
menu_index = 0;
game_tip_progress = 0;
break;
}
break;
case 2: // '\002'
menu_index = 0;
nowMenu = menus[0];
break;
case 3: // '\003'
if(i == 42)
{
if(game_tip_progress > 0)
{
game_tip_progress--;
nowMenu = menus[4 + game_tip_progress];
}
break;
}
if(i == 35)
{
if(game_tip_progress < 18)
{
game_tip_progress++;
nowMenu = menus[4 + game_tip_progress];
}
break;
}
if(i == 48)
{
menu_index = 0;
nowMenu = menus[0];
game_tip_progress = 0;
}
break;
case 5: // '\005'
nowMenu = menus[0];
menu_index = 0;
break;
case 6: // '\006'
RagMerchant.midlet.notifyDestroyed();
break;
}
}
void setVillageMode()
{
vill_isSub = 0;
vill_cursor = 0;
destroyMon();
loading(0);
state_index = 0;
current_state = 2;
setQuestManager();
}
void drawVillage(Graphics g)
{
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
switch(state_index)
{
case 0: // '\0'
questManager(g);
break;
case 1: // '\001'
drawVillMenu(g);
break;
}
}
void keyVillage(int i)
{
switch(state_index)
{
case 0: // '\0'
keyQuest(i);
break;
case 1: // '\001'
keyVillMenu(i);
break;
}
}
void setEnding()
{
current_state = 4;
endingY = 128;
ending_Mode = 0;
endingRGB = 0;
}
void drawEnding(Graphics g)
{
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
if(ending_Mode == 0)
{
endingY -= 2;
for(int i = 0; i < trigger[5].length; i++)
drawEnglish(trigger[5][i], start_x - 64, (start_y - 64) + endingY + i * 10, g);
if((start_x - 64) + endingY + trigger[5].length * 10 < 0)
ending_Mode = 1;
} else
{
if(endingRGB > 255)
g.setColor(255, 255, 255);
else
g.setColor(endingRGB, endingRGB, endingRGB);
g.drawString("Thank you", start_x, start_y, 17);
endingRGB += 10;
if(endingRGB > 400)
current_state = 1;
}
}
void setVillMenu()
{
vill_cursor = 0;
vill_isSub = 0;
}
//画游戏前功能选择
void drawVillCursor(Graphics g)
{
g.setColor(255, 255, 255);
g.fillRect(start_x - 55, getHeight() - 18, 110, 18);
g.setColor(0, 0, 255);
g.fillRect(start_x - 54, getHeight() - 17, 108, 16);
drawCursor(1, start_x - 53, getHeight() - 12, g);
drawCursor(0, (start_x + 53) - 6, getHeight() - 12, g);
drawEnglish(villMenus[vill_cursor], start_x - 45, getHeight() - 14, g);
}
void drawVillMenu(Graphics g)
{
switch(vill_isSub)
{
case 0: // '\0'
drawVillCursor(g);
break;
case 1: // '\001'
case 2: // '\002'
drawStoreBase(g);
drawQuit(g);
break;
case 3: // '\003'
drawKaplaMenu(g);
drawQuit(g);
break;
}
}
void drawQuit(Graphics g)
{
g.setColor(255, 255, 255);
g.fillRect(start_x - (quit.length() * 6) / 2 - 5, (start_y + 64) - 12, quit.length() * 6 + 10, 12);
g.setColor(0, 0, 255);
g.fillRect(start_x - (quit.length() * 6) / 2 - 4, (start_y + 64) - 11, quit.length() * 6 + 8, 10);
drawEnglish(quit, start_x - (quit.length() * 6) / 2, (start_y + 64) - 10, g);
}
void keyVillMenu(int i)
{
int j = getGameAction(i);
switch(vill_isSub)
{
default:
break;
case 0: // '\0'
switch(j)
{
default:
break;
case 2: // '\002'
vill_cursor--;
if(vill_cursor < 0)
vill_cursor = 3;
break ;
case 5: // '\005'
vill_cursor++;
if(vill_cursor > 3)
vill_cursor = 0;
break ;
case 8: // '\b'
if(vill_cursor == 0)
setMap();
vill_isSub = vill_cursor;
break;
}
break;
case 1: // '\001'
case 2: // '\002'
keyStoreList(i);
break;
case 3: // '\003'
keyKaplaMenu(i);
break;
}
}
/**
* 游戏中系统菜单
* @param g
*/
void drawKaplaMenu(Graphics g)
{
if(kaplaCursor == 5)
{
drawUserLoad(g);
return;
}
if(!isSound)
kaplaMenus[2] = "SOUND-OFF";
else
kaplaMenus[2] = "SOUND-ON";
if(!isVibration)
kaplaMenus[3] = "SPEED-SLOW";
else
kaplaMenus[3] = "SPEED-FAST";
System.gc();
g.setColor(255, 255, 255);
g.fillRect(start_x - 50, start_y - 30, 100, 60);
g.setColor(0, 0, 255);
g.fillRect(start_x - 49, start_y - 29, 98, 58);
for(int i = 0; i < kaplaMenus.length; i++)
drawEnglish(kaplaMenus[i], start_x - (kaplaMenus[i].length() * 6 >> 1), (start_y - 25) + i * 10, g);
drawCursor(0, start_x - (kaplaMenus[kaplaCursor].length() * 6 >> 1) - 7, (start_y - 25) + kaplaCursor * 10, g);
}
void keyKaplaMenu(int i)
{
if(kaplaCursor == 5)
switch(i)
{
case 49: // '1'
load();
setVillageMode();
setVillMenu();
break;
case 50: // '2'
vill_isSub = 0;
kaplaCursor = 0;
setVillMenu();
break;
}
switch(getGameAction(i))
{
case 1: // '\001'
if(kaplaCursor > 0)
kaplaCursor--;
break;
case 6: // '\006'
if(kaplaCursor < kaplaMenus.length - 1)
kaplaCursor++;
break;
case 8: // '\b'
switch(kaplaCursor)
{
default:
break;
case 0: // '\0'
save();
String s = "Game saved";
setBoxText(s, -1, 5, start_x - 55, start_y - 10, 110, 20);
setQuestString();
state_index = 0;
break;
case 1: // '\001'
kaplaCursor = 5;
break;
case 2: // '\002'
if(isSound)
{
isSound = false;
kaplaMenus[2] = "Sound off";
} else
{
isSound = true;
kaplaMenus[2] = "Sound on";
}
saveOption();
break;
case 3: // '\003'
isVibration = !isVibration;
saveOption();
break;
case 4: // '\004'
RagMerchant.midlet.notifyDestroyed();
break;
}
break;
}
if(i == 48)
{
vill_isSub = 0;
kaplaCursor = 0;
setVillMenu();
}
}
/**
* 储备列表
* @param i
* @param j
* @param g
*/
void drawStoreList(int i, int j, Graphics g)
{
int k = vill_cursor != 2 ? storeCursor + oriCursor : ((int) (storeList[storeCursor + oriCursor]));
if(vill_cursor == 2)
{
for(int l = storeCursor; l < (storeList.length - storeCursor >= 5 ? storeCursor + 5 : storeList.length - storeCursor); l++)
{
drawEnglish(item_names[storeList[l]], i, j + (l - storeCursor) * 10, g);
drawNumber(item_value[storeList[l] * 4], i + 97, j + (l - storeCursor) * 10, g, 1);
}
} else
{
for(int i1 = storeCursor; i1 < (item_names.length - storeCursor >= 5 ? storeCursor + 5 : storeList.length - storeCursor); i1++)
{
drawEnglish(item_names[i1], i, j + (i1 - storeCursor) * 10, g);
drawNumber(item_value[i1 * 4] >> 1, i + 97, j + (i1 - storeCursor) * 10, g, 1);
}
}
drawCursor(1, i + item_names[k].length() * 6 + 2, j + oriCursor * 10 + 2, g);
}
void drawStoreBase(Graphics g)
{
g.setColor(255, 255, 255);
g.fillRect(start_x - 51, start_y - 51, 102, 103);
g.setColor(0, 0, 255);
g.fillRect(start_x - 50, start_y - 50, 100, 101);
g.setColor(255, 255, 255);
g.drawLine(start_x - 50, start_y - 25, (start_x - 50) + 100, start_y - 25);
g.drawLine(start_x - 50, start_y + 27, (start_x - 50) + 100, start_y + 27);
for(int i = 0; i < 2; i++)
drawEnglish(vill_storeString[i], start_x - 48, (start_y - 50) + 3 + i * 10, vill_storeString[i].length, g);
drawNumber(ZENY, start_x + 42, (start_y - 50) + 3, g, 1);
drawImage(imgs[5], start_x + 42, (start_y - 50) + 3, 150, 0, 6, 9, g);
drawNumber(WEIGHT, (start_x - 48) + 60, (start_y - 50) + 13, g, 1);
drawNumber(getMaxWeight(), (start_x - 48) + 66, (start_y - 50) + 13, g, 0);
drawEnglish(vill_storeString[2], start_x - 48, start_y + 29, vill_storeString[2].length, g);
drawEnglish(vill_storeString[3], start_x - 48, start_y + 39, vill_storeString[3].length, g);
int j = 0;
if(vill_cursor == 1)
j = storeCursor + oriCursor;
else
j = storeList[storeCursor + oriCursor];
drawNumber(item_have[j], (start_x + 50) - 8, start_y + 29, g, 1);
switch(item_value[j * 4 + 2])
{
default:
break;
case 0: // '\0'
if(j == 0)
drawEnglish(vill_storeString[4], start_x - 11, start_y + 39, vill_storeString[4].length, g);
else
drawEnglish(vill_storeString[8], start_x - 11, start_y + 39, vill_storeString[4].length, g);
drawNumber(item_value[j * 4 + 3], start_x + 42, start_y + 39, g, 1);
break;
case 1: // '\001'
drawEnglish(vill_storeString[7], start_x - 11, start_y + 39, vill_storeString[7].length, g);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -