我使用多種語言,并且在擴展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中使用,而數組部分讓我很沮喪。
Game Dev JS將對象存儲到數組
白衣非少年
2021-05-03 14:10:24