CocosCreator进阶实战第二部分:编码规范


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~~

源码地址

https://github.com/KuoKuo666/Alive

发布了120 篇原创文章 · 获赞 133 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/kuokuo666/article/details/103639542