创建于:2016-06-18
创建人: indienova
假设场景为第三人称3D游戏,你控制角色碰到一个盒子,盒子显示的是当碰到后,攻击力提升15%,持续30秒,这个功能需要如何实现,buff不只是一种,可能心血来潮搞了很多
可以抽象成一个计时器,添加该计时器的时候,修改某个属性,计时器结束的时候撤销修改。
不是的,一开始就要设计好计算公式,例:血量=基础血量*血量倍率buff效果类型总效果值+最大血量buff效果值,然后你的每次需要更新血量时,你根据取出你当前的buff效果值,通过公式计算出来,而当你的buff效果消失时,buff效果值也是没得了,也就不会计算出来了,这种请不要直接去更改属性,除非是比如持续回血这种
空形体 对啊,如果玩家卡了bug,“计时器结束”这个事件过去了但“撤销修改”没有顺利运作,buff就变成无法撤销无法追踪的永久的数值修改了。
空形体 当存在多个攻击力提升的相同的buff、应该如何做呢?攻击=基础攻击力+buff,buff=buff1+buff2
可以抽象成一个计时器,添加该计时器的时候,修改某个属性,计时器结束的时候撤销修改。