设计模式之模拟97拳皇按键设置.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计模式之模拟97拳皇按键设置

设计模式课程考查题目:模拟97拳皇游戏按键设置专业:软件工程班级:软件开发班学号:姓名:指导老师:分值:一、应用背景网络的普及,改变了人们的休闲娱乐方式,玩电脑小游戏是许多电脑用户喜好的休闲方式,像一些怀旧的小霸王机任天堂系列,如超级玛丽,坦克大战,以及风靡一时的街机系列,包括97拳皇,合金弹头等都是不二首选。这些游戏大多属于怀旧系列,原本的操作是通过手柄,或者摇杆按键,现在被搬上电脑单机,意味着内置的按键程序也需要作出相应的调整。例如97拳皇对战游戏,除了方向键:上下左右,还有四个按键:ABCD。但四个按键还有各自的组合功能,A+B代表操作人物:紧急回避;C+D表示操作人物:能量反击;B+C+D代表操作人物:暴气状态。街机游戏操作依赖于摇杆,为了增强用户的可操作性,和游戏的自由度,考虑到键盘操作的不便性,电脑小游戏应能提供用户自由设置组合按键功能。二、模式动机2.1简单工厂模式游戏组合按键的方式一般有五到六种,使用简单工厂模式创建按键的组合方式,用户无需知道具体按键组合在内部是如何实现的,只需要知道能够根据传进去的组合类型,就能创建想要的按键组合方式。2.2策略模式完成一项任务有多种不同的方式,每一种方式称为一种策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。设置某个键盘按键对应的游戏组合按键代表了不同的策略,使用策略模式可以灵活地将键盘按键设置成选择出的游戏组合按键。如果不采用策略模式,用户必须非常繁琐地将键盘按键对应的游戏按键一一设置,有些游戏组合按键甚至有四个,意味着用户必须将该四个组合游戏按键全部匹配到指定的键盘按键上。运用策略模式来动态的选择某个键盘设置游戏的组合按键,能够根据用户的自由灵活地选择,设置按键,以及添加新的组合按键。三、类图设计四、模式优缺点4.1模式优点(1)动态改变键盘与游戏组合按键的匹配(2)简化了单元测试,因为每个组合按键都有自己的类,可以通过自己的接口单独测试。(3)在Context环境角色类中结合简单工厂模式,即在Context中设计构造函数,传入自变量,环境角色根据传入的自变量选择使用的游戏按键组合。4.2模式缺点(1)在选择游戏组合按键时选择了简单工厂模式,运用该模式违反了开闭原则,当用户需要增加或者修改一个组合按建时,需要修改工厂类的相关程序。(2)客户端必须知道所有的策略类,并自行决定使用哪一个策略类,必须对每一个按键组合了解。即客户端在使用前要具备识别Context的能力,即知道参数的含义。为此,游戏按键设置程序必须提供相应的说明,以便用户识别并选择正确的游戏按键设置。五、设计代码package 策略模式;public interface CombinationKey {/*抽象策略角色,按键的组合设置*/public void combinat(String key);}package 策略模式;public class CombinationKeyAB implements CombinationKey{/*具体策略角色AB游戏键组合*/public void combinat(String key) {System.out.print(设置键盘按键+key+为游戏组合按键:A+B+\n);System.out.print(游戏人物紧急回避!+\n);}}package 策略模式;public class CombinationKeyABC implements CombinationKey{/*具体策略角色CD游戏键组合*/public void combinat(String key) {System.out.print(设置键盘按键+key+为游戏组合按键:A+B+C+\n);System.out.print(游戏人物暴气状态!+\n);}}package 策略模式;public class CombinationKeyCD implements CombinationKey{/*具体策略角色CD游戏键组合*/public void combinat(String key) {System.out.print(设置键盘按键+key+为游戏组合按键:C+D+\n);System.out.print(游戏人物能量反击!+\n);}}package 策略模式;import 简单工厂模式.CombinationKeyFactory;public class Context {/*环境角色,持有策略类的引用*/ CombinationKey com; public Context(){ } public Context(int keyType){ =CombinationKeyFactory.ge

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档