利用角色轴坐标控制角色平面移动
https://indienova.com/home/blogread/4055
本篇利用方向判断进行移动其实跟上篇的原理一样,同样是通过坐标位置的刷新来进行移动,其中不一样的是按键方向的判断方式。
1.利用坐标正负来判断移动方向
我们知道x轴往右移动是正数,那么往左移动的时候是负数。提取1&-1出来。
当按右的时候,输出1;
按左的时候,输出-1;
当然还要考虑不按的时候,
x = x + 0 * 10;
x = x 的时候就不会动了,
不按的时候,输出0;
这样的话,可以定义一个变量。
默认不动,赋一个0,当按右的时候赋1,按左的时候赋-1。
这样就可以做到按左往左走,按右往右走。
但这样写有两个特点:
- 左右健一起按不会停下来。
- 左右健有先后的按,后按的键的方向会取代前一个键的方向。而且这个效果还要看代码行数的先后,第一行最优先,不会被第二行的功能占据。(按右的时候同时按左,会往左走。按左的同时按右,不会往右走)
2.利用加减法来决定正负。
利用加减法来判断正负可以解决上面遇到的问题,同时代码可以更加简洁。
当按键按下的时候判断为1,松开的时候判断为0。
没按的时候:dx = 0 - 0 = 0 → 不移动
单按右的时候:dx = 1 - 0 = 1 → 向右移动
单按左的时候:dx = 0 - 1 = -1 → 向左移动
左右同时按的时候:dx = 1 - 1 = 0 → 不移动
这样的话就可以做到角色移动01中的移动效果。
虽然效果是一样的,但这样看起来代码简洁多了。
现在是可以移动起来,但移动起来比较生硬,能加上惯性就好。下一篇说下移动的加速和减速。
角色移动02(外篇)——移动惯性效果,移动的加速
第一次看到国外大佬教程里用这个方法优化移动代码的时候也觉得眼前一亮!
希望系列写完以后能申请转载XDDD
我这相当于教程的笔记,用自己的思路总结来方便以后查看。觉得有用的话,也欢迎转载。
最近由 进击的零碎君 修改于:2017-10-02 03:03:04