CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

黑曜毁灭者
• 阅读 150

点击上方<font color=blue>亿元程序员</font>+关注和<font color=orange>★</font>星标

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

引言

CocosCreator3.8如何调试引擎源码?

大家好,平时我们在游戏开发中,总是擅长编写一些或大或小的Bug

每当Bug出现时,我们会回去看我们的代码,简单地看一下有没有逻辑问题或者拷贝错误。

简单看一眼没办法解决时,我们就会借助调试工具,进行断点调试。

但是当我们断点跟进问题跟到引擎的源码时,或者我们不懂得使用某些API时,需要调试引擎源码,那我们应该怎么操作?

本文重点介绍一下CocosCreator3.8如何调试引擎源码,如果对您或者其他人有帮助,建议转发、收藏、点赞和在看

1.什么是断点调试?

断点调试是一种在软件开发和调试过程中用于诊断和修复代码错误的方法。

通过设置断点,开发者可以在程序运行到特定位置时暂停执行,并检查程序的状态(如变量的值、内存、堆栈信息等),从而帮助识别和解决问题。

我们进行断点调试时的一些关键概念和步骤:

  1. 断点:断点是程序代码中的一个标记,用于指示调试器在此暂停执行。开发者可以在代码中的任何行设置断点,通常是在怀疑有问题或需要检查的地方。
  2. 启动调试器:使用调试器运行程序。调试器会按照正常方式运行程序,但在遇到断点时会暂停执行。
  3. 检查状态:当程序暂停时,开发者可以检查当前的程序状态,包括变量的值、调用堆栈、内存内容等。这有助于了解程序在特定时刻的行为。
  4. 单步执行:在断点处暂停后,开发者可以选择单步执行代码,即一步一步地执行代码行,观察每一步的效果。这可以帮助更详细地理解程序的执行流程。
  5. 继续执行:在检查和单步执行后,开发者可以选择继续执行程序,直到下一个断点或程序结束。
  6. 修改和重试:根据调试过程中发现的问题,开发者可以修改代码,然后重新运行调试器,验证修改是否解决了问题。

2.什么是引擎源码?

源码即源代码。是计算机软件的核心组成,通常我们是不可见的。

众所周知Cocos Creator是一个跨平台互动数字内容开发引擎,不仅是一款游戏开发工具,还是能满足全方位创作需求的开源引擎

开源引擎是一种软件,其源代码公开并且可以被自由使用、修改和分发。

开源引擎通常指的是开源的软件引擎,用于各种应用领域,比如游戏开发、图形渲染、物理模拟等。

开源的最大好处就是,我们可以翻看它的源码,跟进问题,了解底层实现,甚至还能够进行魔改、填坑。

3.CocosCreator3.8调试引擎源码实践

1.创建项目

首先,我们创建一个名叫DebugCocosCreator3.8.33D项目。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

2.拼UI

首先我们通过右键场景菜单创建->UI组件->Button(按钮)创建一个点击按钮。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

这样引擎就自动帮我们生成画布和在屏幕中间生成一个按钮。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

3.写代码

首先通过右键assets菜单创建->脚本(TypeScript)创建一个Btn.ts脚本。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

直接拖拽到按钮上。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

Cocos游戏开发中我们常用的代码编辑器是VSCode,需要小伙伴们提前去下载最新版,然后在菜单文件->偏好设置->程序管理器->默认脚本编辑器中进行关联。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

双击我们新建的脚本,会自动打开VSCode和我们的脚本,我们简单的给按钮添加一下点击事件。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

4.调试

想要VSCode中进行调试,我们需要在CocosCreator中进行简单配置,通过菜单开发者->Visual Studio Code 工作流->添加 Chrome debug配置添加编译任务完成设置。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

然后在代码左边打上断点,然后按下F5即可开启快乐的调试之旅。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

5.调试引擎源码

终于来到了关键部分,进度条还很长,大家坚持一下。

  • 方案一

在VSCode中,当我们想要了解一下引擎是如何给节点添加点击事件时,我们通过调试F11想跳进去看看源码,

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

发现无法跳转

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

解决这个问题,首先我们要先找到我们引擎的源码,通过我们的Cocos Dashboard->安装->对应引擎版本->在资源管理器中显示跳转。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

即可定位找到我们的引擎源码。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

然后在我们的项目根目录新建一个scripting文件夹。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

engine文件夹拷贝进去或者通过软连接的方式关联进去。

windows命令行进行软连接:
mklink /j E:\Work\Branch\COCOS\Debug\scripting\engine C:\ProgramData\cocos\editors\Creator\3.8.3\resources\resources\3d\engine 

执行效果如下:
CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

这样我们再次调试通过F11就可以成功跳转到源码啦。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

  • 方案二

以上方法是通过VSCode去进行调试源码的方法。觉得操作麻烦的可以直接通过下面的方式进行。

在浏览器预览中,点击右上角菜单三个点->更多工具->开发者工具或者快捷键Ctrl+Shift+l或者F12打开开发者工具。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

在左侧file://找到自己的源码,并在对应代码左侧打上断点。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

同样的通过断点调试和F11就可以进到我们的引擎源码。

CocosCreator都3.8了还有不会调试引擎源码的吗?安排!

结语

本周的分享到这里,如果对您或者其他人有帮助,建议转发、收藏、点赞和在看

评论区已开通,欢迎留下您宝贵的意见哦!

更多实用源码可通过阅读原文搜索"亿元程序员"获取。

我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《填色之旅》《方块掌机经典》《贪吃蛇掌机经典》《重力迷宫球》大家可以自行点击搜索体验。

实不相瞒,想要个在看!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐专栏:

知识付费专栏

你知道和不知道的微信小游戏常用API整理,赶紧收藏用起来~

100个Cocos实例

8年主程手把手打造Cocos独立游戏开发框架

和8年游戏主程一起学习设计模式

从零开始开发贪吃蛇小游戏到上线系列

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
ASMSupport教程4.7 生成关系运算符
<p在java中,关系运算符是很常用的,分别是&gt;,,&lt;,&gt;,&lt;,!这六种,我们按照惯例看看我们需要生成的代码:</p<divid"scid:9D7513F9C04C4721824A2B34F0212519:dfec0f1ca2ec4ebabc9b91c161fbfa47"class"wlWri
Stella981 Stella981
3年前
SpringBoot 2.0 系列002
SpringBoot2.0系列002运行流程分析SpringBoot2.0系列001入门介绍以及相关概念(https://my.oschina.net/lt0314/blog/1810336)1\.SpringBoot运行的几种方式
Wesley13 Wesley13
3年前
4,MongoDB 之 $关键字 及 $修改器 $set $inc $push $pull $pop MongoDB
MongoDB中的关键字有很多,$lt$gt$lte$gte等等,这么多我们也不方便记,这里我们说说几个比较常见的一.查询中常见的等于大于小于大于等于小于等于等于:在MongoDB中什么字段等于什么值其实就是":"来搞定比如"name":"路飞学城"!(https://oscimg.oschin
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Stella981 Stella981
3年前
200的大额人民币即将面世?央行:Yes!
点击上方蓝字关注我们!(https://oscimg.oschina.net/oscnet/2a1c2ac00bf54458a78c48a6c2e547d5.png)点击上方“印象python”,选择“星标”公众号重磅干货,第一时间送达!!(
Wesley13 Wesley13
3年前
BAT 鼎立格局被打破,2019 年这些互联网公司是程序员跳槽首选!
点击上方“程序员江湖”,选择“置顶或者星标”你关注的就是我关心的!!(https://oscimg.oschina.net/oscnet/3a919fd0b2b4441ea3f05371910126dd.jpg)作者:BOSS直聘来源:BOSS直聘作者:BOSS直聘(ID:bosszhipin),领
Wesley13 Wesley13
3年前
MongoDB 范围查询
查询价格在2009000  $gt 大于   $lt  小于//查询价格2009000范围的数据db.prodgory.find({"price":{$gt:"200",$lt:"9000"}})查询给定范围数据  $in//给定范围查询db.product1.find({"categor
小万哥 小万哥
1年前
资源描述框架的用途及实际应用解析
RDF(资源描述框架)是一种用于机器理解网络资源的框架,使用XML编写。它通过URI标识资源,用属性描述资源,便于计算机应用程序处理信息。RDF在语义网上促进信息的确切含义和自动处理,使得网络信息可被整合。RDF语句由资源、属性和属性值组成。RDF文档包括&lt;rdf:RDF&gt;根元素和&lt;rdf:Description&gt;元素,后者用about属性标识资源。RDF还支持容器(如&lt;Bag&gt;、&lt;Seq&gt;和&lt;Alt&gt;)来描述集合。RDFS是RDF的扩展,提供描述类和属性的框架,而达布林核心是一组预定义属性,用于描述文档。
小万哥 小万哥
1年前
RSS 解析:全球内容分发的利器及使用技巧
RSS(ReallySimpleSyndication)是一种XML格式,用于网站内容的聚合和分发,让用户能快速浏览和跟踪更新。RSS文档结构包括&lt;channel&gt;和&lt;item&gt;元素,允许内容创作者分享标题、链接和描述。通过RSS,用户可以定制新闻源,过滤不相关信息,提高效率。RSS支持不同版本,如RSS0.91和RSS2.0,其中RSS2.0语法简单且广泛使用。RSS提高网站流量,适用于新闻、博客、日历等频繁更新的站点。RSS的历史始于1997年,至今仍无官方标准,但已成为内容共享的重要工具。
黑曜毁灭者
黑曜毁灭者
Lv1
用无所谓的态度,过好随遇而安的生活
文章
4
粉丝
0
获赞
0