C+++团队项目设计_第1页
C+++团队项目设计_第2页
C+++团队项目设计_第3页
C+++团队项目设计_第4页
C+++团队项目设计_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上设计和实现回合制战斗系统Combat1 Soldier战士类1) Soldier的属性(protected作用域)最大生命 maxHP当前生命 HP最大体力maxSP当前体力SP攻击力 damage经验 exp等级 level姓名 name药瓶数量 drugNum2) Soldier的动作(public作用域)决策 makeDecision攻击 attack休息 rest吃药 takingDrug3) Soldier被创建后,maxHP和HP为100,maxSP和SP为100,damage为20,exp为0, level为1,drugNum为5;4) 每回合Soldi

2、er通过决策(makeDecision)来决定需要发出哪一个动作(攻击attack、休息rest或吃药takingDrug,注意每回合只能做其中一个动作)。请自行设计和调整每种动作发出的必要条件,例如:生命值若低于最大值的30%该回合就吃药,体力低于最大值的50%该回合就休息,生命力和体力都充足该回合就发起攻击,等等;5) 攻击(attack)敌人一次,体力(SP)减少10,经验(exp)增加5。敌人的生命值(HP)减去攻击方攻击力值(damage)的大小。敌人生命值(HP)减少到0时死去,如果敌人被自己打死,获得敌人身上的所有药瓶;6) 经验(exp)每增加20,等级(level)就提高1级

3、,maxHP、maxSP、damage分别增加20;Soldier, Wizard, Master升级后,当前HP,SP,MP和NP的值皆按比例(xx:MaxXX)增长,注意:不是升级后上述当前属性值就自动全满。例如:Wizard的 HP/MaxHP 50/100,升级后,HP/MaxHP调整为60/120。升级前HP:MaxHP比例为0.5,升级后MaxHP变成120,若要保持0.5的比例,HP自动调整为60。这种设定类似于魔兽争霸III。7) 休息(rest)一次,生命值(HP)、体力(SP)增加最大值的50%,但不要超过最大值。(例如,当前生命值是30,最大生命值是100,则吃药后的当前

4、生命值为30+100*50%=80。)8) 吃药(takingDrug),如果药瓶数量为0,不能吃药。吃药一次,药瓶数量减少1,生命值(HP)增加最大值的80%,但不能超过maxHP。2 Wizard巫师类,从Soldier类公有继承1) Wizard的属性(protected作用域)新增的属性:最大魔法值 maxMP当前魔法值 MP2) Wizard的动作(public作用域)决策 makeDecision攻击 attack休息 rest吃药 takingDrug魔法攻击wizard_attack3) Wizard被创建后,maxMP和MP为100 ,maxHP和HP为100,maxSP和S

5、P为100,maxMP和MP为100,damage为20,exp为0,level为1;4) 每回合Wizard通过决策(makeDecision)来决定需要发出哪一个动作(攻击attack、魔法攻击wizard_attack、休息rest或吃药takingDrug,注意每回合只能做一个动作);5) 魔法攻击(wizard_attack):如果魔法值小于25、或体力小于10无法使用该技能。一次魔法攻击能同时攻击几个敌人,但每对付一个敌人,自己的体力(SP)减少10、魔法值减少25、经验(exp)增加5、敌人的生命值(HP)减去自己攻击力值(damage)。敌人生命值(HP)减少到0时死去,同时自

6、己获得敌人身上的所有药瓶;6) 经验(exp)每增加20,等级(level)提高1级,maxHP、maxSP、maxMP、damage分别增加20;(如果觉得升级太快了,或者升级增加的HP和damage不太协调,可以调整这些参数)7) 休息(rest)一次,生命值(HP)、体力(SP)恢复效果同Soldier的休息(rest)动作。魔法值增加最大魔法值的30%,但不要超过最大魔法值,例如:_mp=_mp+_maxMp*30%。8) 吃药(takingDrug)一次,效果等同于Soldier吃药。9) 攻击(attack),攻击效果同Soldier。3 Master巫师类,从Wizard类公有继

7、承1) Master的属性(protected作用域)新增的属性:最大内力 maxNp当前内力 NP2) Master的动作(public作用域)决策 makeDecision攻击 attack休息 rest吃药 takingDrug魔法攻击wizard_attack绝杀攻击master_attack3) Master被创建后,maxMP和MP为100 ,maxHP和HP为100,maxSP和SP为100,maxNP和NP为100,damage为30,exp为0,level为1;4) 每回合Wizard通过决策(makeDecision)来决定需要发出哪一个动作(攻击attack、魔法攻击wi

8、zard_attack、绝杀攻击master_attack、休息rest或吃药takingDrug,注意每回合只能做一个动作);5) 大师攻击(master_attack),如果内力(NP)大于50时,可以使用大师(master_attack)攻击。一次大师攻击能让被攻击的敌人的生命值(HP)减少其最大生命值的(maxHP)50%(可能有点太强了,破坏平衡性!容易导致游戏在短短几个回合就结束,可以考虑适当减小。),例如敌人HP为100,maxHP为160,被大师攻击后,生命值变为HP-maxHP*50%=100-160*50%=20。一次大师攻击会内力(NP)损耗50、体力(SP)损耗30,经

9、验增加5。6) 魔法攻击(wizard_attack),攻击效果等同于Wizard的攻击(attack)动作7) 攻击(attack),攻击效果等同于Soldier的攻击(attack)动作。8) 使用大师攻击后,经验(exp)每增加20,等级(level)就提高1级,maxHP、maxSP、maxMP、maxNP分别增加20,damage增加20;9) 休息(rest)一次,内力增加最大内力的30%,但不要超过最大内力值。其余如HP、SP、MP的恢复等同于Wizard的休息(rest)动作。10) 吃药(takingDrug)一次,效果等同于Soldier的吃药(takingDrug)动作。

10、4 WarSystem战斗系统类1) WarSystem类的属性军团A Soldier * _pGroupA;军团B Soldier * _pGroupB;2) WarSystem类的动作战斗开始startWar回合开始startRound3) 每次战斗,双方派出一个军团,军团由数名战士、巫师和大师组成。战斗按回合制进行,即每回合中,一方军团的每个成员做完各自的一次动作(由makeDecision决定)后,另一方军团每个成员接着完成自己的一次动作。战斗开始,由哪个军团先发起攻击,系统随机决定。回合的生成和结束由WarSystem类控制;4) WarSystem类拥有两个数据成员(指向指针变量的

11、指针,即二级指针):Soldier * _pGroupA;Soldier * _pGroupB;分别对应战斗的双方军团。(提示,军团可以由Soldier *数组的形式生成,在WarSystem的pGroupA和pGroupB分别指向两个军团,注意OOP的多态实现。)5) WarSystem类可以发出战斗开始即startWar()动作。在startWar()中,随机决定由哪一方率先发起攻击(恐怕是每个回合都随机决定谁先出手会比较公平,如果每回合先出手都是固定一方,那么战斗结果完全是确定性的。而且由于两支队伍的成员一样,交换先出手权后的结果也是对称的。),然后调用WarSystem的另一动作:回合

12、开始,即startRound()。6) startRound()动作的描述:在startRound()中,按军团顺序调用每个战士的makeDecision()动作(也可以考虑两个军团轮流一次一人行动,比较公平)。5将整个战斗过程的每一步保存入日志文件。6项目说明1) 自由组队,人数为2-5人,不能单人组队,也不得超过5人。2) 开发小组全部人员皆要求参与设计和开发,每位组员有明确的分工(组内自行协调);每位组员除了熟悉自己的任务模块外,需熟悉整个系统的设计和开发;3) 影响项目评分的因素:i. 最终系统对需求的实现程度;ii. 项目组内部分工的合理度(包括每人工作量的平衡程度),协作的程度;i

13、ii. 每位组员最后的考评皆会影响项目组其他成员的最后评分; 4) 项目组角色及职责说明:项目经理1名(组长)(兼客户沟通人员)建议推选凝聚力较强人员担任控制项目进度。定期(建议每2-3天)召集所有人员开会沟通开发进度。特别当项目进度滞后时,需要提出解决方案减少进度偏移。定期向客户(老师)报告整体开发进度,模块开发进度,及每个成员的实施情况。(建议每2-3天用email形式报告)技术经理1名建议推选技术较强人员担任负责项目整体框架设计,子系统(模块)划分。在项目组其他成员遇到技术难题时,有责任提供技术咨询。程序员N名全体人员(包括项目经理和技术经理)程序开发5) 部分项目需求并未完整给出。如:

14、Soldier等类的makeDecision决策机制如何设计?在不同场景下该如何做出最佳决策?己方应该分开攻击对方不同的战士,还是应该合力攻击对方最强的战士或者最弱的战士(可参考自己或他人的回合制游戏经验)?应该在哪一个类中增加方法,来获取对方军团的战士信息以便己方做出正确决策?如果战斗在开始后几个回合内就分出胜负,请适量调整各种攻击动作、吃药、休息的数据修改值。(这里设定的生命值相对于伤害值来说有点小了,可适当参考星际魔兽等RTS游戏的参数平衡系统) 在现实中,项目组经常面临开发的项目需求不完整的情况,需要通过多次迭代,反复需求分析和与客户(本项目中的客户即是老师和本组其他同学)沟通逐步解决问题。关于项目组对此类问题的处理能力,也是本次考查的内容之一。6) 最后,再次强调,团

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论