案例学习项目报告书

2018-08-06  本文已影响0人  伊才妮

一.项目设计方案
二.实施过程分析
三.项目的改进
四.项目设计成果
五.提升及展望

一.项目设计方案

二.实施过程分析

根据“跳一跳”游戏的基本功能需求,相关实施过程如下:

1. 工程,角色及场景设置

2. 角色跳跃

3.台子自动生成

4.相机跟随

5.死亡判定及重新开始游戏

小人死亡示意图.png
  1. 特别注意的是,问号那里是指只要小人接触地面 仍会存在游戏失败的情况

  2. 在条件语句中,需要定义一个contacts的数组,用来代表碰撞的接触点,如果接触点是一个,用来判断是不是落在了台子的顶面,这里用到normal法线,因为及时接触点是一个,但落在了棱角上,法线方向就不是正上方

  3. 总之,只有判断是否接触点,且人物朝上才算符合加分的条件,否则游戏结束
    Length可以获取这个数组长度

     if (collision.gameObject.name == "Ground")
     {
         OnGameOver();
     }
     else
     {
       if (_currentStage != collision.gameObject)//条件 当前的小人所在的盒子不是碰撞后的游戏对象
       {
           var contacts = collision.contacts;//var定义数组变量contact 将被碰撞后的物体的接触点集(集合)赋值给这个数组变量
    
           //check if player's feet on the stage
           if (contacts.Length == 1 && contacts[0].normal == Vector3.up)//数组的长度就是这个接触集合是否为1(是否落到台子上),数组的法线是否是向上的(小人直立状态)
           {
               _currentStage = collision.gameObject;//将当前的游戏对象赋值给当前的盒子
               AddScore(contacts);
               RandomDirection();
               SpawnStage();
               MoveCamera();
    
               _enableInput = true;//可以继续进行点击鼠标
           }
           else // 虽然小人跳出去了,但可能由于跳偏了,或者小人的身子不是直立状态
           {
               OnGameOver();
           }
       }
       else //still on the same box 仍在当前的盒子上跳
       {
           var contacts = collision.contacts;
    
           //check if player's feet on the stage
           if (contacts.Length == 1 && contacts[0].normal == Vector3.up)
           {
               _enableInput = true;//还可以继续进行点击,也就是说允许在原地跳的
           }
           else // body just collides with this box
           {
               OnGameOver();
           }
       }
     }
    

6.分数统计

7.角色蓄力的粒子效果

8.角色蓄力效果

4.台子蓄力效果

三.项目的改进

1.台子随机生成的大小和颜色变换

2.台子生成的随机方向功能

3.加分UI的的实时动态更新的漂浮效果

4.成倍加分的功能

5.联网排行榜功能的实现

6.随机生成不同形状的台子

7.小人翻转跳跃

8.添加音频

本次项目学习所获得的知识点有如下:

  1. 编辑器的基本用法及操作
  2. c sharp 编程的基础知识
  3. 刚体rigid body组件的相关使用方法
  4. Do-Tween插件的动画功能使用
  5. 蓄力粒子系统
  6. 简单的UGUI
  7. 联网排行榜的功能实现
  8. 预制体的使用

五.提升及展望

  1. UI界面不够美观 界面不统一
  2. 关卡的设置不够完善
  3. 音频只添加了背景音乐 不够生动
  4. 游戏的场景和角色不够生动
上一篇下一篇

猜你喜欢

热点阅读