gpt4 book ai didi

javascript - 在JS中编写大量数据和数据公式的方法

转载 作者:行者123 更新时间:2023-11-28 20:21:14 26 4
gpt4 key购买 nike

我正在开发一个迷你 html5 游戏,我偶然发现了一个有趣的问题,至少对我来说是这样。这就是编写咒语公式的方法。例如:

SpellOne = baseDmg + level*dmgPerLvl +ratio*someStat;

这只是一个公式,但我的观点是,显然如果我这样写,它将从一开始就计算伤害,而 SpellOne 将变成一个数字,而不再是一个公式。我只能想到两种方法,请帮助我,并给我任何建议。

SpellOne.baseDmg = 50;
SpellOne.dmgPerLvl = 30;
SpellOne.baseCd = 15; // cd = spell cooldown
SpellOne.CdPerLvl = 2; // cd decreases by 2 every level
SpellOne.baseCost = 50; // mana or whatever resource
SPellOne.CostPerLvl = 20; // increases by 20 each level

然后一旦玩家使用该咒语,它就会计算最新的更新:

SpellOneDamage = baseDmg + level*dmgPerLevel 

我的另一种方法是我最近想到的。我有大约 100 个英雄,每个英雄都有十几个统计数据,还有几个也有自己统计数据的法术。但是一次只会加载 1 或 2 个英雄,所以我是在浪费“资源”还是在 dom 树中添加了许多无用的变量?因为只有 1% 被使用?这让我想到了以下解决方案:

让每个英雄都有一个长函数,当一个人改变他们的英雄时,它会运行该函数,例如“currentHero”变量会承担英雄的所有统计数据,还有法术统计数据。因此,当这个人再次更改英雄时,真正发生的只是“currentHero”变量更改其值,因此您不必毫无意义地加载所有英雄统计数据?它仅在选择时加载英雄。非常感谢你们提出的任何建议,提前谢谢你们!

最佳答案

除非您每秒多次重新计算每个法术的伤害,否则为什么不将其设为一个函数并将其添加到 Angular 色的原型(prototype)中?

Character.prototype.getSpellDamage = function(name) {
var spell = Spells[name];

return spell.baseDamage
+ this.level * spell.damagePerLevel
+ spell.ratio * this[spell.someStat];
}

现在,您可以将咒语存储在一个简单的对象中:

var Spells = {
'foo bar': {
baseDamage: 40,
damagePerLevel: 20,
ratio: 0.5,
someStat: 'foo'
},
...
};

关于javascript - 在JS中编写大量数据和数据公式的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18281202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com