news 2026/6/11 12:01:57

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/10 3:39:39

基于Vivado使用的UART通信模块设计完整示例

从零开始:用Vivado打造一个可调试的UART通信系统你有没有遇到过这样的场景?FPGA烧写成功,电源正常,但板子就是没反应——没有LED闪烁、没有屏幕输出。这时候,你想知道内部逻辑到底跑没跑起来,却没有任何反馈…

作者头像 李华
网站建设 2026/6/10 20:16:50

前端开发者的AI初体验:JavaScript调用图片旋转检测API

前端开发者的AI初体验:JavaScript调用图片旋转检测API 你是不是也遇到过这样的问题:用户上传一张照片,结果在网页上显示时是歪的,甚至头朝下?作为前端开发者,我们希望图片能“自动摆正”,但又不…

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

零基础入门Qwen2.5:图文并茂的部署实操手册

零基础入门Qwen2.5:图文并茂的部署实操手册 1. 引言 1.1 学习目标 本文旨在为初学者提供一份完整的 Qwen2.5-7B-Instruct 模型本地部署指南。通过本教程,您将掌握从环境准备到服务启动、API 调用的全流程操作,无需任何大模型部署经验即可上…

作者头像 李华
网站建设 2026/6/10 12:41:22

PaddleOCR-VL餐饮小票分析:1小时搭建消费洞察系统

PaddleOCR-VL餐饮小票分析:1小时搭建消费洞察系统 你是不是也遇到过这样的问题?连锁餐饮门店每天产生大量纸质小票,想分析顾客的消费习惯、热门菜品、客单价趋势,但靠人工一条条录入太慢,还容易出错。市面上的商业数据…

作者头像 李华
网站建设 2026/6/10 14:44:24

Glyph实战分享:我用它完成了毕业论文分析

Glyph实战分享:我用它完成了毕业论文分析 1. 引言:从毕业论文的“长文本困境”说起 1.1 毕业论文处理中的真实挑战 在撰写人文社科类毕业论文时,我需要频繁引用和分析大量原始文献、历史档案与学术专著。一篇典型章节往往涉及数万字的连续…

作者头像 李华