📄 gamecanvas.java
字号:
}
}
void setFieldMessageBox(String s, int i, int j, int k, int l, int i1)
{
setBoxText(s, -1, i1, i, j, k, l);
setQuestString();
if(state_index != 2)
nowMode = state_index;
state_index = 2;
}
void drawFieldMessageBox(Graphics g)
{
drawQuestBox(g);
}
void keyFieldMessageBox(int i)
{
if(step != 0)
return;
if(System.currentTimeMillis() - messageTime < 500L || messageTime == 0L)
return;
if(isNextBox())
{
setQuestString();
} else
{
messageTime = 0L;
state_index = nowMode;
isInfoMode = false;
}
}
void drawStatusMenu(Graphics g)
{
drawBase(g);
switch(nowMenus)
{
case 0: // '\0'
drawStatus(g);
break;
case 1: // '\001'
drawSkillStatus(g);
break;
case 2: // '\002'
drawEquip(g);
break;
case 3: // '\003'
drawItem(g);
break;
case 4: // '\004'
drawSystemMenu(g);
break;
}
}
//状况 状态
void keyStatusMenu(int i)
{
if(i == 48)
{
state_index = 0;
nowMenus = 0;
}
switch(getGameAction(i))
{
case 2: // '\002'
nowMenus--;
if(nowMenus < 0)
nowMenus = 4;
break;
case 5: // '\005'
nowMenus++;
if(nowMenus >= 5)
nowMenus = 0;
break;
default:
switch(nowMenus)
{
case 0: // '\0'
keyStatus(i);
break;
case 1: // '\001'
keySkill(i);
break;
case 2: // '\002'
keyEquip(i);
break;
case 3: // '\003'
keyItem(i);
break;
case 4: // '\004'
keySystemMenu(i);
break;
}
break;
}
}
void drawBase(Graphics g)
{
g.setColor(255, 255, 255);
g.fillRect(start_x - 61, start_y - 51, 122, 102);
g.setColor(0, 0, 255);
g.fillRect(start_x - 60, start_y - 50, 120, 100);
int i = start_y - 50;
int j = start_x - 60;
drawEnglish(statusMenu[nowMenus], (j + 60) - (statusMenu[nowMenus].length * 6 >> 1), i, statusMenu[nowMenus].length, g);
g.setColor(255, 255, 255);
g.drawLine(j, i + 10, j + 120, i + 10);
drawCursor(1, j + 1, i + 1, g);
drawCursor(0, j + 114, i + 1, g);
i += 10;
drawEnglish(baseText[0], j + 5, i + 2, baseText[0].length, g);
drawNumber(HP, j + 5 + 35, i + 2, g, 1);
drawNumber(getMaxHP(), j + 5 + 35 + 6, i + 2, g, 0);
i += 10;
drawEnglish(baseText[1], j + 5, i + 2, baseText[1].length, g);
drawNumber(SP, j + 5 + 35, i + 2, g, 1);
drawNumber(getMaxSP(), j + 5 + 35 + 6, i + 2, g, 0);
i += 10;
drawEnglish(baseText[5], j + 5, i + 2, baseText[5].length, g);
drawNumber(getCritical(), (j + 5 + 42) - 2, i + 2, g, 1);
i += 10;
i -= 30;
drawEnglish(baseText[2], j + 70, i + 2, baseText[2].length, g);
drawNumber(getAtk(), j + 118, i + 2, g, 1);
i += 10;
drawEnglish(baseText[3], j + 70, i + 2, baseText[3].length, g);
drawNumber(getDef(), j + 118, i + 2, g, 1);
i += 10;
drawEnglish(baseText[4], j + 70, i + 2, baseText[4].length, g);
drawNumber(getFlee(), (j + 70 + 42) - 2, i + 2, g, 1);
i += 10;
drawEnglish(baseText[6], j + 5, i + 2, baseText[6].length, g);
drawNumber(WEIGHT, j + 5 + 60, i + 2, g, 1);
drawNumber(getMaxWeight(), j + 5 + 60 + 6, i + 2, g, 0);
i += 10;
g.drawLine(j, i + 2, j + 120, i + 2);
drawQuit(g);
}
void drawStatus(Graphics g)
{
int i = start_y - 50;
int j = start_x - 60;
byte byte0 = 0;
for(int k = statusTop; k < statusTop + 3; k++)
{
drawEnglish(baseText[7 + k], j + 10, i + 55 + (k - statusTop) * 10, baseText[7 + k].length, g);
switch(k)
{
case 0: // '\0'
byte0 = STR;
break;
case 1: // '\001'
byte0 = VIT;
break;
case 2: // '\002'
byte0 = INT;
break;
case 3: // '\003'
byte0 = DEX;
break;
case 4: // '\004'
byte0 = LUK;
break;
case 5: // '\005'
byte0 = AGI;
break;
}
drawNumber(byte0, j + 10 + 24, i + 55 + (k - statusTop) * 10, g, 0);
}
drawEnglish(baseText[13], j + 80, i + 55, baseText[13].length, g);
drawNumber(STATUS_POINT, j + 80, i + 65, g, 0);
drawCursor(0, j + 2, i + 56 + statusCursor * 10, g);
g.drawLine(j, (i + 100) - 12, j + 120, (i + 100) - 12);
drawEnglish(helpStatus[statusTop + statusCursor], j + 5, (i + 100) - 11, g);
}
void keyStatus(int i)
{
switch(getGameAction(i))
{
default:
break;
case 8: // '\b'
if(STATUS_POINT <= 0)
return;
switch(statusTop + statusCursor)
{
case 0: // '\0'
STR++;
break;
case 1: // '\001'
VIT++;
break;
case 2: // '\002'
INT++;
break;
case 3: // '\003'
DEX++;
break;
case 4: // '\004'
LUK++;
break;
case 5: // '\005'
AGI++;
break;
}
STATUS_POINT--;
break;
case 1: // '\001'
if(statusCursor > 0)
{
statusCursor--;
break;
}
if(statusTop > 0)
{
statusTop--;
statusCursor = 0;
}
break;
case 6: // '\006'
if(statusCursor < 2)
{
statusCursor++;
break;
}
if(statusTop + statusCursor < 5)
{
statusTop++;
statusCursor = 2;
}
break;
}
}
/**
* 死亡状态
* @param g
*/
void drawSkillStatus(Graphics g)
{
int i = start_y - 50;
int j = start_x - 60;
boolean flag = false;
for(int k = skillTop; k < skillTop + 3; k++)
{
drawEnglish(skill_names[k * 2], j + 10, i + 55 + (k - skillTop) * 10, g);
drawNumber(SKILLS[k], j + 10 + skill_names[k * 2].length() * 6 + 3, i + 55 + (k - skillTop) * 10, g, 0);
}
drawEnglish(baseText[13], j + 80, i + 55, baseText[13].length, g);
drawNumber(SKILL_POINT, j + 80, i + 65, g, 0);
drawCursor(0, j + 2, i + 56 + skillCursor * 10, g);
g.drawLine(j, (i + 100) - 12, j + 120, (i + 100) - 12);
drawEnglish(skill_help, j + 5, (i + 100) - 11, g);
if(slots[0] != 0)
drawEnglish(skill_names[(slots[0] - 1) * 2], j + 5 + helpStatus.length * 6, (i + 100) - 11, g);
}
void keySkill(int i)
{
if(i == 42)
{
if(SKILLS[skillTop + skillCursor] == -1)
return;
if(skillTop + skillCursor == 0 || skillTop + skillCursor == 2)
slots[0] = (byte)(skillTop + skillCursor + 1);
return;
}
switch(getGameAction(i))
{
default:
break;
case 8: // '\b'
if(SKILLS[skillTop + skillCursor] == -1)
return;
if(SKILL_POINT <= 0)
return;
if(SKILLS[skillTop + skillCursor] == 10)
return;
SKILLS[skillTop + skillCursor]++;
SKILL_POINT--;
break;
case 1: // '\001'
if(skillCursor > 0)
{
skillCursor--;
break;
}
if(skillTop > 0)
{
skillTop--;
skillCursor = 0;
}
break;
case 6: // '\006'
if(skillCursor < 2)
{
skillCursor++;
break;
}
if(skillTop + skillCursor < 3)
{
skillTop++;
skillCursor = 2;
}
break;
}
}
/**
* 装备
* @param g
*/
void drawEquip(Graphics g)
{
int i = start_y - 50;
int j = start_x - 60;
boolean flag = false;
for(int k = equipTop; k < equipTop + 3; k++)
{
drawEnglish(item_names[7 + k], j + 15, i + 55 + (k - equipTop) * 10, g);
drawNumber(item_have[7 + k], (j + 120) - 5, i + 55 + (k - equipTop) * 10, g, 1);
if(nowArm[0] - 1 == k + 7)
{
drawImage(imgs[13], j + 1, (i + 55 + (k - equipTop) * 10) - 2, 28, 0, 14, 14, g);
continue;
}
if(nowArm[1] - 1 == k + 7)
drawImage(imgs[13], j + 1, (i + 55 + (k - equipTop) * 10) - 2, 14, 0, 14, 14, g);
}
drawCursor(0, j + 2, i + 56 + equipCursor * 10, g);
g.drawLine(j, (i + 100) - 12, j + 120, (i + 100) - 12);
if(equipTop + equipCursor < 3)
drawEnglish(vill_storeString[5], j + 5, (i + 100) - 11, vill_storeString[5].length, g);
else
drawEnglish(vill_storeString[6], j + 5, (i + 100) - 11, vill_storeString[6].length, g);
drawNumber(item_value[(equipCursor + equipTop + 7) * 4 + 3], j + 5 + vill_storeString[6].length * 6, (i + 100) - 11, g, 0);
}
/**
* 装备按键
* @param i
*/
void keyEquip(int i)
{
switch(getGameAction(i))
{
default:
break;
case 8: // '\b'
if(item_have[equipTop + equipCursor + 7] <= 0)
break;
if(equipTop + equipCursor < 3)
{
if(nowArm[0] != (byte)(equipTop + equipCursor + 7 + 1))
nowArm[0] = (byte)(equipTop + equipCursor + 7 + 1);
else
nowArm[0] = 0;
break;
}
if(nowArm[1] != (byte)(equipTop + equipCursor + 7 + 1))
nowArm[1] = (byte)(equipTop + equipCursor + 7 + 1);
else
nowArm[1] = 0;
break;
case 1: // '\001'
if(equipCursor > 0)
{
equipCursor--;
break;
}
if(equipTop > 0)
{
equipTop--;
equipCursor = 0;
}
break;
case 6: // '\006'
if(equipCursor < 2)
{
equipCursor++;
break;
}
if(equipTop + equipCursor < 5)
{
equipTop++;
equipCursor = 2;
}
break;
}
}
void drawItem(Graphics g)
{
int i = start_y - 50;
int j = start_x - 60;
boolean flag = false;
for(int k = itemTop; k < itemTop + 3; k++)
{
drawEnglish(item_names[k], j + 15, i + 55 + (k - itemTop) * 10, g);
drawNumber(item_have[k], (j + 120) - 5, i + 55 + (k - itemTop) * 10, g, 1);
}
drawCursor(0, j + 2, i + 56 + itemCursor * 10, g);
g.drawLine(j, (i + 100) - 12, j + 120, (i + 100) - 12);
if(itemTop + itemCursor < 2)
drawEnglish(itemStr[0], j + 5, (i + 100) - 11, g);
else
drawEnglish(itemStr[1], j + 5, (i + 100) - 11, g);
}
void keyItem(int i)
{
switch(getGameAction(i))
{
default:
break;
case 8: // '\b'
if(itemCursor + itemTop >= 2 || item_have[itemCursor + itemTop] <= 0)
break;
item_have[itemCursor + itemTop]--;
switch(itemCursor + itemTop)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -