Post

08Physics

节点作用其他例子
Area2D检查其他物体进入区域的节点(不可见)可以通过修改position来移动这个节点1.检查玩家进入房子(房子就是Area2D)
2.laser也是一个Area2D,检查laser是否与墙壁、物体、玩家等碰撞
StaticBody2D一个可和其他物体碰撞的静态物体Not supposed to be moved所有静态的对象:墙壁、床、障碍物
RigidBody2D仅通过物理量移动的物体(可以把它想象成一个炮弹)初始velocity,然后物体就会自己移动手榴弹(grenade)
CharacterBody2D代码控制的移动(他的意思是复杂的运动)实体通过内置方法来移动它基本上任何通过代码来移动的物体都会是它:玩家、敌人

碰撞形状:

  • CollisitionShape2D
  • CollisitionPolygonD

使用 CharacterBody2D/3D 节点

CharacterBody2D.move_and_slide:

move_and_slide() 根据velocity(速度)移动物体,如果跟另一个物体碰撞(返回true)则沿着物体滑动. 例如, 在平台游戏或自上而下的游戏中, 它特别有用.

当调用 move_and_slide() 时,该函数使用许多节点属性来计算其滑动行为。这些属性可以在检查器中找到,或在代码中设置。

1
2
3
4
#使用 CharacterBody2D/3D 节点
var direction=Input.get_vector("left","right","up","down")#检查四个按键事件,并返回一个方向向量的累加值。
velocity=direction*200
move_and_slide()
This post is licensed under CC BY 4.0 by the author.