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

这篇具有很好参考价值的文章主要介绍了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)) {

	}

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

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

元宇宙汽车人变形文章来源地址https://www.toymoban.com/news/detail-616023.html

到了这里,关于godot引擎c++源码深度解析系列二的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GODOT游戏引擎简介,包含与unity性能对比测试,以及选型建议

    GODOT,是一个免费开源的3D引擎。本文以unity作对比,简述两者区别和选型建议。由于是很久以前写的ppt,技术原因视频和部分章节丢失了。建议当做业务参考。 GODOT目前为止遇到3个比较重大的机遇,第一个是oprea的合作奖,第二个是用支持c#换来的微软的投资,第三个是虚幻

    2024年02月14日
    浏览(88)
  • 使用js原生customElements.define()API 实现类似godot游戏引擎的colorRect类

    一共有两个方案,一个是基于div和css的dom渲染,一个是基于canvas的硬件绘图

    2024年02月08日
    浏览(65)
  • Godot引擎 4.0 文档 - 入门介绍 - Godot简介

    本文旨在帮助您确定 Godot 是否适合您。我们将介绍该引擎的一些广泛功能,让您了解使用它可以实现什么,并回答诸如“我需要了解什么才能开始使用?”等问题。 这绝不是详尽的概述。我们将在本入门系列中介绍更多功能。 Godot 是一个通用的 2D 和 3D 游戏引擎,您还可以

    2024年02月05日
    浏览(78)
  • Flutter游戏引擎Flame系列笔记 - 1.Flame引擎概述

    Flutter游戏引擎Flame系列笔记 1.Flame引擎概述 - 文章信息 - Author: 李俊才(jcLee95) Visit me at: https://jclee95.blog.csdn.net Email: 291148484@163.com. Shenzhen China Address of this article: https://blog.csdn.net/qq_28550263/article/details/132119035 【介绍】:本文介绍Flame引擎安装和该模块的整体信息。 上一节:《

    2024年02月14日
    浏览(34)
  • 如何制作自己的C++游戏引擎

    你想了解更多关于游戏引擎的知识、并自己来写一个吗? 这可是非常牛皮的一件事。为了帮助你学习,这里有一些C++库和依赖项的推荐,可以帮助你快速上手。 游戏开发一直是我的学生学习更高级计算机科学主题的好帮手。我的一位导师Sepi博士曾经说过: “有些人认为游戏

    2023年04月08日
    浏览(45)
  • Godot引擎 4.0 文档 - 手册 - 最佳实践

      本系列是一系列最佳实践,可帮助您高效地使用 Godot。 Godot 在构建项目代码库并将其分解为场景方面提供了极大的灵活性。每种方法都有其优点和缺点,在您使用该引擎足够长的时间之前,很难权衡它们。 总是有很多方法来构建代码和解决特定的编程问题。不可能在这里

    2024年02月09日
    浏览(53)
  • 如何使用现代C++特性构建游戏引擎

    游戏引擎是用来设计、开发和构建计算机游戏的软件框架。它们由一些基本的工具和程序构成,可帮助游戏设计师和开发者轻松地创建、管理和优化游戏。基本上,游戏引擎是实现游戏的所有技术的一个集合。 现代C++(指C++11、C++14和C++17)为游戏引擎的开发提供了强大的功能

    2024年02月05日
    浏览(50)
  • 深度解析 Bing 搜索引擎的排名因素与算法

    自从和ChatGPT搞上了,Bing在搜索引擎界就像是新晋的网红,风头一时无两。 搜索引擎的排名算法是确定搜索结果排名的核心,每个搜索引擎都有其独特的排名规则和算法。Bing作为全球第二大搜索引擎,其排名因素和算法同样至关重要。在本文中,九凌网络将详细探讨Bing的排

    2024年02月07日
    浏览(88)
  • 论文解析-基于 Unity3D 游戏人工智能的研究与应用

    这段代码是一个重写了 AgentAction 方法的方法。以下是对每行代码解释: ①public override void AgentAction(float[] vectorAction) 这行代码声明了一个公共的、重写了父类的 AgentAction 方法的方法。它 接受一个 float 类型的数组作为参数。 ② float newAction0 = Mathf.Clamp(vectorAction[0], -1, 1); 这行代

    2024年02月03日
    浏览(55)
  • flutter游戏引擎,1307页字节跳动Android面试全套真题解析火了

    我以为是HR一面,结果是技术,没想到啊,没想到! 1、描述Activity的生命周期。 2、描述一个Activity启动另外一个Activity的生命周期 3、Activity标签可以配置什么 4、IntentFilter里面的标签可以干嘛 5、Service怎么启动 了解IntentService吗? 6、几大控件有 7、存储数据的方式有 8、Inte

    2024年03月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包