圣者
精华
|
战斗力 鹅
|
回帖 0
注册时间 2005-8-12
|
本帖最后由 Tring 于 2023-7-30 02:05 编辑
1,当然会,凹点不就是这种意料之外的情况么。但是出于实现方便,这种意料之外的情况也是开发者能接受的,甚至反而可以称之为游戏性的部分。
2,一来是表格会占更多的存储空间,二来是转职或者其他有复杂非升级属性成长(比如属性药)的情况真处理不了。这和我上面说的分数情况是一样的。
为了更直观的理解,我直接举个带转职的属性计算的例子。表和分数是差不多的,所以直接用分数举例。
比如职业A的力量成长是0.7(纯粹100级时70点力量),职业B的力量成长是0.5(纯粹100级时50点力量)。
这时有玩家角色,他在1~30级时是职业B,而在30级之后转为了职业A。
这个玩家在从50级升到51级的时候,力量属性应该怎么计算?
对于使用浮点保存属性值的游戏来说,非常简单,完全不用考虑各种等级问题:
力量 += 0.7
对于使用随机数的整型属性值来说,也很简单,不需要考虑等级问题:
力量 += RNG(1, 10) > 3 ? 1 : 0
而对于使用分数的整型属性值来说,问题就复杂起来了,
因为力量属性中丢失了历史余数信息,没办法直接通过当前力量计算下一级力量,只能从头开始计算(//是整除符号,表示除法取整):
力量 := 30(在职业A下的总等级) * 5 // 10 + 21(在职业B下的总等级) * 7 // 10 + 0(属性药增加的额外力量)
想要实现这种计算,就必须记录一个角色在各个职业下经过过多少等级,各种额外来源的属性总值。
角色状态保存成本一下就上来了。
使用查表的方式也一样,因为必须知道从多少级开始才算该职业。如果无视这个直接粗暴查,甚至会出现比凹点更极端的全卡出最高属性成长的手法。
所以对于能转职的游戏来说,不使用浮点数的属性值,当等级数和属性上限差别不大时,最简单的实现几乎只有随机成长一个方式。
|
|