【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年游戏主程一起学习设计模式

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM执行引擎

目录 &#xff08;一&#xff09;执行引擎概述 &#xff08;二&#xff09;Java代码编译和执行过程 &#xff08;三&#xff09;机器码&#xff0c;指令&#xff0c;汇编语言&#xff0c;字节码 1、机器码 2、指令 3、指令集 4、汇编 5、字节码 &#xff08;四&#x…

一、Oceanbase基础

一、集群相关概念 集群&#xff1a;整个分布式数据库。Region&#xff1a;表示区域&#xff0c;是地域的逻辑概念&#xff0c;如1个城市&#xff0c;1个集群可以有多个Region&#xff0c;用于跨城市远 距离容灾。Zone&#xff1a;表示分区&#xff0c;是机房或机架的逻辑概念…

深度学习【二】

1.运行时错误 1.1 ModuleNotFoundError: No module named ‘torch_scatter’ 参考 https://blog.csdn.net/weixin_42421914/article/details/132875571 pip install --no-index torch-scatter -f https://pytorch-geometric.com/whl/torch-1.13.1%2Bcpu.html

某思路等考通一级MSOffice的分析

看到有朋友寻求2021版的等级考试一级软件&#xff0c;秉承授人以鱼不如授人以渔的理念&#xff0c;特写这个帖子。 某思路等考通一级MSOffice&#xff0c;版本6.5。 用到的软件&#xff0c;ScanId&#xff0c;de4dot,dnSpy。 第一步&#xff1a;分析 软件启动后有在线激活提示&…

华为云CDN刷新与查询余量的Go实现及在Jenkins中的部署

引言 在华为云上&#xff0c;对CDN缓存内容进行刷新是一个常见的需求&#xff0c;以确保最新的内容能尽快被用户访问到。通过使用Go语言&#xff0c;我们可以开发一个自动化的工具来实现这一需求&#xff0c;并将其集成到Jenkins中以实现持续部署。下面我们将分步骤讲解如何实…

MySQL递归查询:洞悉数据的层层关联

在处理关系型数据库时&#xff0c;我们经常会遇到这样的情况&#xff1a;某些数据之间存在层级关系&#xff0c;例如目录、组织结构、评论等。在这些场景下&#xff0c;我们需要一种灵活的查询技术来处理这种层级关系。今天我们就来探讨MySQL中的递归查询&#xff0c;体验其独特…

ThinkPHP6学生选课管理系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP6学生选课管理系统 一 介绍 此学生选课管理系统基于ThinkPHP6框架开发&#xff0c;数据库mysql8&#xff0c;前端bootstrap。系统角色分为学生&#xff0c;教师和管理员。学生登录后可进行选课&#xff0c;教师登录后可查看选课情况…

Android : 获取、添加、手机联系人-ContentResolver简单应用

示例图&#xff1a; MainActivity.java package com.example.mygetdata;import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat;import android.Mani…

图书管理系统源码,图书管理系统开发,图书借阅系统源码四TuShuManager应用程序MVC视图View

Asp.net web应用程序MVC之View视图 .ASP.NET MVC页面也就是要说的视图基本被放在Views文件夹下&#xff1b; 2.利用APS.NET MVC模板生成框架&#xff0c;Views文件夹下的默认页面为.cshtml页面&#xff1b; 3.ASP.NET MVC默认页面为Razor格式的页面&#xff0c;因此默认页面为.…

三、Lua变量

文章目录 一、变量分类二、变量赋值三、索引 一、变量分类 lua变量分为全局变量&#xff0c;局部变量。 全局变量&#xff1a;默认&#xff0c;全局有效。 局部变量&#xff1a;从作用范围开始到作用范围结束&#xff0c;需加local 修饰。 a1function ff()local b1 endprint(a…

spring boot的redis连接数过多导致redis服务器压力过大的一次问题排查

一、背景 在今天上午的时候&#xff0c;突然收到大量的sentry报错&#xff0c;都是关于redis连接超时的警告。 首先想到的是去查看redis的监控&#xff0c;发现那个时间段&#xff0c;redis的请求数剧增&#xff0c;cpu使用率和带宽都陡增双倍。 下面的是redis监控的cpu情况 …

Module build failed: Error: ENOENT: no such file or directory

前言 这个错误通常发生在Node.js 和 vue,js项目中&#xff0c;当你试图访问一个不存在的文件或目录时。在大多数情况下&#xff0c;这是因为你的代码试图打开一个不存在的文件&#xff0c;或者你的构建系统&#xff08;例如Webpack&#xff09;需要一个配置文件&#xff0c;但找…

程序员为什么要一直坚持写博客

shigen日更文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 今天的文章其实说和技术有关系也没有什么问题&#xff0c;算起来我日更文章已经快四个月了&#xff0c;从最初的…

四、Lua循环

文章目录 一、while(循环条件)二、for&#xff08;一&#xff09;数值for&#xff08;二&#xff09;泛型for&#xff08;三&#xff09;repeat util 既然同为编程语言&#xff0c;那么控制逻辑里的循环就不能缺少&#xff0c;它可以帮助我们实现有规律的重复操作&#xff0c;而…

洗地机应该怎么选?希亦、必胜、米博、添可、小米洗地机实测推荐

作为一个常年测评智能家居的博主&#xff0c;关于洗地机的测评使用这些年也积累了不少的体验感受。以至于常被周边的朋友问到&#xff0c;洗地机到底是不是真的好用&#xff1f;洗地机有什么优点吗&#xff1f;选购的时候应该怎么选呢&#xff1f;洗地机什么牌子比较好呢&#…

.NET6实现破解Modbus poll点表配置文件

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !序言 Modbus 协议是工控领域常见…

Elasticsearch:什么是非结构化数据?

非结构化数据定义 非结构化数据是指未按照设计的模型或结构组织的数据。 非结构化数据通常被归类为定性数据&#xff0c;可以是人类或机器生成的。 非结构化数据是最丰富的可用数据类型&#xff0c;经过分析后&#xff0c;可用于指导业务决策并在许多其他用例中实现业务目标。…

2015年五一杯数学建模B题空气污染问题研究解题全过程文档及程序

2015年五一杯数学建模 B题 空气污染问题研究 原题再现 近十年来&#xff0c;我国 GDP 持续快速增长&#xff0c;但经济增长模式相对传统落后&#xff0c;对生态平衡和自然环境造成一定的破坏&#xff0c;空气污染的弊病日益突出&#xff0c;特别是日益加重的雾霾天气已经干扰…

Node.js入门指南(五)

目录 MongoDB 介绍 下载与启动 命令行交互 Mongoose 代码模块化 图形化管理工具 hello&#xff0c;大家好&#xff01;上一篇文章我们介绍了express框架&#xff0c;这一篇文字主要介绍MongoDB。来对数据进行存储以及操作。 MongoDB 介绍 各位小伙伴应该多多少少都有接…