Godot脚本引擎入门-VisualScript(五)

物理动力学KinematicBody2D

  • 学习本小节先须理解什么是KinematicBody,它是一种特殊的物体类型,它可以有用户来控制,它们不会受到物体的影响。通常主要用在两个方面一个是模拟运动,另外一个是角色动力学。

  • 什么是模拟运动? 举个简单的例子,比如飞船的移动,还有太阳,星球运动等等,我们不可能用真的飞船去移动,但通过模拟的方式,就更现实中的飞船移动,达到的效果一样,这样我们为什么需要用模拟运动了。

  • 什么是角色运动学:当一个角色与世界中的任何物体发生碰撞的行为。

开始本小节的实战 首先我们创建一个虚函数_input ,用来的输入,第二个_physics_process用来处理物理运动,然后我们新建三个变量

# 物体的速度
int speed = 200  
# 鼠标的位置
vector2 target = (0,0)
# 物体运动的速度
vector2 velocity = (0,0)

这里写图片描述

首先,我们在_input 函数中需要判断用户单击,获取鼠标的位置。
这里写图片描述

然后再第二个虚函数中让鼠标的位置去处理与物体发生的碰撞。

  • 首先需要获取物体运动的速度

这里写图片描述

首先是用鼠标当前的位置减去物体当前的位置,得到一个向量,然后转化为单位向量。最后乘以一个速度,就是当前物体运动的速度。

  • 然后再判断是否与物体发生了碰撞

我们首先用鼠标的位置减去物体当前的位置,然后将它转换为向量的长度。如图
这里写图片描述

最后判断物体与物体发生的碰撞。
这里写图片描述

将上面连接起来如图:
这里写图片描述

最后测试一下效果吧:!!
这里写图片描述

猜你喜欢

转载自blog.csdn.net/spctomp2017/article/details/80545318