• 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,将界面的监听和主循环脱离出来,将更好的降低代码耦合度吧,尽是个人理解。

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

  • 相关阅读:
    Nginx,uWSGI与Django 应用的关系
    闭包学习-Python 篇
    Django学习之REST framework JWT Auth
    Python标准库uuid模块
    Django REST framework学习之JWT失效方式
    Django学习之JWT
    单点登录
    print输出格式总结
    百钱百鸡问题
    流程图符号及其功能
  • 原文地址:https://www.cnblogs.com/flashbird/p/3304922.html
Copyright © 2020-2023  润新知