用户:陈年老按查看:4 回复:7 评论:4 创建时间:2020-04-01T11:42:05
那么,我的方法,适合数学好的一些人,如果你是新手的话,你试着看懂吧!实在看不懂就去看看简单点的但是效果没有我的方法好!链接在下面↓
https://shequ.codemao.cn/community/263847
那么,如果你是一个技术中等的,这个教程,你应该可以看懂。看不懂的话……
那就算了吧
那么我们开始正题。
首先,我们需要创建几个变量来控制角色的造型。这个算法比较麻烦。如果你是大佬的话,那么这个算法对你来说很简单。首先,他的原理很简单,因为我们的主角有4个方向。但是左右移动的时候可能只有两个动作。不过没关系,只要把他移动动作多加两个(就是移动和站立的动作都复制一个)
示例(角色不同原理一样):
是以站-迈左脚-站-迈右脚这样的形式移动的。但是我们的frisk可能不一样。只要把她的造型以这个形式排序就好了,有大用处。接着,就是我们的代码区域
那么我们代码应该怎么写呢?这个时候肯定就有一些新手要问了
你这个造型排序和我们做移动有毛关系啊?
我和你说,你要耐心地往下看!凡事都要一步一步来。
接着,我们就要创建几个变量----方向,形态,步
方向是为了控制角色的上下左右
形态是为了控制角色的形态,就比如说,我的大雄vs哆啦A梦中,大雄有很多造型,比如:举喵,举刀
就要用形态控制。
步是为了控制角色的移动动作
这个时候,你们可能会发现,角色的4个移动动作,方向,几个形态,可以用某个算法来解决。
这个算法,你们不要急着看,让我一步一步讲过来
首先,我们要角色移动和方向
而这个方向,你会发现,他每个方向都是4个移动动作
所以我们可以通过创建一个造型变量,来专门控制方向
算法如下:
方向×4-步
为什么要这样写呢?因为这种算法,我相信很多人都发现了,这个算法其实有点类似有些联机的算法
那些会做联机并且做的是这种算法的人,理解这个就很简单了
方向×4,是因为有4个移动造型,减去步(步是从大到小的)是为了确保每个造型都有用到
那么这个到后面你就知道了
接着,我们将如何把形态插入呢?
你想:她每4个造型为一个方向,那么每16个造型,就相当于一个形态了
所以只要把形态×16+(方向×4-步)就可以了
代码如下:
另外,我们还要做一个碰撞体积
这个碰撞体积怎么定呢?
定在角色头以下的部分
也就是身体部分。不包括手
这个东西在后期会有用
那么知道了造型的写法,那么移动怎么写呢?这很简单
相信大家都会做吧?我就不做解释了
移动不难,难在背景的移动。
原理:背景其实也是一个角色,只不过很大而已
当角色x坐标为0时,背景才会开始移动,当角色y坐标为0时,背景的y坐标也开始移动
但是和角色移动的方向是反的。至于为什么是反的,你试试就好了
做这个东西,我们需要的变量---x是否移动,x限制,x左限制,y是否移动,y限制,y下限制
当这个地图很大时,你要确定他是x坐标跨越大还是y跨越大
然后计算出背景到最右边就是碰到没碰到右边缘的时候的坐标
就是x限制了,而左限制就是背景在最左边时的值。
在写背景移动前,要移动,就要把x限制设置为1
当限制为1时,才可以进行背景移动
然后,代码如下:
根据x的写法就可以写出y了
接着就是造型切换以及等待时间
而我们有个设定就是菜单,当你按下菜单时,所有角色包括移动就都要停止
那么有个问题,等待的时候,不会受限制
这样,我们就不能用等待x秒这个积木了
我们自己造。
首先,我们创建一个变量-时间
接着,当开始被点击,就重复+1
不加任何等待x秒
然后我们再创建两个变量----事件进行中,菜单是否可以呼出
当事件进行中,就保持等待直到事件进行中=0
代码如下:
而是否可以呼出菜单是为了防止卡出在你进行事件的时候可以呼出菜单从而卡出BUG
所以菜单写法示例(注意,代码不一样,但是原理一样):
其中的是否举喵相当于菜单是否可以呼出
那么这就是菜单的写法
现在,是最激动人心的时候了,我们要写frisk的移动了!
首先我们还需要创建一个变量--计时
(注意:这不是普通变量是角色变量)
这个计时是为了给有一个移动的时间间隔
当你按下移动键的时候,你需要移动,当你停止时你还是要保持这个方向
所以要把步数设置为3
因为这是反着来的(看不懂就照抄吧)
当你按下↑↓←→任意键的时候,就要移动
所以当按下这几个键
就会开始移动
将步数设置为3
然后减一减一的这样
当步数≤0时,将步数设置为3
代码如下:
其中的折叠积木是你没有按下这个键的时候会停止造型。
这是控制方向的。控制移动的就要你们自己去写了!
这些代码仅供参考,具体怎么写靠你们自己将这些代码整理在一起实现效果!