news 2026/8/6 16:48:29

godot引擎基础学习笔记8(C#)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
godot引擎基础学习笔记8(C#)

一、物理系统

物理系统分为静态和动态节点

静态节点(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*100,this.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),该节点不会有重力的影响,需要通过代码额外实现,好处是拥有更多适用于角色的简便方法

在添加该节点的脚本时,引擎会有一个自带的角色脚本模板,里面的内容会提供包括重力生成,移动速度,跳跃等功能,具体可设置参数来调试

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/4 6:20:04

YOLOv13+Flask部署:API服务1小时上线

YOLOv13Flask部署:API服务1小时上线 你是不是也遇到过这样的场景?作为全栈开发者,项目里突然需要加入一个“智能识别图片中物体”的功能——比如上传一张照片,自动标出里面的人、车、狗、卡车甚至“黄色的工程车”。你第一时间想…

作者头像 李华
网站建设 2026/8/1 20:00:35

YOLOE官版镜像在智能安防中的实际应用案例

YOLOE官版镜像在智能安防中的实际应用案例 随着城市化进程加快和公共安全需求提升,智能安防系统正从“看得见”向“看得懂”演进。传统监控系统依赖人工回看录像或基于固定类别目标的检测模型,难以应对复杂多变的安全场景。而开放词汇表(Ope…

作者头像 李华
网站建设 2026/8/5 9:05:34

Qwen2.5企业级部署:从体验到生产,云端无缝过渡

Qwen2.5企业级部署:从体验到生产,云端无缝过渡 你是不是也遇到过这样的情况?作为技术负责人,团队想上AI大模型项目,但采购决策前必须先做POC(概念验证),确保Qwen2.5在实际业务中表现…

作者头像 李华
网站建设 2026/7/28 4:46:47

YOLO-v8.3环境配置:PyTorch+CUDA一站式解决方案

YOLO-v8.3环境配置:PyTorchCUDA一站式解决方案 YOLO-v8.3 是 Ultralytics 公司在 YOLO 系列持续迭代中推出的最新优化版本,基于 YOLOv8 架构进一步提升了训练效率、推理速度与模型精度。该版本在目标检测、实例分割和姿态估计等任务中表现出色&#xff…

作者头像 李华
网站建设 2026/7/28 7:46:42

工业自动化场景下Keil生成Bin文件的优化策略

工业自动化场景下Keil生成Bin文件的优化实践在现代工业自动化系统中,PLC、HMI、伺服驱动器等核心设备越来越依赖高性能嵌入式控制器。这些设备通常基于ARM Cortex-M系列MCU运行实时控制逻辑,而其开发流程的关键一环——从Keil工程输出可烧录的.bin文件—…

作者头像 李华
网站建设 2026/7/28 3:20:29

视频帧跳过处理,vid_stride提升YOLO11效率

视频帧跳过处理,vid_stride提升YOLO11效率 1. 引言:视频推理中的性能瓶颈与优化需求 在基于YOLO11的计算机视觉应用中,视频流推理是常见且关键的使用场景。无论是实时监控、交通分析还是行为识别,系统都需要在有限计算资源下高效…

作者头像 李华