团队项目(第二周)—GG队

时间:2022-05-13 16:02:27

项目需求规格分析

队员信息

队员

学号

叶尚文(队长)

3116008802

蔡晓晴

3216008808

杜婷萱

3216008809

龙剑初

3116004647

于泽浩

3116004661

项目背景:

近年来音乐游戏层出不穷,其中不乏创新性作品,我们产品将面向爱好音游及RPG游戏的玩家,结合两者的特点开发一款游戏。

真实性:

目前市场上还不停地有各种各样的音游出现,音游实际上是能

给玩家一种体验还没接触过的乐器,或者作为练习某种乐器的

一种途径。所以说音游具有市场的真实性

可行性:

该游戏在显示上主要有有钢琴的乐谱和冒险“跑酷”两部分,听

觉上是玩家通过按下琴键发出的旋律,两者结合后,玩家可在

钢琴跑酷这个游戏中通过“键盘式琴键”可以有很好的体验效果,

同时玩家可以通过乐谱和游戏中的主人公来更好地掌握节奏。

玩家可以在学习的同时体验游戏的乐趣,很大程度避免了学习

的枯燥和游戏的单一性。

价值性:

“游戏+教育”已经逐渐成为社会的发展趋势。游戏不再像以前那

样是为了玩乐的片面产品,很多游戏慢慢转向职业化、多功能化,

其中从游戏中学习是最大的市场趋势。钢琴跑酷这个游戏避免了

市场上很多体验效果较差和功能单一的产品,把游戏和学习较好

地结合在一起。市场上还不断有音游的产品出现,说明音游有一

定的市场。钢琴跑酷这个游戏的最大卖点就是很好地把学习和完

结合在一起,很好地做到了“游戏+教育”。

项目需求:

用户需求:

体验效果好同时模仿操作相似的钢琴音游

摆脱传统音游的单一操作和单一视觉效果

在体验过程可以借助乐谱音符外的动态效果提示

借助游戏闯关效果来更好让玩家保持兴趣

功能需求:

一般需求:

实现高音区乐谱控制主人公跳跃跑图;

实现乐谱的规格化及提高可读性和可编辑性;

实现游戏画面整体可动。

高级需求:

实现低音区控制主人公的行为及动作;

实现用户向游戏自行导入乐谱。音乐以及对地图进行构建;

设置BOSS,根据乐谱和节奏设置QTE(Quick Time Event)操作。

后期改进需求:

实现游戏联网;

支持用户的乐谱和地图上传服务器并分享;

支持导入音乐自动生成对应的规格化乐谱并完成地图构建;

支持用户自行修改游戏贴图,改变风格。

环境需求:

使用语言:

H5(HTML + CSS + JavaScript)

开发软件:

Webstorm 或 Dreamweaver 等前端开发软件

heX(用于将HTML项目转化为.exe的桌面应用程序)

Photoshop(设计页面及元素)

技术需求:

团队要熟悉HTML,CSS,JAVAScript等语言

需同时对多个开发软件的操作熟悉

根据乐谱的音符生成游戏中不同的动态地图地形及障碍物

监听键盘输入指示,游戏中的冒险主人公要作出相应行为

团队分工:

程序构建及设计:叶尚文

根据需求构建整个程序的对象及函数关系,设计界面,制定DOM树和对应的元素设计

动态界面:龙剑初,于泽浩

读取乐谱文件,根据乐谱动态生成地图中的地形及障碍,怪物等。

静态界面:杜婷宣,蔡晓晴

读取组成界面的图片文件,构建静态UI的界面,并实现除游戏主界面外的欢迎页、介绍页等静态页面。

主人公控制及响应:叶尚文

监听键盘动作,根据键盘动作控制主人公行为;读取文件,根据文件判断行为是否正确,并给出相对应的反馈。

测试:于泽浩

测试各个阶段程序是否达到预期目标,并保证程序不会因乐谱文档的错误及数据量而出现严重崩溃。

任务简述:

实现视图:

团队项目(第二周)—GG队

事前说明:

开发过程中的测试请以heX的显示界面效果为准。

文件读取方式请参考项目内的player.js

文件说明:音乐为欢乐颂

团队项目(第二周)—GG队

第一行是速率(现在是2秒四小节(8个字符)),第二行开始是简谱,1,2及以下对应高度1,3,4对应高度2,5,6对应高度3,7,8及以上对应高度4。

背景要求:

团队项目(第二周)—GG队

使用给定图片,在限定的div里通过指定的css及js文件,完成如图背景和前景;

要求五线谱中间的判定线位置可调(调节参数用备注标明);

背景每一张图片都可以独立循环向左移动播放,且移动速度可调(调节参数用备注标明)。

方块以及音符生成要求:

团队项目(第二周)—GG队

在限定的div里通过指定的css及js文件,读取给定的txt文件(规格化乐谱,路径:“../src/txt/test1.txt”),得出旋律和拍子时间,生成符合旋律高低的音符,字母以及方块,方块向上生成,然后向左移动,音符和字母从右渐显生成向左移动;

音符,字母及方块的移动速率可调,并可调节延迟(两者参数请备注说明);

方块的种类要根据旋律的种类创建:

0x0y:创建种类1的方块;

0x00000y:创建种类2,3的方块,并在中间的0处添加对应数量的种类4的方块;

0xy:循环创建种类5,6的方块。

团队项目(第二周)—GG队

实例效果:

团队项目(第二周)—GG队

动作及响应要求:

主人公还没画好,不放图了。。。。

在限定的div里通过指定的css及js文件,读取给定的txt文件(规格化乐谱,路径:“../src/txt/test1.txt”),得出旋律和拍子时间,根据时间及旋律计算得出当前状态;

判定区示意图:

团队项目(第二周)—GG队

编码规则:

命名:

尽量遵循驼峰原则命名,并在声明时备注作用(如必要)

用于循环、记录状态、暂存的变量请用loop,state, temp开头并加上编号(编号计算以函数为单位)或者说明(如必要)

括号:

大括号内为空前面和内部都不用换行,否则:

左大括号前不换行,后换行;

右大括号前换行,后除规定语句块(else, while等)外换行;

连续同种小括号间空格。

符号:

各类运算符或判断符前后都有空格;

逗号后带空格。

字数:

每行不超过(111 - 11)字符,如超过:

从100字符内的最后空格开始换行;

若是运算符的空格则从运算符前的空格开始换行;

换行后在上一行换行处备注 ”//next line“。

缩进:

用4个空格,tab键请设置为4个空格。

其他:

if/for/while/switch/do等保留字与左右括号之间都必须加空格;

除判断及for/while等外,一行一个语句;

函数中,实现不同小功能的语句块之间空行,语句块内不空行,如必要在语句块前加上备注说明,例:

int a;

int b;

int temp

for(。。。){

。。。

//交换a,b的值

temp = a;

a = b;

b = temp;

}

while 。。。

函数前请务必说明函数功能,若复杂请文档注释说明大概思路。

 

项目安排:

 原安排表:

第6周

1.团队组队、团队博客(✔)

 

2.团队介绍、成员展示、角色分配、选题确定(✔)

3.制定团队计划安排(✔)

第7周

1.需求规格说明书(✔)

2.原型设计,队员估计任务难度并学习必要的技术(✔)

3.编码规范完成、平台环境搭建完成、初步架构搭建(✔)

第8周

1.原型改进(给目标用户展现原型,并进一步理解需求)

2.架构设计,WBS, 团队成员估计各自任务所需时间

3.测试计划

第9周

1. 团队项目Alpha任务分配计划

2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交

第10周

1.用户反馈+测试计划改进

2. 团队Alpha阶段个人总结

3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理

第11周

1. 团队项目Alpha博客:事后分析

2. 每个团队有一人必须离开,自己寻找下一个接纳自己的团队。团队发博客宣布离队和接纳的成员。

第12周

1. 团队项目Beta任务分配计划,介绍新成员

2. 连续7天的Beta敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交

第13周

1. 团队项目Beta博客:发布说明、测试报告、展示博客

2. 团队Beta阶段个人总结

第14周

1. 团队项目Beta博客:事后分析, 宣布每人的贡献分

第15周

1.团队整个阶段总结,分析用户数据,整理文档,保证以后的团队能接手。

校正后安排:

第8周

初步实现各个模块原始界面效果,合并代码后寻找不足并改进,以尽量避免后续功能实现的代码产生不兼容情况

第9周

制定Alpha计划,搭建整体框架,实现各模块功能并合并

第10周

对各个功能模块进行测试,让用户试用并通过反馈进行改进

第11周

总结收获和不足,团队调整

第12周~~

依情况从新规划

校正方法:

刚开始的规划还没有对项目进行深入的解剖和分析,很多安排都没能很好地按计划完成。

因为本次项目用到的编程语言并不是都会,所以经过分析后,主要的功能和测试放在了第

10和11周两周,在各模块功能完成时就可以进行初步的测试,等预期功能都实现的时候,

再进行统一的整体测试,这样就可以把最终测试出现的不足很好地锁定。

队员感想:

叶尚文:第一次开发自己创造的游戏,有点兴奋又有点紧张。第一次带领队伍,第一次5人的

团队合作,我希望能带领好这个团队。也希望在这个过程中提升自身的领导能力,同时

从中找到自己的不足。

蔡晓晴:这个星期还没有开始写代码,但是叶尚文大佬给了我们一个清晰的架构和代码标准,

十分利于我们后期打代码。这个星期我也学习了很多js的知识。

杜婷萱:感觉开发前的充分沟通,明确的任务分工很重要。我和晓晴共同完成静态背景的实现,

但js刚开始学接触的还不是很多(°ー°〃)因此要向团队多多请教,希望能通过这次的项

目学到更多的知识 (*^▽^*)

龙剑初:在这一周里,团队对项目进行了进一步的探索和理解,在队长尚文大佬的带领下,我

们把项目的主要功能模块和大致的架构做了初步的确定,同时进行了任务的分配。项

目要用到js和css等还没接触过的语言,这对于我来说是个极大的挑战。自知代码能力

不强,但也会尽力。接下来好好努力,跟着大佬们学习。

于泽浩:和同学一起团队协作,每个人都有每个人的长处,让我认识到了自己太多需要学习,

但是团队协作依靠的也不只是每个人的能力,清晰的统筹才能一步步将计划完成。非

常期待接下来一步步将计划完成。