zoukankan      html  css  js  c++  java
  • 团队作业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个场景,**自由切换,同样的玩法却能带给你不一样的体验**。
    ![](https://images2018.cnblogs.com/blog/1283654/201806/1283654-20180618013337547-238984781.jpg)
    
    - **2.成绩计算功能**。[内含一套独立的成绩计算逻辑]
    ![](https://images2018.cnblogs.com/blog/1283654/201806/1283654-20180618013432458-1401276005.jpg)
    
    - 3.**通过点击鼠标(如果您是在电脑上)或者手机屏幕(如果您用手机打开),使主角跳跃躲避障碍物**
    - 4.这里给出我们做的项目的二维码,当然,不是微信web开发者工具上的,那个必须要添加你为体验者权限才能使用,这里的二维码是cocos creator 上的项目二维码。**使用之前请注意:确保您的手机网速稳定保持在200kb以上,一般使用流量是打不开滴,校园网还有一线希望!可以尝试一下啊[嘻嘻]**
    - ![](https://images2018.cnblogs.com/blog/1283654/201806/1283654-20180618015857427-920972666.jpg)
    
    • 团队分工和贡献分

    姓名 任务 分工比例 贡献分
    刘宇莹 游戏逻辑和脚本代码编写人员 50% 10分
    孟鑫菲 游戏前端设计和测试人员 50% 10分
  • 相关阅读:
    MongoDB
    前端框架之vue初步学习
    mysql再回首
    oracle之回顾二
    oracle再回首
    springboot之对之前的补充
    springCloud学习
    springboot-ssm的pom.xml
    MyCat
    11.Java反射机制 哦对了,前面的序号来自随笔关于编程之路的思索第一篇
  • 原文地址:https://www.cnblogs.com/inuyasha1314/p/9185514.html
Copyright © 2011-2022 走看看