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

news2024/9/30 23:39:19

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

该脚本解决了普通玩家不充值也能玩下去的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年游戏主程一起学习设计模式

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1261470.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Pix2Struct的文档信息提取【DocVQA】

文档信息提取涉及使用计算机算法从非结构化或半结构化文档&#xff08;例如报告、电子邮件和网页&#xff09;中提取结构化数据&#xff08;例如员工姓名、地址、职务、电话号码等&#xff09;。 提取的信息可用于各种目的&#xff0c;例如分析和分类。 DocVQA&#xff08;文档…

yolov5检测(前向)输入视频输出(不在图上画标签形式的原)图片的方法,及设置每隔几帧保存的方式(不每帧保存减少重复)

这些天我忽然有个需求&#xff0c;要更新迭代一个场景的检测模型&#xff0c;甲方爸爸提供的新数据集是监控视频形式的(因为拍视频确实更加的方便)&#xff0c;而我训练模型确实要标注好的图片形式。 根据这些条件的话&#xff0c;思路应该是要这样的&#xff1a;首先使用现有的…

EfficientViT:高分辨率密集预测的多尺度线性注意

EfficientViT: Multi-Scale Linear Attention for High-Resolution Dense Prediction 1、介绍2、方法2.1 多尺度线性注意模块2.1.1 启用全局接收域与ReLU线性注意2.1.2 解决ReLU线性注意力的局限性。 2.2 EfficientViT架构2.2.1 骨干2.2.2 头部 3、实验 贡献&#xff1a; 1、我…

【心得】XXE漏洞利用个人笔记

XML中关于DTD类型(内部(SYSTEM)的和外部(PUBLIC)的区别) xxe的利用 XML Entity 实体注入 当程序处理xml文件时&#xff0c;没有禁止对外部实体的处理&#xff0c;容易造成xxe漏洞 危害 主流是任意文件读取 XML 文件 一般表示带有结构的数据 祖父 3个叔父 8个堂弟堂妹 …

聚观早报 |魅族21搭载超声波指纹2.0;华为长安成立新公司

【聚观365】11月28日消息 魅族21搭载超声波指纹2.0 华为长安成立新公司 OPPO Reno11 Pro本周首销 淘宝天猫推出系列AI工具 长城汽车计划全面进入欧洲市场 魅族21搭载超声波指纹2.0 魅族官方此前已宣布&#xff0c;将于11月30日召开“2023魅族秋季无界生态发布会”&#x…

【JavaScript】封装自己的JavaScript公共工具函数,并上传到npm中 进行下载

js公共方法封装方式都有哪些 全局函数 function greet(name) {console.log("Hello, " name "!"); }greet("Alice"); // 调用全局函数对象字面量 var utils {add: function(a, b) {return a b;},subtract: function(a, b) {return a - b;}…

几何教学工具 Sketchpad几何画板 mac软件特色

Sketchpad几何画板 for Mac是一款适用于macOS系统的几何教学工具&#xff0c;用户可以在其画板上进行各种几何图形的绘制、演示&#xff0c;帮助教师了解学生的思路和对概念的掌握程度。此外&#xff0c;Sketchpad更深层次的功能则是可以用来进行几何交流、研究和讨论&#xff…

在Spring Boot中隔离@Async异步任务的线程池

在异步任务执行的时候&#xff0c;我们知道其背后都有一个线程池来执行任务&#xff0c;但是为了控制异步任务的并发不影响到应用的正常运作&#xff0c;我们需要对线程池做好相关的配置&#xff0c;以防资源过度使用。这个时候我们就考虑将线程池进行隔离了。 那么我们为啥要…

C#,数值计算——插值和外推,径向基函数插值(RBF_interp)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 径向基函数插值 /// Object for radial basis function interpolation using n points in dim /// dimensions.Call constructor once, then interp as many times as desir…

绝地求生:胜者组赛事强度再刷新,17即将晋级,NH闯地狱副本!

2023PGC胜者组赛终于在昨日打响&#xff0c;PCL战队17和Tianba各吃鸡&#xff0c;17更是以接近场均11分的高水准发挥确立了自己的优势。 胜者组再次让选手和观众体会到了不同的赛事强度&#xff0c;特别是艾伦格&#xff0c;未能吃到圈型的队伍最后只能轧点博取机会&#xff0c…

LangChain 13输出解析Output Parsers 自动修复解析器

LangChain系列文章 LangChain 实现给动物取名字&#xff0c;LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储&#xff0c;读取YouTube的视频文本搜索I…

Sass 语法详细介绍

文章目录 前言SASS缩进语法SASS的语法差异多线选择器注释import Mixin指令已弃用的语法后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;Sass和Less &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正…

机器态势感知中的注意力机制

输入矢量x是原始的输入数据&#xff0c;而q、k、v是通过对x进行线性变换得到的新的表示。q、k、v是通过对x分别乘以三个矩阵Wq、Wk、Wv得到的&#xff0c;其中Wq、Wk、Wv是通过学习得到的参数矩阵。这些参数矩阵通过模型训练过程中的反向传播算法来更新&#xff0c;以使得模型能…

振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(4)

注解目录 1、znFAT 的起源 1.1 源于论坛 &#xff08;那是一个论坛文化兴盛的年代。网友 DIY SDMP3 播放器激起了我的兴趣。&#xff09; 1.2 硬盘 MP3 推了我一把 &#xff08;“坤哥”的硬盘 MP3 播放器&#xff0c;让我深陷 FAT 文件系统不能自拔。&#xff09; 1.3 我…

新疆大学与优艾智合机器人成立联合创新实验室

11月22日至24日&#xff0c;第五届中国工业互联网大赛新疆赛站决赛在新疆维吾尔自治区昌吉回族自治州昌吉市举行。在大赛中崭露头角的优秀解决方案&#xff0c;将为绿色工厂、绿色园区、绿色供应链等建设提供新的动能&#xff0c;促进工业绿色发展。 作为大赛的成果延伸&#…

ESP32-Web-Server编程-建立第一个网页

ESP32-Web-Server编程-建立第一个网页 HTTP 简述 可能你每天都要刷几个短视频&#xff0c;打开几个网页来娱乐一番。当你打开一个网络上的视频或者图片时&#xff0c;其实际发生了下面的流程&#xff1a; 其中客户端就是你的浏览器啦&#xff0c;服务器就是远程一个存放视频或…

线性表的逻辑结构

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 只有靠自己的毅力忍耐&#xff0…

详解混合整数二次规划 (MIQP) 投资组合优化问题--附Matlab和Python实现

&#x1f517; 运行环境&#xff1a;Matlab、Python &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&am…

sqli-labs靶场详解(less11-less16)

目录 less-11 less-12 less-13 less-14 less-15 less-16 提交参数后 动态参数不存在url中 存在于post表单中 于是在表单中进行注入点测试 先看一看这种提交数据的关卡输入提交后会有什么反应 unameadmin&passwdadmin&submitSubmit 输出 usernameadmin passwordadmin un…

基于mpvue实现的cnode社区demo(附精选源码32套,涵盖商城团购等)

社区类目没有开放给个人开发者&#xff0c;所以没能上线。 预览 项目配置文件&#xff0c;更改appid {"description": "项目配置文件","setting": {"urlCheck": true,"es6": false,"postcss": false,"minif…