游戏优化(不定时更新)
之前负责做游戏优化,大大小小优化了不少,但没整理过,开个帖,想到的时候补充下。
我认为的游戏优化可能比较肤浅,什么是最优,花最少的时间空间获得答案。
逻辑层面:
减少多余的计算
多余又分为- 重复的必要计算 解决方法:对于常用的数据增加缓存
- 不必要计算 最常见的是for循环搜索一个数据,找到之后没及时退出循环
提早计算
某些计算比较花费时间且可以提前计算的,可以在游戏外就计算好,放入结果在游戏内,直接使用延后计算
某些计算,计算量不大但占用空间比较多,可以在用到的时候才加入,常用在配置表,模块加载上
功能层面:
Label:
- 增加下划线功能
- 增加字符限制 通过限制输入unicode编码范围来限制输入字符
- 增加缺字处理
- 增加仿粗体的功能
- 处理描边暇疵问题
ScrollView:
- 忽略父节点的滚动
- 调整惯性
- 增加
PageView:
- 增加翻页手感
- 增加循环滚动的处理
Scale9Sprite:
- 增加九宫格拉伸的setTextureRect效果实现
Shader:
- SHADER_DESATURATE
- SHADER_STONE
- SHADER_BANISH
- SHADER_BLUR
- SHADER_FROZEN
- SHADER_GRAY_AND_LUCENY
- SHADER_ICE
- SHADER_MIRROR
- SHADER_POISON
- SHADER_VANISH
TextField:
- 增加多输入框响应功能,多输入框的时候可以点到其他的输入框输入
- 增加弹出键盘弹到刚好输入框下方的功能
- 增加设置电击响应范围,点击穿透的功能
Widget:
- 增加截断渲染的功能
Node:
- 修改nodeComparisonLess排序方法,原因是安卓上是乱序的
Frame:
- 增加检查 要是在结束的时候发现有帧事件没有发出去的 发出去
ImageView:
- 异步加载问题
RichText:
- 重写,支持html格式
字符串问题:
- 字符串末尾要加个结束符号 否则会导致后面会出现不同平台处理不同的转换问题
工具:
- 增加Rect的接口commonRect计算两个rect相同部分 用于九宫格计算