Starling案例分析——<Hungry Hero>整体框架(二)

上一次大致说明了一下,使用Starling如何组织游戏入口,和窗体跳转,还有就是使用Starling进行开发时的一些分包情况,也就是层次结构了。每一个人都有每一个人的理解,软件工程这个东西真的没有所谓的银弹,所以就按照《Hungry hero》源代码来说明一下他的分包规则。

QQ截图20130906092225

上一张图,就是《Hungry Hero》 的源代码,主要分为几个层!

+default package:

      1、程序入口:HungryHero.as

      2、游戏窗体切换逻辑:Game.as

      3、资源:Assets.as  Fonts.as  ParticleAssets.as  Sounds.as

      4、配置信息常量: GameConstants.as

+com.hsharma.hungryHero

   +customObjects

      1、字体的模型类:Font.as

   +events

      1、自定义事件:NavigationEvent.as

   +gameElements

      1、背景层:BgLayer.as

      2、背景层文档类:GameBackground.as

      3、英雄模型类:Hero.as

      4、元素(食物)模型类:Item.as

      5、障碍物模型类:Obstacle.as

      6、特殊道具模型类:Particle.as

   +objectPools

       1、元素池(食物):PoolItem.as

       2、障碍物池:PoolObstacle.as

       3、特殊物品池:PoolParticle.as

   +screens

       1、欢迎界面:Welcome.as

       2、游戏界面:InGame.as

   +ui

       1、游戏结束组件:GameOverContainer.as

       2、声音ui组件:SoundButton.as

       3、暂停组件:PauseButton.as

       4、字体组件:HUD.as

如果仔细梳理上面的分层结构及分包规则,我们可以看出整体可以按照下面的结构来看待

1、游戏入口

2、界面

3、模型

典型的MVC模式,C层较弱,仔细的将一些ui显示组件化,游戏运动的元素也进行了抽象出gameElements.as。如果要进一步脱离的话,那么screen还可以抽出一层contraller,将界面的监听和主循环脱离出来,将更好的降低代码耦合度吧,尽是个人理解。

分的包越多,抽象和设计越重要,编程也越麻烦,很难权衡,值得慢慢思考!希望大家能给出自己的一些模式,来分析一下优劣,相互学习一下。

原文地址:https://www.cnblogs.com/flashbird/p/3304922.html