张运涛

c++

   :: 首页 :: 联系 :: 聚合  :: 管理

常用链接

留言簿(4)

搜索

  •  

最新评论

       前几天看了那小强的射击游戏,感慨很多啊,把那框架大体看了下,这几天忙着写几个算法练习题,么估得详细看那游戏里的技能与子弹的很多小的细节.
      首先感觉再大的项目也是由细小部分组成的,所以对那些软件构成有了一点小的认识.十分庆幸.
       他们将Bullet与Skill设计成抽象类,规定基本方法后,让二个人去实现它们的具体子类,分工明却点.便于集成.将Player类设计成具体子弹与技能的容器,符合实际,Game中存玩家,并控制游戏过程,与UI沟通.结构清晰.钦佩他们啊,呵呵。
       感觉,应该是一个人写UI即MainFram类,Game类应该封装一个比如GetFramePic()之类的方法,其中绘制每一帧的画面,这样写MainFrame类的人,可以不去和Skill与Bullet,Player类去交互,去调用类Draw()方法,它只需与Game类交互,得到一个帧图象并显示,通过按键调用Game类的控制人物的方法即可,当然,为初始化人物中技能种类,那么写Skill与Bullet的二个人应该提供一个如xml文件,列出他们实现的类,让UI部分的人读xml文件动态生成类进行初始化子弹列表,这样,便与UI部分的独立性,也使技能与子弹种类的易扩展性大大提高,可以使写UI部分的人一心放在与用户交互的设计上,如增加各种信息,提供对话框让用户选择控制按键,及为各种技能分配独立按键信息等等,若有网络通信部分,他做的也很少,便于专一.
        在其它方面,如具体绘画时,加个标志,如Player若没移动,就不用去绘制Player,通过一些算法控制,用户交互频繁时,刷新频率高些,用户控制活动少时,将低刷新频率.Game里那个单独更新数据的线程应与用户按键之间,以及显示之间能过算法有某种交互(还没想到具体应该咋做),以达到更好的效率.以有图片可以压缩,或采用较小的图,放大即可,在类中的绘画函数中,不用时手动Dispose掉那些gdi对象,因为子弹太多,等gc去做可能浪费较多的内存.
posted on 2010-03-30 21:00 张运涛 阅读(268) 评论(1)  编辑 收藏 引用 所属分类: 技术感想

Feedback

# re: 读小强飞机有感 2010-03-31 11:44 张运涛
分析得不错,即看到了优点也找到了缺点,难道都说你编程水平不错。看来众言非虚。

就你发现的这些问题在你的游戏中也确实可以修改,你可以在你做的这个版本中进行改进,关于技术问题,如果确实有困难,我可以给你技术支持。

----郝  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理