团队做业2

  • 代码规范

    • a) 代码设计规范

      • 1.分不一样函数完成不一样的特定的任务

        代码编写过程当中,应该尽可能把要实现的功能分函数去写,每一个函数完成特定的一部分功能,即函数的功能就像邹欣老师说的那样——“只作一件事,而且要作好” !最后经过main函数把其余实现特定功能的函数整合起来。
      • 将功能分函数处理能够避免咱们在后续开发过程当中代码的重复书写,而形成结构混乱。并且这样作也有利于咱们逻辑清晰。

      • 2.使用goto达到函数惟一出口的目的

        这个我就不细说了,我不太同意这种观点,函数可使用if,else,else if,break,continue,或者其余布尔型变量来实现这个,使用过多的goto会下降代码可读性。
      • 3.经过添加“断言”的方式对参数进行验证

        程序要有能力去判断用户传入的参数是否正确,这就须要用到断言![在这学期以前,从没据说过什么断言!这学期,经过看这本书,才了解的。] 断言的使用,有利于更好的防止bug的发生,防患于未然!是一种一打一的好方法!
      • 4.异常处理

        一段代码的鲁棒性就体如今异常处理上,咱们要考虑清楚,除数是否为0,数组是否越界等等常见的错误,另外咱们须要注意,捕捉一场,是为了处理他,不要什么都不作就这样过去了!对异常进行必定处理,是代码具备鲁棒性才是咱们进行异常处理的目的。
        异常状况并不老是会发生,因此在进行异常处理时,还要考虑清楚它的时间开销空间开销,是否值得咱们去处理。
      • 5.类——class

        咱们都知道,一些面向对象的程序语言设计,如C++,java,都是基于类实现的。在类的设计上应该注意如下几点:
        考虑安全因素,数据成员要分清类别:public,private,protected
        数据成员若是声明成public是很危险的,用inline取而代之。 具体的用法请参加下面的博客
        java中public ,private,protected的区别
        C++中public,private,protected的区别
        Python中public,private区别
        ......
        构造函数
        构造函数中只对数据成员进行简单的初始化就行,不必执行过于复杂的操做,这个和上面1.是同样的,每一个函数只执行特定的功能。
        析构函数
        就好比,C语言指针必定要手动释放,析构函数有他要作的事——清理工做。
        拿不定主意的时候,用成员函数,避免使用运算符
        使用const关键字的对参数进行保护
        使用const将参数指向的数据声明成只读的,避免在没必要要的地方修改了这个数据。
    • b)代码风格规范——简单,易读,无二异性(这一部分,只是编写代码的习惯,并非硬性要求)

      • 1.变量命名

        函数或者参数的命名,除了要准寻命名规则外,还应该应该避免过多的描述,简单又能清晰地让队友知道变量的做用。尽可能避免表意不清的变量,如i,j,ilovefang等等,这种不能准确表达出变量做用的名字。咱们在开发过程当中遵循以上原则。
      • 2.使用下划线简短变量命名

        下划线的做用:用来分隔变量名字中的做用域标注和变量的语法,如m_name。 下划线也能够作前缀。我的理解:使用下划线去命名的目的,是为了防止变量命名太长太大,可读性差。
      • 3.变量命名还应该注意大小写

        对于有多个单词组成的变量名,除了可使用下划线来缩写之外,还可使用大小写来区分。例如:jumpduration,全小写不利于读写,这样:JumpDuration就好一些,还可使用jump_dura进行缩写处理。
      • 4.注释

        咱们都知道,程序——是给人看的,不仅仅仅是机器!这样,注释就显得必不可少了!在适当的地方添加适当的注释,又利于代码后期的维护和团队其余成员的理解。就好比:主函数中包含的其余函数,要注释他们是干什么的,即做用。
        但同时要注意,不该该过度添加注释,是当注释有利于代码理解,但过度注释就有些多余,起不到关键的做用。
      • 5.缩进

        使用Tab键代替2,4,8个空格,这也是一种隐形规范。
      • 6.使用括号标明优先级

        对于一个复杂的表达式,括号的使用显得颇有必要,就好比:++*i,这种就让人不太容易理解了,能够替换成"++(*i) ",这种一看就知道优先级的
      • 7.分行

        尽可能避免多行代码挤在一块儿的状况,对代码进行适度分行能提升代码可读性。
  • 团队项目的数据库设计和ER图

    • 咱们的大做业没有用到数据库,因此这一部分就省略不写了。 那你可能会有疑惑了?那大家的数据(就好比成绩)存在哪里?
    • 咱们设置了本地的一个存储变量——ScoreDisplay,在游戏玩家得分以后,一方面会及时的在玩家屏幕上显示成绩,另外一方面,会在本地保存一个成绩变量的副本,而且,播放相应的得分动画和得分音效。关于得分逻辑的相关js代码以下:
    gainScore:function (pos) {  
          this.score += 1;
          this.scoreDisplay.string = this.score.toString();
          cc.sys.localStorage.setItem("ScoreDisplay",this.scoreDisplay.string);
          var fx = cc.instantiate(this.scoreFXPrefab).getComponent('ScoreFX');
          this.node.addChild(fx.node);
          fx.node.setPosition(pos);
          fx.play();
          cc.audioEngine.playEffect(this.scoreAudio,false);
      },
  • 功能流程

    • 1.场景选择功能,提供5个场景,自由切换,一样的玩法却能带给你不同的体验
      html

    • 2.成绩计算功能。[内含一套独立的成绩计算逻辑]
      前端

    • 3.经过点击鼠标(若是您是在电脑上)或者手机屏幕(若是您用手机打开),使主角跳跃躲避障碍物
    • 4.这里给出咱们作的项目的二维码,固然,不是微信web开发者工具上的,那个必需要添加你为体验者权限才能使用,这里的二维码是cocos creator 上的项目二维码。使用以前请注意:确保您的手机网速稳定保持在200kb以上,通常使用流量是打不开滴,校园网还有一线但愿!能够尝试一下啊[嘻嘻]
  • 团队分工和贡献分

    姓名 任务 分工比例 贡献分
    刘宇莹 游戏逻辑和脚本代码编写人员 50% 10分
    孟鑫菲 游戏前端设计和测试人员 50% 10分
相关文章
相关标签/搜索