亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號