为了账号安全,请及时绑定邮箱和手机立即绑定

Game Dev JS将对象存储到数组

Game Dev JS将对象存储到数组

白衣非少年 2021-05-03 14:10:24
我使用多种语言,并且在扩展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


查看完整回答
反对 回复 2021-05-13
  • 2 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信