Skip to content

youyou233/su_story_master

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cocoscreator 合作开发规范

命名规范

1. 项目名称

采用全部小写+下划线方式

eg : su_story_origin

2. 编辑器内节点、文件夹名、文件名命名规范

采用首字母大写驼峰命名

eg:PreStartPage、GameController、Scripts、CardPrefab

3. 脚本中

  1. 函数命名:采用首字母小写驼峰命名,必须能完整描述作用,用动词开头

eg : onGameOver、getGameData、updatePlayerPosition

  1. 变量命名:采用首字母小写驼峰命名,必须能完整描述作用,用修饰词开头
  2. 常量命名:采用全大写的命名,且单词以_(下划线)分割

eg : MONSTER_MAX_NUM=10

  1. (私有)专有属性:采用首字母小写驼峰命名,必须在名称前加_(下划线)

eg :

init(controller){  
this._controller=controller  
}

常用git操作

项目使用git托管代码

特别注意:开始编码前和上传代码前务必先git pull从远程代码库拉取最新代码。

git常用命令

git add .将修改增加的代码提交暂存处

git commit -m 'commit message'提交暂存处代码到本地版本库

git commit -am 'commit message'将上面两个操作合并为一个(只限文本修改)

git push提交本地代码到远程分支

git branch查看当前git分支

git checkout branchName切换当前分支到branchName分支

git pull拉取远程分支内容更新本地分支

脚本规范

1. 入口文件尽量不要包括具体的逻辑

  • 入口文件指 controller游戏系统控制器 文件,它们是整个游戏的入口或者单个整块的游戏系统的入口。
  • controller 尽量不要包含具体的逻辑,它们的主要职责是描述游戏大体的框架,以及指派具体工作给其他组件。
  • 若加入新的组件,先思考是某个组件的子组件还是全局组件,不要把子组件放在 controller 中。
  • 全局组件请requirecontroller中,其他组件若想使用全局组件时,获取controller即可使用全局组件。

2. 代码简洁,逻辑分明

  • 单个脚本文件代码量(包括注释),不许超过250行。
  • 脚本之间最好只调用公共函数和读取属性,不要去修改其他脚本的属性。

2. 开放接口,封闭实现

  • 面向对象编程的一个原则称为开放-封闭原则,简称OCP(Open-Closed Principle)。
  • 意即对扩展开放,对修改关闭。
  • 别的同学在使用你写的组件时,应该只要知道你的组件有哪些接口、如何调用就好,而无须关心你具体代码是怎么写的。
  • 你写的每一个 class ,都应该时刻为他人着想,考虑他人如何调用你的组件最方便。宁可自己多写点代码,也不要把麻烦留给他人。
  • 即使是只给自己用的 class,也应该尽力遵守这个OCP原则,这是程序员的基本功。

3. 使用 JSDoc 规范添加注释

  • JSDoc 官方手册(英文)
  • JSDoc 中文参考手册
  • /** 开头(有两个星号),另起一行,然后每行以 *(一个空格、一个星号、再一个空格)开头,最后一行以 */ (空格、星号、斜杠)结束
  • 在每个 ts 文件开头必须添加文件注释。
    • 必须项:@file(文件描述)@author(作者名字或昵称)@date(文件创建日期)
    • 可选项:@description(更详细的文件描述),此外还可以自由添加更多注释项(参考 JSDoc 手册)。
/**
 * 主控制器
 * @file 整个游戏的入口脚本
 * @author uu
 * @date 2018/12/15
 */
  • 在每个 function 和每个带有 publicexport 光环的变量、方法、接口、函数等,开头都必须添加注释。
    • 注释第一行写上描述。
    • 必须项(若有参数): @param {type} name - description,参数类型和说明,每个参数一行。
    • 必须项(若有返回值): @returns {type} description
    • 若是在别人创建的文件里添加 function,建议针对你的 function 单独加上 @author 留下你的大名(以及时间 @date)。
    • 鼓励自由发挥添加更多注释,但请尽量地遵守 JSDoc 规范。
    • 示例:
/**
 * 读取存档
 * @param {string} id - 存档号
 * @returns {string} 获得的存档
 * @author uu
 * @date 2018/12/15
 */
getLoadById(id){
    //XXXXXXXX
    return {}
};
  • class 可以不用添加注释,因为我们规定,每个文件应该只包含一个 class。请在文件开头使用 @file@description (可选) 注释 class 的用途。

视图层级(单场景)

  1. canvas层
    • 用于存放各个页面,并在canvas层上挂在page脚本控制各个页面的开关。
  2. camera层
  3. 脚本层
    • 纯粹用于挂在脚本
  4. UI层
    • UI层应该与游戏场景层分开,并且有专门的脚本控制

文件夹目录

├─Animation
├─Component  //组件文件夹 js和prefab放在一起
│  │  
│  ├─Audio
│  │      Audio.js
│  │      
│  ├─Dialog
│  │      Dialog.js
│  │      
│  └─Page
│          Page.js
│          
├─Image
├─Prefab
└─Script  //脚本文件
    │  
    ├─Data //游戏数据和全局数据
    │      Action.js
    │      GlobalData.js
    │      MonsterData.js
    │      StatusData.js
    │      
    ├─Main //主控制器
    │      CombatJudgment.js
    │      Controller.js
    │      Game.js
    │      
    └─Original //其他脚本 
            AI.js
            Card.js

About

一个历史遗留半路夭折的类卡牌游戏

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published