我使用多种语言,并且在扩展JS(而非jquery)方面的经验。尽管这适用于我使用的许多工具,但我认为这将是一个简单的程序,但让我为数组/对象问题感到困惑。而且我可能会从错误的方向进行攻击。简而言之,这是一个简单的游戏(我正在学习JS中的对象和数组,并认为这将是一个很好的挑战)。由15个小怪组成,每个小怪攻击波数为10倍,每个波有多达5个不同的准则来赢得该波。波浪结束后,它将移至下一个生物,然后重复。使用其他语言甚至PHP,您可以执行类似于以下伪代码的操作:aMob = record { id: integer, name: string hp: integer etc....}mob[15]: aMob 现在我有15个aMob的阵列因此您可以使用mobCnt = 0并获取mob [mobCnt] .name我可以在JS中做到这一点。非常简单的数组,但这就是复杂的地方(对我而言)我观看并阅读了一些教程,并了解了对象。这似乎是正确的方法,但是我可以创建对象(样板?),但是然后我无法创建多维数组,每个生物都将与10个波关联,并且这些波中的每一个都有5个要满足的项。3D阵列?这低于sorta的作品。但是非常笨拙的编码。而且,当我单击“攻击”按钮时出现了问题,mobhp不会减少,因此我将该var设置为global。但是更改代码后,它只会变得越来越大。因此,这必须是垃圾。这是我得到的唯一代码,至少可以执行某些操作,但是我觉得对象/数组方法会更好。function setBattleRoundNFO(currMobCnt, currWaveCnt ) { switch(currMobCnt) { case 0: mobName = "Rodents"; // mob = 100; switch(currWaveCnt){ case 0: weaponId = 1; armorId = 0; powerMoveId = 3; break; // weapon, armor and powermove skill case 1: weaponId = 4; armorId = 5; powerMoveId = 6; break; } break; case 1: mobName = "Wolf Pack"; mobHp *= 1.15; switch(currWaveCnt){ case 0: weaponId = 7; armorId = 8; powerMoveId = 9; break; // weapon, armor and powermove skill case 1: weaponId = 10; armorId = 11; powerMoveId = 12; break; } break; }}理想情况下,我想发生的事情是显示(通过跟踪变量)显示mob[1].wave[1].hp,armor,weapon,level... etc..赢得这场战斗之后,再移至下一波mob[1].wave[2].hp,armor,weapon,level .. etc..我在pascal,qb64和php上试过了,效果很好,但是我想要在JS中使用,而数组部分让我很沮丧。
2 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
如果我理解正确,则您需要多个小怪。每个都有多个波浪。每个wave具有多个字符。每个字符都有属性。
听起来您想要混合使用数组和对象。
const mob = [
{ wave: [{ weapon: "foo", hp: 10 }, { weapon: "bar", hp: 20 }] },
{ wave: [{ weapon: "baz", hp: 30 }, { weapon: "quux", hp: 40 }] }
];
使用这种结构,您可以按上述方式访问数据:
mob[1].wave[1].hp // 40
或者
mob[0].wave[0].weapon // foo
添加回答
举报
0/150
提交
取消