关于Javascript游戏按键操控移动的思考
来源:互联网 发布:国际服务器端口定义 编辑:程序博客网 时间:2024/06/05 10:19
当前想到的最好的实现办法自然是在每一帧设置好对象的加速度,且不断调用函数,在speed上加上acceleration,在position上加上speed。无论是position、speed还是acceleration,都是对象自己的属性,与函数本身无关,所以这样的方法应当还是不错的,现在的主要问题就是“在什么情况下去设置position等值”。
有关连续触发的问题
为判断一次按键是单次按下还是按住不动,这中间设置有停顿,当你按住一个键不动时,会有延迟,为了有良好的体验,不应该将设置position的操作与keydown事件直接绑定。之前想过“当按下键时,设置setInterval,并取消事件绑定;松开键时,clearInterval”,但会引起一些问题诸如“clearInterval后直接取消了移动,那减速怎么办?又绑定一个减速事件?”、“松开按键减速未完成时又按下进行加速的情况如何处理?多个Interval并行?”、“取消绑定事件后,下一次触发怎么办?在松开后重新绑定keydown事件?”。我觉得这些解决办法都不好。
现在想到的较好的办法是:
利用持续按键的第一次触发是及时触发的,将setInterval只给第一次。也就是执行改变acceleration,然后`判断Interval是否存在,不存在时:按下键setInterval;存在时:只改变acceleration。而keyup事件也只需要改变acceleration。当然,setInterval的函数中应当包含一个若减速到0则clearInterval的语句。
未解决的问题
我是分x、y轴设置的分速度,并设置了最大速度。但当我同时按下两个键是对象斜着运动时,那么事实上其最大速度就变成了我设置最大速度的
- 关于Javascript游戏按键操控移动的思考
- 关于游戏手柄按键的设计
- 关于游戏手柄按键的设计
- 关于 'JavaScript实现' 的思考
- 关于手机移动支付的思考
- 关于移动测量姿态问题的思考
- 关于移动互联网的一点思考
- 关于移动互联网的三点思考
- 关于移动互联网的小思考
- 关于移动即时通讯协议的点滴思考
- 移动端关于使用字体的思考
- 关于深度学习移动化的思考
- 关于游戏自动更新工具的思考
- 关于游戏引擎结构上的思考
- 关于 iOS 游戏发展趋势的思考
- 关于游戏发展的几点思考
- 游戏中按键前后移动和基本的旋转和移动知识
- JavaScript 关于闭包的思考 总结
- 全面解析《嵌入式程序员应该知道的16个问题》
- 判断语句常量放前面
- 墨西拿中文离线地图App上线
- overridePendingTransition设置Activity切换动画
- [笔记]Java注解全面解析
- 关于Javascript游戏按键操控移动的思考
- 素数的判断
- uva10404 Bachet’s Game(dp之取石子游戏的胜负)
- Java基础之集合类常见试题
- 147 Insertion Sort List
- 循环队列的顺序表示和实现
- OpenCV Machine Learning 之正态贝叶斯分类器(Normal Bayes Classifier)的用法实例
- 冒泡排序法
- 计算机操作系统---处理机(进程)管理