如果想满足题目需求,,公式不会太简单,,实际上,,最好的解决办法是:
1,以防御者为对象,取一个2级属性(或者说3级属性,随便你),该属性的值为通过攻击力换算的一个减伤衡量值,我们暂且简称为减伤,那么在减伤=Φ(防御)的公式中,只要满足一个递减曲线就可以了比如:减伤=(P1*防御)/(P2+防御),通过调整P1和P2的值,可以比较轻易的得到合适的曲线,实际上,要做的,仅仅上控制最终结果的取值范围,比如通过添加参数,完全可以做到使减伤最终取值范围在0~1之间
2,如果攻击与伤害同样有以上递减关系的话,也同样用此方法,楼主本题中没有要求,那就不用做额外的设定,或者可以
3,在攻击和防御发生的同时,取1中的减伤和2中的伤害直接采用最简单直接的计算,比如,对目标造成的伤害=攻击*(1-减伤)
这样,可以轻易满足楼主的题目要求,并且运算速度绝对可以,因为之前的复杂公式的运算过程,已经存储完毕,计算的时候,只需要调用,已经计算好的结果就可以了,只需要完成最后的一个小步骤,
但是这种结构同样有个缺点,就是一旦游戏中同时还存在影响角色"减伤"数值大小的BUFF或者类BUFF的效果,则会使问题变得复杂,当然,其实同样还是有解决办法的..... |