我正在制作一个口袋妖怪游戏,其中每个口袋妖怪都是一个对象,每个玩家,玩家和对手随机获得一个不同的口袋妖怪
var pokeArray = [fryno, snark, tucoret];
var playerPoke = rand(pokeArray);
var oppoPoke = rand(pokeArray);
rand
是我从数组中随机选取内容的函数
无论如何,问题是,当两者碰巧是相同的时候,我遇到了问题,
我们说两者最终都是fryno
playerPoke = fryno;
oppoPoke = fryno;
然后,当我对oppoPoke
造成伤害时,它实际上对fryno
造成了伤害,因此playerPoke
也会受到伤害,因为它也是fryno
< / p>
所以我想知道即使playerPoke
和oppoPoke
是fryno
,如果他们可以引用fryno
而不是fryno
的不同副本,是否可能本身
所以我对oppoPoke
而不是fryno
造成了伤害
如果有任何意义
答案 0 :(得分:1)
您应该创建对象的克隆。或者更好的是,实现一些东西。
function Pokemon(species) {
// look up species data
this.hp = speciesData[species].hp;
this.atk = speciesData[species].atk;
// and so on
}
然后:
var playerPoke = new Pokemon(rand(pokeArray));
在这种情况下,pokeArray
应该是一个物种名称数组,而不是一个对象数组。