📄 gamecanvas.java
字号:
break;
case 2: // '\002'
drawEnglish(vill_storeString[5], start_x - 11, start_y + 39, vill_storeString[5].length, g);
drawNumber(item_value[j * 4 + 3], start_x + 42, start_y + 39, g, 1);
break;
case 3: // '\003'
drawEnglish(vill_storeString[6], start_x - 11, start_y + 39, vill_storeString[6].length, g);
drawNumber(item_value[j * 4 + 3], start_x + 42, start_y + 39, g, 1);
break;
}
drawStoreList(start_x - 48, start_y - 23, g);
}
void keyStoreList(int i)
{
int j = vill_cursor != 2 ? storeCursor + oriCursor : ((int) (storeList[storeCursor + oriCursor]));
int k = vill_cursor != 2 ? item_names.length - 1 : storeList.length - 1;
switch(getGameAction(i))
{
case 1: // '\001'
if(oriCursor == 0)
{
if(storeCursor != 0)
storeCursor--;
} else
{
oriCursor--;
}
return;
case 6: // '\006'
if(storeCursor + oriCursor != k)
if(oriCursor == 4)
storeCursor++;
else
oriCursor++;
return;
case 8: // '\b'
if(vill_cursor == 2)
{
if(ZENY >= item_value[j * 4] && WEIGHT + item_value[j * 4 + 1] <= getMaxWeight())
{
item_have[j]++;
ZENY -= item_value[j * 4];
createWeight();
}
} else
if(item_have[j] > 0)
{
item_have[j]--;
int l = 0;
if(SKILLS[3] != -1)
l = ((item_value[j * 4] / 2) * getSkillValue(3, false)) / 100;
ZENY += item_value[j * 4] / 2 + l;
createWeight();
}
break;
}
if(i == 48)
{
oriCursor = 0;
storeCursor = 0;
setVillMenu();
}
initNowArm();
}
void initNowArm()
{
for(int i = 0; i < 2; i++)
if(nowArm[i] != 0 && item_have[nowArm[i]] <= 0)
nowArm[i] = 0;
}
void setBoxText(String s, int i, int j, int k, int l, int i1, int j1)
{
triggerText = new char[s.length()];
s.getChars(0, s.length(), triggerText, 0);
nextOffset = 0;
x = k;
y = l;
w = i1;
h = j1;
face = i;
step = j;
quest_buf = new char[(j1 - 4) / 10][(i1 - 10) / 6];
}
boolean isNextBox()
{
return nextOffset < triggerText.length;
}
/**
*
* 对话框
*
*/
void drawQuestBox(Graphics g)
{
int i = y + (h >> 1);
int j = h >> 1 >> step;
int k = i - j;
int l = j << 1;
g.setColor(255, 255, 255);
g.fillRect(x - 1, k - 1, w + 2, l + 2);
g.setColor(0, 0, 255);
g.fillRect(x, k, w, l);
if(face == 4)
drawImage(imgs[8], (start_x - 92) + (37 >> step), y - 33, face * 32, 0, 32, 32, g);
else
if(face != -1)
drawImage(imgs[8], (start_x + 60) - (37 >> step), y - 33, face * 32, 0, 32, 32, g);
if(step == 0)
{
for(int i1 = 0; i1 < quest_buf.length; i1++)
drawEnglish(quest_buf[i1], x + 5, y + 2 + i1 * 10, quest_buf[i1].length, g);
}
if(step != 0)
{
step--;
if(step == 0)
messageTime = System.currentTimeMillis();
}
}
void setQuestString()
{
boolean flag = false;
label0:
for(int i = 0; i < quest_buf.length; i++)
{
int j = 0;
do
{
if(j >= quest_buf[0].length)
continue label0;
if(nextOffset < triggerText.length)
{
char c = triggerText[nextOffset];
if(c == ';')
{
quest_buf[i][j] = '\n';
nextOffset++;
continue label0;
}
quest_buf[i][j] = c;
nextOffset++;
} else
{
quest_buf[i][j] = '\n';
continue label0;
}
j++;
} while(true);
}
}
void setQuestManager()
{
if(questIng > 2)
{
switch(questNo)
{
case 0: // '\0'
if(LEVEL >= 8)
{
questNo++;
questIng = 0;
}
break;
case 1: // '\001'
if(LEVEL >= 17)
{
questNo++;
questIng = 0;
}
break;
case 2: // '\002'
if(LEVEL >= 24)
{
questNo++;
questIng = 0;
}
break;
case 3: // '\003'
if(LEVEL >= 31)
{
questNo++;
questIng = 0;
}
break;
}
if(questIng != 0)
{
String s = "Alberta Town";
setBoxText(s, -1, 5, start_x - 55, start_y - 10, 110, 20);
setQuestString();
state_index = 0;
quest_Str = null;
return;
}
}
if(questIng == 0)
{
quest_Str = trigger[questNo];
setBoxText(quest_Str[0], questArray[5 + questNo] != 1 ? ((int) (questArray[questNo])) : 4, 5, start_x - 55, (start_y + 50) - 40, 110, 40);
setQuestString();
triggerNo = 0;
state_index = 0;
} else
if(questIng == 1)
{
boolean flag = false;
switch(questNo)
{
case 0: // '\0'
if(item_have[2] >= 30)
{
item_have[2] -= 30;
SKILLS[0] = 0;
flag = true;
}
break;
case 1: // '\001'
if(item_have[3] >= 30 && item_have[4] >= 20)
{
item_have[3] -= 30;
item_have[4] -= 20;
SKILLS[1] = 0;
flag = true;
}
break;
case 2: // '\002'
if(item_have[3] >= 10 && item_have[4] >= 20 && item_have[5] >= 30)
{
item_have[3] -= 10;
item_have[4] -= 20;
item_have[5] -= 30;
SKILLS[2] = 0;
flag = true;
}
break;
case 3: // '\003'
if(item_have[6] >= 30)
{
item_have[6] -= 30;
SKILLS[3] = 0;
flag = true;
}
break;
case 4: // '\004'
if(dragonTailNo >= 30)
flag = true;
break;
}
if(flag)
{
quest_Str = Solution[questNo];
setBoxText(quest_Str[0], questArray[questNo], 5, start_x - 55, (start_y + 50) - 40, 110, 40);
setQuestString();
triggerNo = 0;
questIng = 2;
state_index = 0;
} else
{
setBoxText(notSolution[questNo], questArray[questNo], 5, start_x - 55, (start_y + 50) - 40, 110, 40);
setQuestString();
triggerNo = 0;
state_index = 0;
questIng = 1;
}
}
}
void setNextString()
{
if(questIng == 1)
{
state_index = 1;
return;
}
boolean flag = false;
triggerNo++;
if(quest_Str == null)
{
state_index = 1;
setVillMenu();
return;
}
if(triggerNo < quest_Str.length)
{
byte byte0;
if(face == 4)
byte0 = questArray[questNo];
else
byte0 = 4;
if(questIng == 2 && triggerNo == quest_Str.length - 1)
setBoxText(quest_Str[triggerNo], -1, 5, start_x - 55, start_y - 8, 110, 16);
else
setBoxText(quest_Str[triggerNo], byte0, 5, start_x - 55, (start_y + 50) - 40, 110, 40);
setQuestString();
} else
{
questIng++;
state_index = 1;
if(questIng > 2 && questNo == 4)
{
setEnding();
return;
}
setVillMenu();
}
}
void questManager(Graphics g)
{
drawQuestBox(g);
}
void keyQuest(int i)
{
if(isNextBox())
setQuestString();
else
setNextString();
}
void setMap()
{
loading(1);
current_state = 3;
state_index = 0;
turn = 0;
if(questIng == 1)
{
setFieldMessageBox(questInfo[questNo], start_x - 50, start_y - 15, 100, 30, 5);
isInfoMode = true;
}
MAPX = 0;
MAPY = 1;
player_X = 1;
player_Y = 80;
plAniTurn = 0;
action = 0;
dir = 1;
initMon();
play(2);
}
/**
*
* 绘画天地/ :)
* @param g
*/
void drawField(Graphics g)
{
switch(state_index)
{
default:
break;
case 0: // '\0'
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
drawMap(g); //地图
drawMonster(g);//怪物
drawChar(g);//??
drawUI(g);//UI界面 生命==
drawEffect(g); //效果
break;
case 1: // '\001'
drawStatusMenu(g);
break;
case 2: // '\002'
if(isInfoMode)
{
g.setColor(0, 0, 0);
g.fillRect(0, 0, getWidth(), getHeight());
}
drawFieldMessageBox(g);
break;
}
}
void keyField(int i)
{
switch(state_index)
{
default:
break;
case 0: // '\0'
if(i == 48)
state_index = 1;
keyChar(i);
break;
case 1: // '\001'
keyStatusMenu(i);
break;
case 2: // '\002'
keyFieldMessageBox(i);
break;
}
}
void no_keyField(int i){
switch(state_index)
{
default:
break;
case 0:
no_keyChar(i);
break;
}
}
void drawMap(Graphics g)
{
int i = start_x - 64;
int j = start_y - 64;
int k = MAPY * 48 * 8 + MAPX * 8;
boolean flag = false;
for(int l = 0; l < 8; l++)
{
for(int j1 = 0; j1 < 8; j1++)
{
byte byte0 = maps[k + l + j1 * 48];
if(byte0 != 0)
drawImage(imgs[11], i + l * 16, j + j1 * 16, (byte0 - 1) * 16, 0, 16, 16, g);
}
}
k += 2304;
for(int i1 = 0; i1 < 8; i1++)
{
for(int k1 = 0; k1 < 8; k1++)
{
byte byte1 = maps[k + i1 + k1 * 48];
if(byte1 != 0)
drawImage(imgs[12], i + i1 * 16, j + k1 * 16, (byte1 - 1) * 16, 0, 16, 16, g);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -