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

记录每次研究源码的突破,今天已经将打字练习的功能完成了一个基本模型,先来看下运行效果。

godot源码增加打字练习的demo

这个里面需要研究以下c++的控件页面的开发和熟悉,毕竟好久没有使用c++了,先来看以下代码吧。

	//第一排 显示文本  计时器 已完成个数  重新开始按钮HBoxContainer *version_info_first = memnew(HBoxContainer);// Add a dummy control node for spacing.Control *v_spacer_first = memnew(Control);version_info_first->add_child(v_spacer_first);hbc->add_child(version_info_first);VBoxContainer *hbc_first = memnew(VBoxContainer);hbc_first->set_h_size_flags(Control::SIZE_EXPAND_FILL);hbc_first->set_alignment(BoxContainer::ALIGNMENT_CENTER);hbc_first->add_theme_constant_override("separation", 30 * EDSCALE);vbc->add_child(hbc_first);typing_label_time = memnew(Label);typing_label_time->set_text("timer:"); version_info_first->add_child(typing_label_time);typing_label_count = memnew(Label);typing_label_count->set_text("complete"); version_info_first->add_child(typing_label_count);typing_restart_btn = memnew(Button);typing_restart_btn->set_text("restart");typing_restart_btn->connect("pressed", callable_mp(this, &EditorApathysTyping::_version_button_pressed));version_info_first->add_child(typing_restart_btn); 

就这样就实现了文本框,输入框和按钮的实现,以及对应的事件,后面还有很多的功能,都需要慢慢的研究。

void EditorApathysTyping::_on_search_term_changed(const String &p_term) {ERR_PRINT(vformat("Blah: %s", p_term));String arr[17] = { "def", "div", "format", "enter", "tr", "table", "image", "td", "html", "float", "str", "var", "int", "else", "if", "for", "start" };int start = 0;int end = 16;int index = (rand() % (end - start)) + start;ERR_PRINT(vformat("Blah: %d", index));String should = typing_text_input_should->get_text();if (should == p_term) {typing_text_input_should->set_text(arr[index]);typing_text_input->set_text("");}if (should.count(should) < p_term.count(p_term)) {}

下一步开始研究加工车间的面板,虽有难度,但也有挑战。加油吧

我们的目标你也来看一下吧

元宇宙汽车人变形

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

13、ffmpeg使用nvidia显卡对OAK深度相机进行解码和编码

基本思想&#xff1a;简单使用nvidia的硬件解码进行oak相机的编码和解码学习 一、在本机rtx3060配置好显卡驱动和cuda之后进行下面操作50、ubuntu18.04&20.04CUDA11.1cudnn11.3TensorRT7.2/8.6Deepsteam5.1vulkan环境搭建和YOLO5部署_ubuntu18.04安装vulkan_sxj731533730的…

README.md 文档使用 treer 生成树形项目结构

一、前言 前后端编写 README.md 文档的时候&#xff0c;常常需要描写项目的结构&#xff0c;使用 tree 命令生成的目录又不能忽略某个目录&#xff0c;不方便。后来我找到了可以忽略某些目录的 treer命令 &#xff0c;特此记录一下: 二、使用 treer 生成项目结构 全局安装tr…

Redis 基础知识和核心概念解析:探索 Redis 的数据结构与存储方式

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

攻略|如何成为Moonbeam收集人

Moonbeam与其他PoS机制EVM公链类似&#xff0c;仰赖节点的运营保持网络的顺利运行以及安全。Moonbeam作为同时兼容Substrate和以太坊API的开发平台&#xff0c;同以太坊主网相比仍存在差异。 在Moonbeam的生态中&#xff0c;节点运营者被称为收集人&#xff0c;负责收集来自Mo…

SQLite的应用

2023年7月27日 据我所知&#xff0c;使用了SQLite数据库的软件有&#xff1a; 火狐浏览器Joplin 火狐浏览器 火狐浏览器用SQLite数据库来存储历史记录、访问过的网址等。 Joplin Joplin是GitHub上一个很火的开源记事本软件&#xff0c; Joplin用SQLite来存储笔记里面的文…

Python-Go python模块与包 - GO问题 - GO容量测试

目录 go 模块与包复习&#xff08;Init函数 - go mod&#xff09; init函数有什么用&#xff1f;init函数是什么&#xff1f; go.mod文件是什么&#xff1f;有什么作用&#xff1f; python的模块与包 python中包的分类 1、内置模块&#xff1a;不需要安装&#xff0c;直接…

前端工作中常用 CSS 知识点整理

1.1文字溢出省略号 文字单行溢出: overflow: hidden; // 溢出隐藏 text-overflow: ellipsis; // 溢出用省略号显示 white-space: nowrap; // 规定段落中的文本不进行换行 多行文字溢出: overflow: hidden; // 溢出隐藏 text-overflow: …

C# 反汇编 dnSpy

反汇编工具&#xff1a;dnSpy 常见问题&#xff1a; 1、遇到反汇编结果为<PrivateImplementationDetails>&#xff0c;报错不能有尖括号。解决方法&#xff0c;在dnSpy中复制出这个类&#xff0c;就可以去掉尖括号去使用了。 2、componentResourceManager&#xff0c;…

Java电子招投标采购系统源码-适合于招标代理、政府采购、企业采购

功能描述 1、门户管理&#xff1a;所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含&#xff1a;招标公告、非招标公告、系统通知、政策法规。 2、立项管理&#xff1a;企业用户可对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0c;查看…

【简单认识MySQL主从复制与读写分离】

文章目录 一、MySQL主从复制1、配置主从复制的原因&#xff1a;2、主从复制原理1、 MySQL的复制类型2、 MySQL主从复制的工作过程;1、 MySQL主从复制延迟2、优化方案&#xff1a;3、 MySQL 有几种同步方式&#xff1a; 三种4、异步复制&#xff08;Async Replication&#xff0…

【宝藏系列】20个常用的Python技巧

【宝藏系列】20个常用的Python技巧 文章目录 【宝藏系列】20个常用的Python技巧&#x1f349;文末推荐【Python之光】 Python的可读性和简单性是其广受欢迎的两大原因&#xff0c;本文介绍20个常用的Python技巧来提高代码的可读性&#xff0c;并能帮助你节省大量时间&#xff0…

springboot整合ELK+kafka采集日志

一、背景介绍 在分布式的项目中&#xff0c;各功能模块产生的日志比较分散&#xff0c;同时为满足性能要求&#xff0c;同一个微服务会集群化部署&#xff0c;当某一次业务报错后&#xff0c;如果不能确定产生的节点&#xff0c;那么只能逐个节点去查看日志文件&#xff1b;lo…

工业自动化数据485采集网关支持modbus协议

S475/S475E系列是一种功能丰富的设备&#xff0c;支持多种通信方式和输入输出功能。以下是对其功能的详细介绍&#xff1a; 通信方式&#xff1a; S475/S475E系列支持多种通信方式&#xff0c;包括短信、RS485、语音拨号、GPRS/3G/4G无线数据网络四种告警方式。这意味着用户可…

菜鸟编程-python-面向对象

目录 Python 面向对象 面向对象技术简介 创建类 self代表类的实例,而非类 创建实例对象

AXI协议之AXILite开发设计(二)

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 二、AXI-Lite关键代码分析 1、时钟与…

营销系统积分数据库设计

营销系统总体数据-业务功能模型 在当今日益竞争的市场中&#xff0c;如何提高客户留存率和忠诚度&#xff0c;已成为各大企业迫切需要解决的问题。而积分商城/系统作为一种新型的营销方式&#xff0c;受到青睐。 积分商城/系统是指将用户在使用产品或服务时产生的积分&#xf…

X - Transformer

回顾 Transformer 的发展 Transformer 最初是作为机器翻译的序列到序列模型提出的&#xff0c;而后来的研究表明&#xff0c;基于 Transformer 的预训练模型&#xff08;PTM&#xff09; 在各项任务中都有最优的表现。因此&#xff0c;Transformer 已成为 NLP 领域的首选架构&…

mac m1 触控栏TouchBar功能栏异常

电脑可能在高温下运行时间过长&#xff0c;导致TouchBar之前正常显示的调整屏幕亮度与调整声音等功能的按钮均丢失&#xff0c;然后看了一眼键盘设置&#xff0c;设置也是正常的&#xff0c;已勾选显示功能栏 下面请看 如何在MacBook Pro&#xff08;macOS Monterey&#xff0…

基于Java+SpringBoot+vue前后端分离社区医院信息平台设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

Java实现微信支付

1.引入依赖 <dependency><groupId>com.github.wechatpay-apiv3</groupId><artifactId>wechatpay-java</artifactId><version>0.2.10</version> </dependency>2.创建预支付订单 import com.wechat.pay.java.core.Config; imp…