团队项目(第二周)—GG队
项目需求规格分析
队员信息
队员 |
学号 |
叶尚文(队长) |
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的界面,并实现除游戏主界面外的欢迎页、介绍页等静态页面。
主人公控制及响应:叶尚文
监听键盘动作,根据键盘动作控制主人公行为;读取文件,根据文件判断行为是否正确,并给出相对应的反馈。
测试:于泽浩
测试各个阶段程序是否达到预期目标,并保证程序不会因乐谱文档的错误及数据量而出现严重崩溃。
任务简述:
实现视图:
事前说明:
开发过程中的测试请以heX的显示界面效果为准。
文件读取方式请参考项目内的player.js
文件说明:音乐为欢乐颂
第一行是速率(现在是2秒四小节(8个字符)),第二行开始是简谱,1,2及以下对应高度1,3,4对应高度2,5,6对应高度3,7,8及以上对应高度4。
背景要求:
使用给定图片,在限定的div里通过指定的css及js文件,完成如图背景和前景;
要求五线谱中间的判定线位置可调(调节参数用备注标明);
背景每一张图片都可以独立循环向左移动播放,且移动速度可调(调节参数用备注标明)。
方块以及音符生成要求:
在限定的div里通过指定的css及js文件,读取给定的txt文件(规格化乐谱,路径:“../src/txt/test1.txt”),得出旋律和拍子时间,生成符合旋律高低的音符,字母以及方块,方块向上生成,然后向左移动,音符和字母从右渐显生成向左移动;
音符,字母及方块的移动速率可调,并可调节延迟(两者参数请备注说明);
方块的种类要根据旋律的种类创建:
0x0y:创建种类1的方块;
0x00000y:创建种类2,3的方块,并在中间的0处添加对应数量的种类4的方块;
0xy:循环创建种类5,6的方块。
实例效果:
动作及响应要求:
主人公还没画好,不放图了。。。。
在限定的div里通过指定的css及js文件,读取给定的txt文件(规格化乐谱,路径:“../src/txt/test1.txt”),得出旋律和拍子时间,根据时间及旋律计算得出当前状态;
判定区示意图:
编码规则:
命名:
尽量遵循驼峰原则命名,并在声明时备注作用(如必要)
用于循环、记录状态、暂存的变量请用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等还没接触过的语言,这对于我来说是个极大的挑战。自知代码能力
不强,但也会尽力。接下来好好努力,跟着大佬们学习。
于泽浩:和同学一起团队协作,每个人都有每个人的长处,让我认识到了自己太多需要学习,
但是团队协作依靠的也不只是每个人的能力,清晰的统筹才能一步步将计划完成。非
常期待接下来一步步将计划完成。
团队项目(第二周)—GG队的更多相关文章
- 团队项目第二周spec设计
本系统针对局域网进行联机聊天.聊天室分为服务器端和和客户端俩部分,服务器端程序主要 负责侦听客户端发来的信息,客户端需要登录到服务器端才可以实现正常的聊天功能. 1.本软件是一款局域网聊天软件,不能进 ...
- bug终结者 团队作业第二周
bug终结者 团队作业第二周 我们小组选取游戏"开心消消乐",回答问题: 1. 此类软件是什么时候开始出现的, 这些软件是怎么说服你(陌生人)成为他们的用户的? 他们的目标都是盈利 ...
- 《团队作业第二周》五小福团队作业——UNO
<团队作业第二周>五小福团队作业--UNO 一.修改完善上周提交的需求规格说明书 THE FIRST改变 首先:我们组的博客无小组分工及占比,这是第一个问题,当时我们在写博客的时候由于很多 ...
- [团队项目]第二个冲刺 看板和燃尽图 Sprint2 6.8/6.9/6.10/6.11/6.12/6.13/6.14
1.开始一个新的冲刺: 起止:2016.6.1~2016.6.14 按照以下过程进行 ProductBacklog:继续向下细化 Sprint 计划会议:确定此次冲刺要完成的目标 Sprint Bac ...
- 团队项目-第二次Scrum 会议
时间:10.24 时长:30分钟 地点:线上 工作情况 团队成员 已完成任务 待完成任务 解小锐 学习官方样例 根据初步讨论结果编写初步的api文档 陈鑫 学习cocos creator基本使用 采用 ...
- 团队作业-第二周-SRS文档
移动课堂点名的用例图:
- 团队作业—第二周—SRS
一.系统整体用例图: 二.用户用例图: 三.医院用例图:
- DLNg[结构化ML项目]第二周迁移学习+多任务学习
1.迁移学习 比如要训练一个放射科图片识别系统,但是图片非常少,那么可以先在有大量其他图片的训练集上进行训练,比如猫狗植物等的图片,这样训练好模型之后就可以转移到放射科图片上,模型已经从其他图片中学习 ...
- 团队项目(HCL队)第二周
一.项目介绍 1.内容 我们队选择的题目是经典90坦克大战的java实现,后续会加入ai,以实现更丰富的体验. 2.预期使用数量 原版的经典90坦克大战拥有众多粉丝,我们在其上进行拓展,目前预计用户量 ...
随机推荐
- 首届阿里巴巴在线技术峰会,9位大V演讲整理!
https://yq.aliyun.com/articles/57826 感谢参加阿里巴巴在线技术峰会.7月19日的3场专家分享:Blink.Docker.电商互动:7月20日的云数据库十大经典案 例 ...
- triton,docker,mesos
triton user: jill /root/.sdc/docker/jill 下 root@1f6af9d8-8ed9-e940-9c6c-d9505ca25896:~/.sdc/docker/j ...
- \extras\intel\Hardware_Accelerated_Execution_Manager HAXM 未安装导致AndroidStudio新建了模拟器开启不了
之前安装过 bios模式也是正常的.所以按照下面的步骤操作. https://software.intel.com/en-us/android 在这个界面 选择右侧的, 下载后解压到下面图上的路径: ...
- 元素的定位tag_name,link_text,class_name
tag_name 就是根据HTML的标签的名称来定位的: 案例:打开我要自学网,会有用户名和密码的输入框 例如:拿51zxw.net为例 from time import sleep #加载浏览器驱动 ...
- SpringMVC中在web.xml中添加中文过滤器的写法
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>or ...
- hdoj1114 Piggy-Bank(DP 完全背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 思路: 题目看着有些绕,其实就是完全背包的变形,需要注意的是这里求最小值,所以需要将dp数组初始 ...
- OptionParser模块学习
from optparse import OptionParser import sys useage = [] test_parser = OptionParser(usage="%pro ...
- python之socket运用2
今天实现在客户端和服务端之间进行持续的通信 客户端代码 import socket ip_port = ("127.0.0.1",3000) sk = socket.socket( ...
- php下ajax的文件切割上传
html5中的File对象继承Blob二进制对象,Blob提供了一个slice函数,可以用来切割文件数据. <!DOCTYPE HTML> <html lang="zh-C ...
- Struts2的拦截器技术
1. 拦截器的概述 * 拦截器就是AOP(Aspect-Oriented Programming,面向切面)的一种实现.(AOP是指用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作 ...