上一节中,我们把这个背景进行了调整
不过玩家位置却一塌糊涂
不过在相对运动中指出,
既然背景在动了,那么玩家和相机(舞台区)应该是不用动的
那我们直接拿掉玩家的移动,但是后续加东西很麻烦
也只是个治标不治本的乱操作
你有什么点子嘛?
玩家在相机中的位置
我们知道,在我们构建的坐标系中,玩家,摄像机都有自己的位置
我们现在要用这两个算玩家在舞台区的相对位置
这有一个草图
不难发现,用玩家玩家xy-相机xy就可以让它居中啦!
这样就很不错啦!
but!这个玩家还是有点卡卡的
为什么呢?
实际上,这个的同步会比玩家移动慢一帧
因为玩家的移动循环结束之后,才会出现玩家xy变化
这时候相机的也刚循环完,只能等下一帧循环在更改相机xy
就造成了这局面~
(仅为个人简化后猜想)
是不是那我们优化一下?
这时候请出瓦们的非线性运动吧!
非线性运动
定义:非线性现象是非线性系统中独有的反映其运动本质的一类现象,非线性物理学(nonlinear physics)是研究各种非线性现象的学科。
显然,怎么又到物理上啦(抓狂)
我们是想要一个角色慢慢变化~
也可以说是,丝滑的变大,可以用在UI上
不过在今天的运动上也很实用(赞
不过说到这里,又要用到数学里的极限思想,该怎么引入呢?
算了,想好了再来改吧(bushi
了解极限思想
定义:所谓极限的思想,是指用极限概念分析问题和解决问题的一种数学思想。
看起来很麻烦对吗?我来说成人话给你听(bushi
我们先用大小为例,这里知识讲解,等一会再去写代码qwq
我们给*目标大小和*目前大小拟定一个值
比方说*目标大小=110 *目前大小=100
那么*目标大小-*目前大小就是他们两个之间的差距
也就是10,然后取了0.2
再然后再看我的操作
我又用变量自增把它存到了目前大小
再用*目标大小-*目前大小
取0.2然后加到目前大小,一直这样……
这个数字就会无限接近110,也就是目标大小
这就是我们要理解的思想
有肝酱问了:这个0.2有什么讲究吗?
问得好!这涉及到了我们的百分比,来,我们来看看
有肝酱又说了:我又不是文盲,我知道……
我还是那句话……
“别高兴得太早~下面的你还不一定会(doge”
揭晓神秘的0.2
定义:100%(百分之百)可表示完全肯定或占某个物体的所有部分。表示一个数是另一个数的百分之几的数,叫做百分数。百分数也叫做百分率或百分比。百分数通常用“%”来表示。 百分数可以转化成分数表示,也可以转换成小数。
看完百分数的定义,你一定可以知道:0.2=20%
那么肝酱问了:有什么用啊?我只看懂了这一句啊……
我再来捋捋哈!
“表示一个数是另一个数的百分之几的数”
这句话是最重要的,也是我们今天需要用到的
我来举一个生(bu)动(yi)形(li)象(jie)的栗子:
比方你有10个硬币
你打把你的20%都给我
那我们用10*20%
也就是10*20/100
也就是10*0.2
也就是2个,对吧~
你要给我30%呢? 3个
40%? 4个
对吧?但是我们把它套上了无限循环,
意味着你还要给我你剩下的(8个)的20%
也就是8*20%,也就是1.6个
我就有1.6+2=3.6个了,对吧
一直不断地增加,直到你把所有的都给我~
那么这时候会先很快很快地变化,再慢下来,最后你的硬币无限接近于0
那么再换到那个大小相关的就是:
很好,那么同理,数值越大,变化速度越快,反之越小
我们知道这个以后,是不是可以着手开始修改上一节的问题了?
完成修改
回到代码区!
这次为了修改这个移动,是不是修改一下相机的坐标就好了
把玩家xy当成上面的目标xy,把相机xy当成目前xy
只需要拿 (目标-目前)*0.2
就万事大吉啦!不是嘛?
好啦!现在试试吧!
只能说好耶!
给自己呱唧呱唧👏~
俗话说的好“想,全是问题;做,才有答案。”
那我们继续努力吧!
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=avg101/ben/lec2/03&type=comment"
title="{冒险游戏初级教程-第二课第三节}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>