第三次作业 周杨威、吴原润、王迪、汪绍航、封晧君、顿耀伍

随笔

“待定”项目

一、项目概括

团队名称:WASD

项目名称:"待定"

项目组成员:周杨威(队长)、吴原润、王迪、汪绍航、封晧君、顿耀伍

采用团队软件团队模式:功能团队模式

项目概述:“待定”是一类避碰类小游戏,通过键盘控制任务在关卡内运动,穿过障碍到达终点。随着不断过关,关卡难度也会不断增加。其中还会出现各种道具,比如血包,可以增加三条命,时间胶囊可以增加倒计时时间。

 

开发工具:Visual Studio(外加easyX 库) 、Photoshop、Office

 

二、功能任务列表

 

序号

功能点·

计划耗时/h

功能实现情况

功能点负责人

1

增加游戏道具功能(血包、金币)

5

实现血包道具

王迪、周扬威

2

添加剧情环节

5

实现开头、通关剧情

封皓君、顿耀伍

3

增加游戏音效(背景、碰撞、过关)

3

实现不同关卡、死亡等各种音效

周扬威、吴原润

4

加入血量系统

1.5

实现

周扬威、吴原润

5

加入过关功能

1.5

实现

汪绍航、周扬威

6

优化游戏界面、关卡内界面设计

3

实现

顿耀伍、封皓君

8

难度变化

4

数量、

飞行方向

周扬威、王迪

9

增加移动障碍

3.5

实现

汪绍航、周杨威

10

数据统计模块

3

未实现

王迪、汪绍航

 

 

三、项目任务完成实时进度表(运行图片待汇总加入)

 

2019/11/19

a、  由调用本地目录下音频改为调用资源文件音频播放。

 

b、 将所有绘图坐标参数变量化——用以实现更改难度/分辨率扩展工作。

 

c、增加血量计数,增加代改问题。

 

2019/11/20

a、增加血量图形显示,解决碰撞穿模

 

2019/11/21

a、实现过关/切换地图。

b、修复了终点生成到地图外的的bug.

c、优化界面,调整字体,便于阅读.

d、添加了道具(血包),增加贴图,修复bug.

 

2019/11/24

a、实现过关后难度上升(障碍物增加)。

 

2019/11/26

a、实现移动障碍物,且每次过关可实现数量改变。

 

2019/11/28

a、实现斜向飞行、垂直下落障碍并存,更新通路检测,确保不会死路

b、增加了开场剧情,增加了死亡、最后十秒倒计时音效。

c、增加关卡到4关,修复了过关死亡bug

 

2019/11/29

a、增加游戏结束剧情、修改了游戏难度。

 

2019/12/2

a、2019/12/2修复bug,更新大量图片,音效。

b、换了背景音乐。

c、增加单元测试。

 

2019/12/3

a、最终版本,增加每一关不同贴图

2019/12/5

a、加入游戏暂停功能

 

 

 

 团队合作照片

 

四、性能测试

 

 

 

 从性能测试可见,游戏显示帧数较稳定、内存占用很低、没有太高性能要求。不过由于使用音频文件为wav格式,因而执行文件体积较大。

 

五、项目程序运行截图

1.  开场、结束都加入了剧情

 

 

 

 

2. 不同关卡之间区别:背景音乐、障碍物数量、有/无移动障碍物、限时时长

 

 

3. 血量耗尽游戏结束和时间到游戏结局画面不同,可在游戏中体验。

 

 

 

 

 

 

 

4、计时器(包括音效)、加血道具、血条。

                       

 

 

 

5.更多功能未能一一列出。

 

六、单元测试

 

 

1、描述项目的测试工作安排

         程序是在上次作业基础上完善而来的,由于上次作业中单元测试就很不顺利,这次计划专门花一天时间查阅相关资料。因为具有测试条件、且有测试需要的的函数很少,因而计划仅仅使用一天时间进行测试。

2、测试工具选择和运用

        测试使用Visual Studio 2019 自带的本地 unit test 模块。

        经过资料查阅,使用C语言的assert()函数替换C++的 断言语句。问题在于此语句检测到失败时是终止程序运行,但不能计入单元测试工具自带的统计中。

 

 

 

3、测试用例代码

#include "pch.h"
#include "CppUnitTest.h"
#include "../PairingProject/Painting.h"
#include "../PairingProject/Model.h"
#include "../PairingProject/Mydefine.h"
#include <assert.h>

using namespace Microsoft::VisualStudio::CppUnitTestFramework;
void position_block(void);


extern int p_block[2][150];
extern int p_goal[2][10];



namespace UnitTest1
{
    TEST_CLASS(UnitTest1)
    {
    public:
        int i;
        //int block_num = 10;
        TEST_METHOD(TestMethod1)
        {
            
            position_block();
            i = check_path();
            assert(i == 1);
        }
    };
}

void position_block(void)
{
    int i, j;

    for (i = 0; i < 10; i++)
    {
        p_block[0][i] = 2; 
        p_block[1][i] = 1;
    }
    for (i ; i < 10; i++)
    {
        p_block[0][i] = 3;  
        p_block[1][i] = 1;
    }
    for (i; i < 10; i++)
    {
        p_block[0][i] = 4;  
        p_block[1][i] = 1;
    }
    for (i; i < 10; i++)
    {
        p_block[0][i] = 5;  
        p_block[1][i] = 1;
    }
    for (j = 0; j < 1; j++) 
    {
        p_goal[0][j] = 3;
        p_goal[1][j] = 2;
    }


}

 

 

4、测试总结

         本次测试虽然没有做很多模块,但是从中学习到了单元测试从新建工程、链接项目、编写测试用例的完整思路。

         另外,在编写测试用例时深刻体会到,过度依赖全局/外部变量导致的关联文件过多、重复引用问题等造成的测试困难,对以后的程序编写有深刻警示作用。

 

代码仓库地址

https://gitee.com/zhouyangwei1/PairingProject

   

 

 

 

 

 

 

posted @ 2019-11-21 19:16  WUYUANRUN  阅读(303)  评论(0编辑  收藏  举报