title: CocosCreator进阶实战第二部分:编码规范
date: 2019-12-20 12:00:00
摘要
代码规范的重要性不再赘述,所以第二部分文章内容为项目使用的编码规范并使用代码举例。
正文
版本说明
使用 CocosCreator 的 2.1.3 版本开发。 建议先下载完整项目工程,搭配文章“食用”!源码链接在文章最下方。
编码规范
使用小驼峰式为变量、属性、函数命名:
// 变量
static isDebug: boolean = true
// 函数
openTouch (): void {
this.node.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMove, this)
}
使用大驼峰式为枚举、类、接口命名:
// 枚举
export enum BulletType {
/** R 型子弹,圆的 */
R = 0,
/** M 型子弹,月牙 */
M = 1,
/** F 型子弹,花型 */
F = 2,
/** B 型子弹,爆破 */
B = 3
}
// 类
export default class BulletFactory extends cc.Component {
// ......
}
尽可能使用完整的单词拼写命名,做到名称即注释:
// 将子弹放入节点池,参数为子弹类型与数量
putBulletInPool (type: BulletType, num: number): void {
for (let i = 0; i < num; i++) {
this.bulletPools[type].put(cc.instantiate(this.bulletPrefab[type]))
}
}
// 根据类型、射击方向、速度这三个参数来创建一个子弹
createBullet (type: BulletType, dir: cc.Vec2, speed: number): cc.Node {
// ......
}
尽量使用 undefined,而不是 null:
// 局部变量
let bullet: cc.Node | undefined = undefined
// 声明属性
@property(cc.Node)
player: cc.Node | undefined = undefined
字符串使用双引号"str",而不是单引号’str’:
cc.director.loadScene("game")
语句后不加;作为结束,一行代码不能过长,缩进为4,合适的空格(函数名称后、类型声明符后、逻辑语句后、运算符左右与注释后一格等):
// 监听触摸移动
onTouchMove (event: cc.Event.EventTouch): void {
let delta = event.getDelta()
this.player.x += delta.x
this.player.y += delta.y
}
尽量使用 JSDoc 风格注释:
/**
* 在 min 与 max 之间随机小数
* @param {number} min
* @param {number} max
*/
static randomNumber (min: number, max: number): number {
return min + Math.random() * (max - min)
}
/** 子弹工厂 */
bulletFactory: BulletFactory | undefined = undefined
脚本文件夹
在 script 文件夹下放入对应场景名称的文件夹与工具类通用脚本,在各个场景文件夹下分类脚本。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xWM7spRR-1576852187278)(http://cdn.kuokuo666.com/20191217/res.png)]
结语
文章第二部分为编码规范,该规范可作为参考。规范自己就是方便自己与他人,我们下一部分分析子弹类的抽象。
O(∩_∩)O~~
源码地址