📄 hero.java
字号:
import java.io.IOException;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;
public class Hero extends Sprite {
public String aname;
public Image imgplayer;
public int trait = 0;// 主角独有特性,轮回结局的重要判断依据,以及对话的控制走向;
public final String strAtr[] = new String[8];
public int atr[] = new int[8];// 总共8项主角属性;,最好改成两位数组,一个代表当前,一个代表最大之;为了方便把它引入给主角;
public int exp = 1000;// 经验值;還是得翻頁才行;
public int feng = 70;// 青梅竹马;
public int friendfeina = 10;// 王国公主友好度
// public int friendxiya = 10;// 神界公主友好度;扩展
// public int friendlisi = 10;// 魔界公主友好度;扩展用;
public int arm[] = new int[8];// 装备8件和武器;这里指正在装备的武器;;//
public int skill[] = new int[10];// 最多10种技能;
public int lev;// 最高200级;
public int item[] = new int[40];// 最多同时拥有40种物品,0到9代表物品,10到33代表3种套装,33到40代表8种任务物品;
// 每种包括五件装备和3樣:武器,法杖,一件組合套装;10到17,18到25,26到33;
// 前面是物品序列的编号,开始是10种物品,后面是24武器,还有15个留待扩充;数值代表该样物品的数量,为-1代表该种物品为零;;
public int frameup[] = { 3, 4, 5 };
public int framedown[] = { 0, 1, 2 };
public int frameright[] = { 6, 7, 8 };
public int frameleft[] = { 9, 10, 11 };
public int hdx, hdy;// 主角移动的坐标差;
public int zmap = 0;
public int hx = 230, hy = 80;// 主角在所在大地图上的坐标;
public int[] task = new int[15];// 15个主线任务;序号代表第几个任务,为-1的时候标记没有接到,为0时表示接到但没有完成,为1时表示已经完成;
public int gold = 1000;
public int diagState = -1;
public int maxHp = 0;
public int maxMp = 0;
public boolean load = false;
public boolean firstLoad = true;
public boolean secondLoad = false;
public Hero() throws IOException {
super(Image.createImage("/character/player.png"), 16, 32);
try {
imgplayer = Image.createImage("/character/player1.png");
} catch (IOException e) {
e.printStackTrace();
}
aname = "希洛";
lev = 1;
atr[2] = 12;//
atr[3] = 35;//
atr[4] = 15;
atr[5] = 61;
strAtr[0] = "生命 ";
strAtr[1] = "魔力 ";
strAtr[2] = "力量 ";
strAtr[3] = "智力 ";
strAtr[4] = "体质 ";
strAtr[5] = "魅力 ";
strAtr[6] = "攻击 ";
strAtr[7] = "防御 ";
hdx = 3;
hdy = 3;
for (int i = 0; i < arm.length; i++)
// 0代表头,1代表
arm[i] = -1;
arm[5] = 15;// 初始白银剑和白银杖;
arm[6] = 16;
for (int i = 0; i < item.length; i++)
item[i] = 0;
item[0] = 10;
item[1] = 5;
item[15] = 1;
item[16] = 1;
for (int i = 0; i < skill.length; i++) {
skill[i] = 0;
}
skill[0] = 1;
skill[1] = 1;
atr[0] = atr[2] * atr[4] * 2;// 最大生命等于体质乘以力量;;
atr[1] = atr[3] * atr[4] / 5;// 魔力;最大魔力等于体质乘以智力;身体越强容纳的魔力越多;
atr[6] = atr[2] * 1 + atr[3] * 2 + 16 + 20; // 初始攻击力防御力计算公式;以后还要计算上其他的装备;
atr[7] = atr[4] * 2;
this.maxHp = atr[0];
this.maxMp = atr[1];
for (int i = 0; i < task.length; i++)
task[i] = -1;
}
/**
* @return 返回是否套装;
*/
public int judgeSuit() {
if (arm[0] == 10) {// 在第一件是白银之首的前提下,如果后面有不是白银装备的那么就不是套装
for (int i = 1; i < arm.length - 1; i++)
if (arm[i] != arm[0] + i)
return -1;
return 17;
}
if (arm[0] == 18) {
for (int i = 0; i < arm.length - 1; i++)
if (arm[i + 1] != arm[i] + 1)
return -1;
return 25;
}
if (arm[0] == 25) {
for (int i = 0; i < arm.length - 1; i++)
if (arm[i + 1] != arm[i] + 1)
return -1;
return 33;
}
return -1;
}
// }
// { "白银之首:防御加3", "白银之手:防御加2",
// "白银之胸:防御加5", "白银之腿:防御加4",
// "白银之脚:防御+2", "白银之剑:攻击+20",
// "白银之杖:攻击+16,提升魅力", "白银装甲:防御额外+10,各属性上升两点",
// "黄金之首:防御加6",
// "黄金之手:防御加5", "黄金之胸:防御加10", "黄金之腿:防御加8",
// "黄金之脚:防御加5", "黄金之剑:攻击+40",
// "黄金之杖:攻击加32,提升魅力", "黄金战衣:防御额外+30,各属性上升五点",
// "战神之首:防御加20",
// "战神之手:防御加20", "战神之胸:防御加100",
// "战神之腿:防御加30", "战神之脚:防御加20",
// "战神之剑:攻击加150",
// "天使权杖:攻击加120,圣天使召唤必备",
// "战神武装:防御额外+100,各属性上升二十点,对恶魔伤害增加百分之百"
// }
void judgeMaxhpMp() {
maxHp = atr[2] * atr[4] * 2;// 最大生命等于体质乘以力量;;
maxMp = atr[3] * atr[4] / 5;//
}
void judgeSkill() {
if (lev > 5)
skill[2] = 1;
if (lev > 10)
skill[3] = 1;
if (lev > 15)
skill[4] = 1;
if (lev > 20)
skill[5] = 1;
if (lev > 30)
skill[6] = 1;
if (lev > 40)
skill[7] = 1;
}
void judgeAd() {
atr[6] = atr[2] * 1 + atr[3] * 2; // 初始攻击力防御力计算公式;以后还要计算上其他的装备;
atr[7] = atr[4] * 2;
switch (arm[0]) {
case -1:
break;
case 10:
atr[7] += 3;
break;
case 18:
atr[7] += 6;
break;
case 26:
atr[7] += 20;
break;
}
switch (arm[1]) {
case -1:
break;
case 11:
atr[7] += 2;
break;
case 19:
atr[7] += 5;
break;
case 27:
atr[7] += 20;
break;
}
switch (arm[2]) {
case -1:
break;
case 12:
atr[7] += 5;
break;
case 20:
atr[7] += 10;
break;
case 28:
atr[7] += 100;
break;
}
switch (arm[3]) {
case -1:
break;
case 13:
atr[7] += 4;
break;
case 21:
atr[7] += 8;
break;
case 29:
atr[7] += 30;
break;
}
switch (arm[4]) {
case -1:
break;
case 14:
atr[7] += 2;
break;
case 22:
atr[7] += 5;
break;
case 30:
atr[7] += 20;
break;
}
switch (arm[5]) {
case -1:
break;
case 15:
atr[6] += 20;
break;
case 23:
atr[6] += 40;
break;
case 31:
atr[6] += 150;
break;
}
switch (arm[6]) {
case -1:
break;
case 16:
atr[6] += 16;
break;
case 24:
atr[6] += 32;
break;
case 32:
atr[6] += 120;
break;
}
switch (arm[7]) {
case -1:
break;
case 17:
atr[7] += 10;
break;
case 25:
atr[7] += 30;
break;
case 33:
atr[7] += 100;
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -