当前位置: 首页 > news >正文

godot引擎c++源码深度解析系列一

许久没有使用c++开发过项目了,如果按照此时单位的入职要求,必须拥有项目经验的话,那我就得回到十多年前,大学的时代,哪个时候真好,电脑没有这么普及,手机没有这么智能,网络没有这么发达,信息传播没有此时的快,哪个年代,5毛钱一份的报纸或许真的很好。学习技术只能靠阅读大量的书籍来获取经验。

入职it这个行业以来,想必很多的同行,前辈们,都知道,软件开发唯一的要求,实践能力必须很强,不亲自实操,你永远不知道代码里有多少个坑,同样的一段代码,在A电脑能运行,在B电脑就运行不了,这就是环境对此的影响。

此时,看看身边的同事们,各有千秋,而自己呢,确又回到了当初。

Godot是一个开源的跨平台游戏引擎,用于开发2D和3D游戏。它由一个专注于游戏开发的非营利组织开发和维护。以下是一些关于Godot的示例代码:

extends Node2Dfunc _ready():var sprite = Sprite.new()sprite.texture = load("res://texture.png")add_child(sprite)

看了上述的代码是不是觉得很有熟悉的感觉,很简单。No,No,No,后面的还有很多。我们先来看下开发工具界面

 这个界面看起来还是很舒服的,如果你觉得不舒服,没有问题,打开源码,咱自己修改。前面说过godot是一个开源的游戏引擎,既然开源,那么我们就从源代码里来修改他的界面,看能否实现。

源码我们已经下载好了,如果你还没下载的话,可以参考下方的地址。

  1. 官方网站:Godot Engine - Free and open source 2D and 3D game engine
  2. 官方文档:Godot Docs – 4.1 branch — Godot Engine (stable) documentation in English
  3. GitHub仓库:GitHub - godotengine/godot: Godot Engine – Multi-platform 2D and 3D game engine

 看到上述的源码结构,确又不知道从哪里入手了,毕竟好久没有使用c++了,还好凭借着大脑中仅存的一点记忆,找到了程序的入口文件,开启了我阅读源码的路程。

既然找到了熟悉的感觉,那就开启第一个尝试,就是增加一个功能,实现用户打字练习的功能。

经过漫长的一天,总算是有些模样了,虽然丑点,但至少知道从哪里入口了。

当然了研究源码的目的不仅仅只是为了增加一个打字练习的窗口,还有好多的功能要实现,用一句话来表示那就是““路漫漫其修远兮,吾将上下而求索”。

Finally, after a day of tossing and turning, I used all my years of college experience, communicating in English, and returning to the original development language C++. Although ten years have passed, everything seems to be yesterday.。 

相关文章:

godot引擎c++源码深度解析系列一

许久没有使用c开发过项目了,如果按照此时单位的入职要求,必须拥有项目经验的话,那我就得回到十多年前,大学的时代,哪个时候真好,电脑没有这么普及,手机没有这么智能,网络没有这么发达…...

【VB6|第21期】检查SqlServer数据库置疑损坏的小工具(含源码)

日期:2023年7月25日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xf…...

React的hooks---useCallback useMemo

useCallback 和 useMemo 结合 React.Memo 方法的使用是常见的性能优化方式,可以避免由于父组件状态变更导致不必要的子组件进行重新渲染 useCallback useCallback 用于创建返回一个回调函数,该回调函数只会在某个依赖项发生改变时才会更新,…...

05. 容器资源管理

目录 1、前言 2、CGroup 2.1、是否开启CGroup 2.2、Linux CGroup限制资源能使用 2.2.1、创建一个demo 2.2.2、CGroup限制CPU使用 2.3、Linux CGroup限制内存使用 2.4、Linux CGroup限制IO 3、Docker对资源的管理 3.1、Docker对CPU的限制 3.1.1、构建一个镜像 3.1.2…...

通过ETL自动化同步飞书数据到本地数仓

一、飞书数据同步到数据库需求 使用飞书的企业都有将飞书的数据自动同步到本地数据库、数仓以及其他业务系统表的需求,主要是为了实现飞书的数据与业务系统进行流程拉通或数据分析时使用,以下是一些具体的同步场景示例: 组织架构同步&#…...

MySQL基础扎实——MySQL中各种数据类型之间的区别

在MySQL中,有各种不同的数据类型可供选择来存储不同类型的数据。下面是一些常见的数据类型以及它们之间的区别: 整数类型: TINYINT:1字节,范围为-128到127或0到255(无符号)。SMALLINT&#xff1…...

每天五分钟机器学习:多项式非线性回归模型

本文重点 在前面的课程中,我们学习了线性回归模型和非线性回归模型的区别和联系。多项式非线性回归模型是一种用于拟合非线性数据的回归模型。与线性回归模型不同,多项式非线性回归模型可以通过增加多项式的次数来适应更复杂的数据模式。在本文中,我们将介绍多项式非线性回…...

ETH网络学习

概要 ETH网络是一个P2P网络,整个网络又区分为“执行层”与“共识层”。“执行层”节点负责交易交换,“共识层”节点负责区块打包、区块验证、区块同步和链同步。 执行层 执行层分为“服务发现”与“DevP2P”,两者共同并行执行。 服务发现…...

01-将函数参数化进行传递

项目源码:https://github.com/java8/ 1 应对不断变化的需求 在我们进行开发中,经常需要面临需求的不断变更,我们可以将行为参数化以适应不断变更的需求。 行为参数化就是可以帮助我们处理频繁变更的需求的一种软件开发模式 我们可以将代码…...

数据结构【栈和队列】

第三章 栈与队列 一、栈 1.定义:只允许一端进行插入和删除的线性表,结构与手枪的弹夹差不多,可以作为实现递归函数(调用和返回都是后进先出)调用的一种数据结构; 栈顶:允许插入删除的那端&…...

MATLAB | 产生阿尔法稳定分布噪声并作出概率密度函数

一、问题描述 想产生不同特征参数的α稳定随机变量,并且作出其概率密度函数进行对比。 二、解决思路 运行了MATLAB的官方实例代码: openExample(‘stats/ComparePDFsOfStableDistributionsExample’) (1)使用makedist()函数生成…...

深入浅出Pytorch函数——torch.softmax/torch.nn.functional.softmax

分类目录:《深入浅出Pytorch函数》总目录 相关文章: 机器学习中的数学——激活函数:Softmax函数 深入浅出Pytorch函数——torch.softmax/torch.nn.functional.softmax 深入浅出Pytorch函数——torch.nn.Softmax 将Softmax函数应用于沿dim的…...

Vue2学习笔记

vue是根据数据来构建用户界面的一套框架 创建一个vue实例 <!-- 1.创建一个容器 2.引入vue.js开发版本&#xff08;全局的&#xff09; 3.创建实例对象 4.配置选项 > 完成渲染 --> <div id"app">{{ msg }} </div> <script srcvue.js><…...

Java 悲观锁 乐观锁

锁可以从不同的角都分类。其中乐观锁和悲观锁是一种分类方式 一、悲观锁、乐观锁定义 悲观锁就是我们常说到的锁。对于悲观锁来说&#xff0c;他总是认为每次访问共享资源时会发生冲突&#xff0c;所以必须每次数据操作加上锁&#xff0c;以保证临界区的程序同一时间只能有一个…...

优惠券秒杀(二)

库存超卖问题分析 库存超卖问题其本质就是多个线程操作共享数据产生的线程安全问题&#xff0c;即当一个线程在执行操作共享数据的多条代码的过程中&#xff0c;其他线程也参与了进来&#xff0c;导致了线程安全问题的产生。例如&#xff1a;线程1发送请求&#xff0c;查询库存…...

selenium的java方式打开IE浏览器

1.下载软件Selenium Driver 官方下载地址&#xff1a; ​ https://www.selenium.dev/downloads/解压selenium-java-3.141.59.zip文件到java项目 seleniumDemo&#xff0c;并降解压的文件放入依赖中&#xff08;1&#xff09;双击项目的src打开项目结构&#xff0c;或右键-打开…...

分类评估指标

文章目录 1. 混淆矩阵2. Precision(精准率)3. Recall(召回率)4. F1-score5. ROC曲线和AUC指标5.1 ROC 曲线5.2 绘制 ROC 曲线5.3 AUC 值6. API介绍6.1 **分类评估报告api**6.2 **AUC计算API**练习-电信客户流失预测1. 数据集介绍2. 处理流程3. 案例实现4. 小结1. 混淆矩阵 …...

OpenCV:图像直方图计算

图像直方图为图像中像素强度的分布提供了有价值的见解。通过了解直方图&#xff0c;你可以获得有关图像对比度、亮度和整体色调分布的信息。这些知识对于图像增强、图像分割和特征提取等任务非常有用。 本文旨在为学习如何使用 OpenCV 执行图像直方图计算提供清晰且全面的指南。…...

用QFramework来重构 祖玛游戏

资料 Unity - 祖玛游戏 GitHub 说明 用QF一个场景就够了&#xff0c;在UIRoot下切换预制体达到面板切换。 但测试中当然要有一个直接跳到测试面板的 测试脚本&#xff0c;保留测试Scene&#xff08;不然初学者也不知道怎么恢复测试Scene&#xff09;&#xff0c;所以全文按S…...

生活杂记-显示器尺寸

以下是常见显示器尺寸的对角线长度换算成厘米的结果&#xff08;已经四舍五入到最接近的厘米数&#xff09;&#xff1a; 19英寸显示器 ≈ 48.26厘米21.5英寸显示器 ≈ 54.61厘米24英寸显示器 ≈ 60.96厘米27英寸显示器 ≈ 68.58厘米32英寸显示器 ≈ 81.28厘米34英寸显示器 ≈…...

Ender3V2S1切片器脚本配置指南:优化3D打印效果的完整教程

Ender3V2S1切片器脚本配置指南&#xff1a;优化3D打印效果的完整教程 【免费下载链接】Ender3V2S1 This is optimized firmware for Ender3 V2/S1 3D printers. 项目地址: https://gitcode.com/gh_mirrors/en/Ender3V2S1 Ender3V2S1是一款备受欢迎的3D打印机&#xff0c…...

从概念到工具:实战构建基于clawhub skill的个人技能管理体系

最近在整理自己的技能树时&#xff0c;发现需要一个能直观管理个人技术栈的工具。尝试用clawhub skill框架搭建了一套解决方案&#xff0c;配合InsCode(快马)平台的快速部署能力&#xff0c;三天就做出了可实际使用的技能看板。记录下关键实现思路&#xff0c;或许对同样想系统…...

如何利用YimMenu彻底改变你的GTA5游戏体验:终极GTA5增强工具完全指南

如何利用YimMenu彻底改变你的GTA5游戏体验&#xff1a;终极GTA5增强工具完全指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Tr…...

如何免越狱定制iPhone界面:Cowabunga Lite完整使用指南

如何免越狱定制iPhone界面&#xff1a;Cowabunga Lite完整使用指南 【免费下载链接】CowabungaLite iOS 15 Customization Toolbox 项目地址: https://gitcode.com/gh_mirrors/co/CowabungaLite Cowabunga Lite是一款专为iOS 15设备设计的系统定制工具&#xff0c;让普通…...

救命!2026爆款PPT一键制作工具实测,新手也能5分钟出片,告别熬夜手搓无标题

作为常年和PPT打交道的AI博主&#xff0c;每天都能收到粉丝私信轰炸&#xff1a;“做PPT有没有捷径&#xff1f;”“AI能不能帮我快速出稿&#xff1f;”“新手零基础&#xff0c;半天排不出一页像样的版面”……懂的都懂&#xff01;谁没为了一份PPT熬到凌晨&#xff1f;找模板…...

技术债务管理:如何与产品经理就“还债”达成共识?

在追求快速迭代和功能交付的软件开发浪潮中&#xff0c;技术债务如同潜伏在系统深处的“慢性病”&#xff0c;悄然累积&#xff0c;最终可能引发系统脆弱、交付迟滞、团队士气低落等一系列并发症。对于软件测试从业者而言&#xff0c;技术债务带来的影响尤为直接&#xff1a;测…...

如何解决ViPER4Windows兼容性难题?5步打造Windows 10/11音效增强终极方案

如何解决ViPER4Windows兼容性难题&#xff1f;5步打造Windows 10/11音效增强终极方案 【免费下载链接】ViPER4Windows-Patcher Patches for fix ViPER4Windows issues on Windows-10/11. 项目地址: https://gitcode.com/gh_mirrors/vi/ViPER4Windows-Patcher 副标题&…...

用随机森林预测空气质量?先看看这6个特征谁说了算!(Python特征重要性分析与可视化实战)

随机森林特征重要性分析&#xff1a;解码空气质量预测的6大关键因素 当数据科学家们谈论空气质量预测时&#xff0c;常常陷入一个误区——过分关注模型的预测准确率&#xff0c;却忽视了模型背后的故事。想象一下&#xff0c;你花费数周时间调优的随机森林模型预测准确率达到了…...

Phi-4-mini-reasoning轻量模型安全:对抗提示注入攻击的防护策略

Phi-4-mini-reasoning轻量模型安全&#xff1a;对抗提示注入攻击的防护策略 1. 模型简介与安全挑战 Phi-4-mini-reasoning是一个基于合成数据构建的轻量级开源模型&#xff0c;专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族成员&#xff0c;它支持128K令牌的超长…...

ncmdump:解决网易云音乐NCM格式限制的轻量级转换方案

ncmdump&#xff1a;解决网易云音乐NCM格式限制的轻量级转换方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 一、音乐自由的阻碍&#xff1a;NCM格式的隐形枷锁 &#x1f3b5; 你是否经历过这样的场景&#xff1a;精心收藏的网…...