iloveas 发表于 2018-12-14 10:35:06

【9RIA—iloveas】— AS3游戏实用技巧(4):一行代码让鼠标和键盘操作更加流畅

本帖最后由 TKCB 于 2018-12-14 13:51 编辑

转载:9RIA游戏开发者社区(天地会)
作者:iloveas(原天地会大神)


总目录:[原创]AS3游戏开发实用技巧汇总



这又是一个蛋疼的问题:在实现装备或者背包物品拖动的功能时,我们可能会感觉到被拖动的对象移动的不是那么流畅,总是一卡一卡的。但检查游戏的cpu和内存占用却没发现任何异常,无法找到问题所在。对于打击感要求较高的动作游戏来说,类似的问题就是键盘操作响应较慢,延时较长,导致用户体验变差。

这时候没准就是帧频的问题了,可能的话,把游戏的帧频降低到1fps,看看这些操作是不是变的更卡。如果不是,那接下来的内容估计对你没太大帮助,不然你就该继续往下看了。

通过以上测试,我们可以发现画面的刷新时间跟帧频有关。以1fps为例,如果你在0.3秒时移动了鼠标,那么mouseMove事件就会立即触发,trace也能及时发出,但鼠标操作所触发的界面变动就要在0.7秒后,也就是帧频事件响应时才能在游戏中反映出来。也换句话说,就是帧速率跟不上用户操作的频率。

基于这样的机制,我们只要把帧频提高,响应的延时就会随之降低。但是全局只有一个帧频,调整它往往牵一发而动全身,在实际应用中的可行性并不高。

其实要提高鼠标,键盘等操作的响应速度,除了提高帧频以外,还有下面的方法,只要在监听器函数内追加以下一行代码:
**** Hidden Message *****
鼠标和键盘操作的流畅度就能提升不少,对于帧频设置较低(不超过30fps)的游戏来说,效果可谓立竿见影。

PS:基于Stage3D的Flash游戏,其帧频通常都在60fps左右,一般没必要再作以上优化。

和上一篇帖子一样,此法也以牺牲性能为代价(天哪,iloveas发的技巧怎么越来越不实用了,搞的我都不好意思设置回复可见啦),所以在项目里我还特地封装了一个类,在不必要的时候把这一操作给屏蔽掉。


ant 发表于 2019-5-22 08:54:28

{:5_178:}                  

knightky 发表于 2019-8-12 08:49:31

{:5_177:}                                 

whx19881209 发表于 2019-10-9 12:36:51

感谢分享

mingvoice 发表于 2019-11-7 16:40:06

AS3游戏实用技巧(4):一行代码让鼠标和键盘操作更加流畅 [修改]

qykings 发表于 2019-11-8 17:50:30

本主题由 TKCB 于 2018-12-18 13:03 分类

nocon123 发表于 2019-11-9 22:06:04

66666666666666666666

wahaha2323 发表于 2019-11-12 03:03:01

{:5_176:}感谢分享

wuliao2014 发表于 2019-11-12 09:38:51

感谢分享

SakuraYing 发表于 2019-12-2 23:52:55

学习一下 感谢您的分享{:5_178:}
页: [1] 2
查看完整版本: 【9RIA—iloveas】— AS3游戏实用技巧(4):一行代码让鼠标和键盘操作更加流畅

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)