LayaAir 使用方向键 控制精灵在格子中移动
来源:互联网 发布:汽车修理厂软件手机版 编辑:程序博客网 时间:2024/06/06 20:16
使用方向键 在RPG中的格子中移动是很常见的功能!
可是在实际制作中会遇到很多问题
本人资质一般 弄了一个这个 弄了好久
基本上完美解决了同时按多个按键的问题
我以前的做法是 按哪个键 就忘哪个方向走 效率低 而且体验差
所以改了这个方案
当然 你可以继续优化这代码 并发给我 万分感谢
原理说一下, 就是当按键按下时, 就会把这个键的keycode 存储到一个数组中, 抬起时就会从数组中删除这个keycode
当一个格子走完时, 就会从数组中找到第一个keycode 操作下一步的位置, 走位很流畅 没有按住就会停一会儿再走的那种 停滞感
希望能帮助到大家 更希望抛砖引玉 谢谢大家
可是在实际制作中会遇到很多问题
本人资质一般 弄了一个这个 弄了好久
基本上完美解决了同时按多个按键的问题
我以前的做法是 按哪个键 就忘哪个方向走 效率低 而且体验差
所以改了这个方案
当然 你可以继续优化这代码 并发给我 万分感谢
如果你也专注2D的RPG游戏开发 可以加我的微信 一起研究
Laya.stage.on(Laya.Event.KEY_UP,this,this.onkeyup);Laya.stage.on(Laya.Event.KEY_DOWN,this,this.onkeydown); Laya.timer.frameLoop(1,this,this.loop);
onkeyup(e){ for(let i:number = 0;i<this.keyList.length;i++){ if(this.keyList[i]==e.keyCode){ this.keyList.splice(i,1); break; } } } onkeydown(e){ if(this.keyList.indexOf(e.keyCode)<0){ this.keyList.push(e.keyCode); } } loop(){ if(this.sp.x!=this.next_x||this.sp.y!=this.next_y){ if(this.sp.x!=this.next_x){ if(this.next_x>this.sp.x){ this.sp.x +=5; }else{ this.sp.x -=5; } }else{ if(this.next_y>this.sp.y){ this.sp.y +=5; }else{ this.sp.y -=5; } } }else{ this.nextDirection(); } } nextDirection(){ this.direction = this.keyList[0]; if(this.direction==37) this.next_x -= 50; if(this.direction==38) this.next_y -= 50; if(this.direction==39) this.next_x += 50; if(this.direction==40) this.next_y += 50; }
原理说一下, 就是当按键按下时, 就会把这个键的keycode 存储到一个数组中, 抬起时就会从数组中删除这个keycode
当一个格子走完时, 就会从数组中找到第一个keycode 操作下一步的位置, 走位很流畅 没有按住就会停一会儿再走的那种 停滞感
希望能帮助到大家 更希望抛砖引玉 谢谢大家
阅读全文
0 0
- LayaAir 使用方向键 控制精灵在格子中移动
- LayaAir 在TiledMap 中 插入精灵
- 方向键控制光标在table中跳动
- 方向键控制移动移动.cpp
- 在LayaAir IDE中 使用git 发布代码到码云
- 使用方向键控制table中文本框焦点
- actionscript 3.0方向键控制移动
- 控制精灵移动
- 用Ctrl+方向键可以方便的在控件中移动
- J2ME精灵的移动控制
- FLASH人物移动方向键控制源码.
- libgdx实现模拟方向键控制角色移动
- jQuery:用方向键控制层的移动
- jQuery:用方向键控制层的移动
- 格子中移动字母问题
- 在移动浏览器中使用viewport元标签控制布局
- 如何在sql*plus中使用方向键(rlwrap@CentOS)
- Ubuntu中Vi在insert模式不能使用方向键问题
- Sinner控件动态获取下拉类别
- Error mounting /dev/sda1 at /media/XXXX: Command-line `mount -t "ntfs" -o
- *数组总结*
- HashMap的工作原理
- 架构师之路:Mycat分布式架构实战解析
- LayaAir 使用方向键 控制精灵在格子中移动
- C语言操作符总结
- etcd单机启动
- Telnet功能打不开
- yum install update upgrade
- cat函数系统函数实现
- CI框架获取控制器名和方法名
- !--C语言解决实际应用题目--!
- Spring自定义标签和spring.handlers的加载过程