前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >源码阅读技巧

源码阅读技巧

作者头像
EchoROne
发布2022-08-15 08:32:20
6240
发布2022-08-15 08:32:20
举报
文章被收录于专栏:玩转大前端玩转大前端

本文是本人学习Cocos Creator、LayaAir、EgretWing 游戏引擎源码(包括渲染流程、资源加载、音频、图片、网络、动画等模块)总结出来的源码阅读技巧

一、看教程视频快速上手

起初刚接触 Cocos,快速上手的好方法就是开发一个有图片、文字、动画、音频的例子,本人是通过开发Flappy Bird 入门的,点了 2 倍速快速浏览视频教程,之后自己手敲代码,完成后成就感大也基本熟悉了Cocos的小游戏开发过程。之后小项目基本都可以上手了,需要额外的功能就查下 API 文档可以十分快速的熟悉并开发。

  • 以下是我开发的 demo

这是腾讯课堂的cocos 开发Flappy Bird 教程: https://ke.qq.com/course/56205, Cocos 文档:https://docs.cocos.com/creator/manual/zh/

二、结合 API 文档以及博客文章熟悉源码的 GitHub 项目架构

谷歌搜索Cocos 源码的 GitHub 项目,起初不清楚其有多个版本,因此看了cocos2d-x 的 C++版本的源码,之后看博客文章才清楚其 cocos2d-js 才是 js 版本的cocos creator引擎源码,位于其 engine 文件夹下,之后结合搜索对应js版本的cocos creator源码的分析文章,熟悉了调试过程以及大概了解了一些模块。

1. 梳理 Cocos Creator/engine 的目录结构

三、针对对应模块写 demo,chrome 调试流程

之后自己写对应模块的 demo,比如音频、帧动画、粒子动画、图片加载等用chrome单步调试相关加载过程、渲染过程

1. 先第一遍简单过下流程,可以通过堆栈信息查看函数调用

2. 第二遍找出渲染流程的入口文件所在位置,先查看相关目录 renderer 每个文件的作用,利用 vscode 可以查看文件的大纲,由函数名推导文件的作用,梳理出目录结构

3. 第三遍开始认真调试流程,阅读函数代码,先整体浏览梳理逻辑,思维导图搭好框架,之后梳理内部细节,输出文档

具体可查看本人的 cocos 源码分析文章:https://www.yuque.com/qiuchen-z6ajg/ks1fop/qpiub9#1b024ad2

四、向有经验的人请教

与他人交流最好是自己先有梳理过一遍代码,这样效率高一点,他人不同的角度有助于理解源码。比如导师指出引擎精华是看怎么兼容各平台调用底层 API,看适配过程有啥坑;粒子动画尝试了解怎么读取plist文件里的属性等。这些初学的人是难有这意识,通过向有经验的人请教可以进一步加深对源码的理解

五、看业界相关著名书籍加深理解

书籍往往是别人研究纪念沉淀的精华,比如看《游戏引擎架构》可以全面了解游戏引擎相关的知识,加深知识广度和深度

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、看教程视频快速上手
  • 二、结合 API 文档以及博客文章熟悉源码的 GitHub 项目架构
  • 1. 梳理 Cocos Creator/engine 的目录结构
  • 三、针对对应模块写 demo,chrome 调试流程
  • 1. 先第一遍简单过下流程,可以通过堆栈信息查看函数调用
  • 3. 第三遍开始认真调试流程,阅读函数代码,先整体浏览梳理逻辑,思维导图搭好框架,之后梳理内部细节,输出文档
  • 四、向有经验的人请教
  • 五、看业界相关著名书籍加深理解
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档