|
本帖最后由 lizhengxu 于 2014-12-21 21:51 编辑
昨天在 http://bbs.islga.org/read-htm-tid-2160807-page-1-fpage-1.html 看到了一个非常酷炫的血条系统。怪我自己手贱,研究了一晚。
先说结论:酷炫,但是这东西没有实用价值。
原理是通过一个自动播放的血条模型,控制顺逆序播放birth动作,并不断跟随目标单位。顺序播放则是填充血条长度, 逆序播放则是减少血条长度。先不说效率问题,原作者的代码写得非常复杂,其实完全没必要。核心部分主要就是用到了SetUnitTimeScale 一条函数进行血条增减。
为什么没有实用价值?
因为在地图读取新资源到内存中时,卡顿是不时存在的。相信所有作者都发现有时一个新单位进入地图会稍微卡顿一会。 注意,其实这只是为了等待内存所做的停帧,即画面虽然卡顿,后台cpu可是没有停的。
这就导致了在卡顿过程中,后台记录变量仍然在计算,但是血条模型的动画却被停帧了。后果就是血条的百分比和单位实际血量不符。
即使是在原图中那么小的地图下,也经常出现单位死了血条还没空的情况。 在移植到我的图里测试时,几乎有四分只一的单位存在这种情况。
此外,还存在一个问题,使用计时器模拟血条增减只精确到1%,容易出现空血不空,满血不满。
完全没用了吗?
如果你的地图 *不常新建单位 、破坏物等。 *不存在超高级技能、科技。 *不会因为泄漏及其他原因而卡顿 那么可以考虑用其做为吟唱读条。
不建议作为血条、怒气条等操作频繁的属性使用。
|
|