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

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

godot源码增加打字练习的demo

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

cpp 复制代码
	//第一排 显示文本  计时器 已完成个数  重新开始按钮
	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); 

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

cpp 复制代码
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)) {

	}

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

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

元宇宙汽车人变形

相关推荐
Wanda12147 小时前
机器人与机电一体化3D数字孪生机器-Day5
人工智能·unity·游戏引擎·数字孪生
淡海水1 天前
05-02-源码-Boehm GC标记阶段
算法·unity·c#·游戏引擎·gc
淡海水1 天前
05-03-源码-Boehm GC分配与碎片管理
开发语言·算法·unity·c#·游戏引擎·gc
xiaogai_gai5 天前
BOM 物料清单同步实战:金蝶云星空 → 四化智造 MES 修改场景深度拆解
unity·游戏引擎
/**书香门第*/5 天前
Cocos Creator 打螺丝游戏的实现
游戏引擎·cocos2d·螺丝·打螺丝
mxwin7 天前
Unity Shader 光线追踪原理与实战案例
unity·游戏引擎
xcLeigh8 天前
Unity基础:Instantiate实例化——在运行时动态创建游戏物体
游戏·unity·游戏引擎·教程·instantiate
辻弋20114 天前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
狂野小白兔15 天前
AI游戏制作04——Codex 搭配 Godot MCP 全流程教程
人工智能·游戏·godot
淡海水18 天前
02-02-原理篇-分代GC
算法·unity·c#·游戏引擎·.net·gc