2026/3/12 1:43:00
网站建设
项目流程
上海机械网站建设,长泰县建设局网站,线上推广外包公司,网站三大要素是什么意思一、物理系统物理系统分为静态和动态节点静态节点#xff08;StaticBody2D#xff09;主要包括地面、桌子等不会移动的物体,添加节点后需要在子节点中加入相应的图像#xff08;不显示可以不添加#xff09;和碰撞检测区域#xff08;CollisionShape2D#xff09;动态节点…一、物理系统物理系统分为静态和动态节点静态节点StaticBody2D主要包括地面、桌子等不会移动的物体,添加节点后需要在子节点中加入相应的图像不显示可以不添加和碰撞检测区域CollisionShape2D动态节点RigidBody2D主要包括人物、球类等运动的物体同样需要加入碰撞的子节点和图像属性选中静态节点后在物理材质中可以设置粗糙度等内容二、人物角色控制主要操控的就是动态节点需要在动态节点中添加脚本using Godot; using System; public partial class MySprite2d : Node2D { public override void _Ready() { this.LockRotation true; //将人物的旋转锁定也可在属性栏设置 } public override void _Process(double delta) {} public override void _PhysicsProcess(double delta) //通常与物理相关的操作会放在这个函数中 { base._PhysicsProcess(delta); //通过获取水平轴控制左右移动,值是0,1-1 float horizontal Input.GetAxis(左,右); //给他一个X上的速度Y不变 this.LinearVelocity new Vertor2(horizontal*100this.LinearVelocity.Y); //如果按了跳跃键添加y的移动 if(Input.IsActionJustPressed(跳跃){ //保持X不变Y值为-300注意负值才是向上 this.LinearVelocity new Vertor2(this.LinearVelocity.X-300); } } }这时的人物已经具有了左右移动和跳跃的功能且没有跳跃限制如果需要设定限制跳跃次数就需要进行碰撞检测进行碰撞检测前需要修改部分属性public override void _Ready() { this.LockRotation true; //将人物的旋转锁定也可在属性栏设置 //做碰撞检测需要改的值同样可以在属性栏修改 this.ContactMonitor true; //是否开启碰撞检测 this.MaxContactsReported 1; //最大接触点数 }设置完成后记得需要在脚本中添加信号接收的方法用于连接碰撞信号private bool isGround; //设置一个bool值判断是否在地面 public void bodyEntered(Node body) { isGround true; //当发生碰撞时判断人物在地面上 } public void bodyExited(Node body) { isGround false; //当碰撞退出时判断人物不在地面上 }设置完成后同样需要在跳跃上设置条件//如果按了跳跃键添加y的移动 //按下跳跃且角色在地面上才可跳跃 if(Input.IsActionJustPressed(跳跃) isGround true){ this.LinearVelocity new Vertor2(this.LinearVelocity.X-300); }三、角色控制节点在godot中有专用的角色控制节点CharacterBody2D该节点不会有重力的影响需要通过代码额外实现好处是拥有更多适用于角色的简便方法在添加该节点的脚本时引擎会有一个自带的角色脚本模板里面的内容会提供包括重力生成移动速度跳跃等功能具体可设置参数来调试