news 2026/6/15 15:37:42

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/6/15 14:20:41

AI智能文档扫描仪为何稳定?无外部依赖架构设计深度解析

AI智能文档扫描仪为何稳定?无外部依赖架构设计深度解析 1. 引言:轻量高效办公工具的技术本质 在移动办公和数字化转型的背景下,文档扫描已成为日常工作中不可或缺的一环。市面上主流的扫描应用如“全能扫描王”多依赖深度学习模型进行边缘检…

作者头像 李华
网站建设 2026/5/22 0:22:07

RetinaFace+CurricularFace模型蒸馏:基于预配置镜像的知识迁移

RetinaFaceCurricularFace模型蒸馏:基于预配置镜像的知识迁移 你是否也遇到过这样的问题:训练好的人脸识别大模型精度很高,但部署到边缘设备上时速度慢、资源占用高,根本跑不起来?作为一名算法工程师,我经…

作者头像 李华
网站建设 2026/6/13 13:47:55

opencode社区生态全景:40+插件管理与技能扩展实战指南

opencode社区生态全景:40插件管理与技能扩展实战指南 1. OpenCode 框架概览 OpenCode 是一个于2024年开源的 AI 编程助手框架,采用 Go 语言开发,定位为“终端优先、多模型支持、隐私安全”的下一代开发者工具。其核心设计理念是将大语言模型…

作者头像 李华
网站建设 2026/6/15 12:31:39

LangFlow新手指南:没技术背景也能玩转AI

LangFlow新手指南:没技术背景也能玩转AI 你是不是也经常被一堆报表搞得焦头烂额?每天要花几个小时整理数据、写总结、做PPT,而这些工作其实都有规律可循。现在,有个叫 LangFlow 的工具,能让你不用写一行代码&#xff…

作者头像 李华
网站建设 2026/6/15 12:33:19

Emotion2Vec+适合哪些场景?智能客服/教学/心理分析

Emotion2Vec适合哪些场景?智能客服/教学/心理分析 1. 技术背景与核心价值 在人机交互日益频繁的今天,情感识别技术正成为提升服务智能化水平的关键能力。传统的语音识别系统仅关注“说了什么”,而Emotion2Vec Large语音情感识别系统则进一步…

作者头像 李华