当前位置: 首页 > news >正文

【100个Cocos实例】编码不规范,接手泪两行...

点击上方亿元程序员+关注和星标。

该脚本解决了普通玩家不充值也能玩下去的Bug

引言

规范编码,从文件头部注释规范做起。

头部注释规范是一种在代码文件开头添加注释信息的做法,通常用于描述文件的基本信息、作者、创建日期、修改历史等。

这有助于团队成员更好地理解和维护代码。

本文将介绍一下在Cocos游戏开发中如何更方便地添加文件头部注释

1.亲身经历

不知道小伙伴们有没有这样的两种经历

第一种是在Cocos2.X的项目开发中,我们每次在Creator中创建一个新脚本的时候,如下图:

新建脚本的指引

都会有一些我们不需要的一些内容生成,如顶部的一些学习导航、中间默认的cc.Labelstring属性,还有我们可能会用到的onLoadupdate方法。每次我们都需要手动去删掉这些内容,对于有强迫症的小伙伴来说,真是苦不堪言

苦不堪言

第二种则是在Cocos3.X的项目开发中,官方也算是考虑到强迫症的我们,新创建的脚本非常整洁,只有startupdate方法,而且还非常贴心地帮我们把组件的名字修改成与创建时一致

但是万万没想到,项目为了规范,必须要我们在头部添加注释规范。想起一句话:“上帝为你开了一扇窗,必定会关掉你的门”。

上帝为你开了一扇窗,必定会关掉你的门

那么问题来了,如何解决上述问题?

2.修改默认模板

其实引擎在为我们生成新的脚本的时候,都会遵循一个默认的模板,因此只要我们找到这个模板,我们就可以通过修改它达到我们想要的目的

1.安装目录

首先我们可以打开我们的仪表板Cocos Dashboard,在里面我们可以清楚地看到我们电脑上安装的所有的Cocos版本:

有没有觉得比Unity的好用

然后我们可以通过引擎右边的···选择在资源管理器中显示打开我们Cocos安装到的目录,然后找到我们的模板文件:

Mac版本的大致相同,这里不做介绍

2.x版本的模板文件目录如下:

resources\static\template

漂流过海来看你

3.x版本的模板文件目录如下:

resources\resources\3d\engine\editor\assets\default_file_content

翻山越岭如履平地

2.修改模板内容

2.x版本我们打开模板文件new-script.ts,可以看到它和我们上面生成的脚本一模一样,所以它仅仅只是把模板文件帮我们拷贝到项目里面去:

原来逼死强迫症的最后一根稻草长这样

因此我们只需要把我们不需要默认生成的内容删掉,或者我们想要它默认生成的内容添加上去即可:

舒服多了

3.x版本我们打开模板文件ts,可以看到它我们上面生成的脚本也差不多一致

太过整洁了

唯一不同的地方是上面有<%UnderscoreCaseClassName%>字样,这是帮我们自动修改组件名的关键,下面有相关的介绍:

内有乾坤

简单介绍一下主要包含几种动态生成的数据,写入下面的内容,系统会自动帮忙动态替换成具体的内容

  • <%UnderscoreCaseClassName%>:下划线类名,这个和新建的类名一致。
  • <%CamelCaseClassName%>:驼峰类名,这个会自动帮我们把类名首字母大写。
  • <%Author%>:作者,我们Cocos登陆的用户名。
  • <%DateTime%>:日期,当前时间。
  • <%FileBasename%>:文件名,创建的脚本文件的名字。
  • <%FileBasenameNoExtension%>:文件名(无后缀),创建的脚本文件的名字(无后缀)。
  • <%URL%>:url,指向assets。
  • <%ManualUrl%>:帮助文档url,指向帮助文档链接。

最终修改如下,使用到了动态文件名、作者和时间

舒服多了

一般文件头部应该要注释哪些内容?

3.文件头部注释规范

以下是一些常见的头部注释规范元素及其解释

  • Copyright:版权信息,可以是公司或者个人。
  • File name:文件名,脚本/组件的文件名。
  • Description:描述,脚本/组件的功能描述或者其他的一些相关介绍。
  • Author:作者,脚本/组件的作者。
  • Version:版本,脚本/组件修改迭代的版本。
  • Date:日期,一般是脚本/组件的完成日期,也可以是开始日期。
  • History:历史,修改历史记录列表,每条修改记录应包括修改日期、修改者及修改内容简述。

4.效果演示

2.x版本的效果演示如下:

头部注释规范,从2.x做起

3.x版本的效果演示如下:

头部注释规范,从3.x做起

结语

时间宝贵,只有极致地减少流水线工作,才有更多时间去做我们要做的。

在哪里可以看到如此清晰的思路,快跟上我的节奏!关注我,和我一起了解游戏行业最新动态,学习游戏开发技巧。

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

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

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

推荐专栏:

你知道王者荣耀是怎么实现技能范围指示器的吗?

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

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

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

点击下方绿色按钮+关注。

相关文章:

  • Spring Cloud+Nacos 注册中心详解及开发示例
  • web:[WUSTCTF2020]朴实无华
  • Spring Boot 实现 PDF 水印,实战来了!
  • C语言基础篇5:指针(二)
  • leetcode42接雨水问题
  • 淼一科技为互联网企业销毁硬盘数据 拆除机房设备
  • C++学习之路(九)C++ 用Qt5实现一个工具箱(增加一个JSON数据格式化功能)- 示例代码拆分讲解
  • 正则表达式例题-PTA
  • 工厂模式-
  • Day43力扣打卡
  • Windows平台下的oracle 11G-11.2.0.4补丁升级操作指南
  • 如何在 Vim 中剪切、复制和粘贴
  • 面试笔记--Linux常用命令
  • LVS-DR实验
  • Cesium 展示——地球以及渲染数据导出(下载)为图片或 pdf
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • October CMS - 快速入门 9 Images And Galleries
  • PAT A1092
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • scrapy学习之路4(itemloder的使用)
  • Vue.js源码(2):初探List Rendering
  • Xmanager 远程桌面 CentOS 7
  • 笨办法学C 练习34:动态数组
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 关于for循环的简单归纳
  • 免费小说阅读小程序
  • 目录与文件属性:编写ls
  • 我与Jetbrains的这些年
  • 一些css基础学习笔记
  • - 转 Ext2.0 form使用实例
  • ionic入门之数据绑定显示-1
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ​如何在iOS手机上查看应用日志
  • ###C语言程序设计-----C语言学习(3)#
  • #{} 和 ${}区别
  • #DBA杂记1
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (2)Java 简介
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)基于IDEA的JAVA基础12
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)Scala的“=”符号简介
  • .bashrc在哪里,alias妙用
  • .net 微服务 服务保护 自动重试 Polly
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET性能优化(文摘)
  • .NET运行机制
  • @ModelAttribute使用详解
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限