Game Dev JS将对象存储到数组

我使用多种语言,并且在扩展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中使用,而数组部分让我很沮丧。


白衣非少年
浏览 157回答 2
2回答

守候你守候我

如果我理解正确,则您需要多个小怪。每个都有多个波浪。每个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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript