[转] PureMVC心得教程:使用puremvc框架实现的贪吃蛇

[url=http://bbs.9ria.com/viewthread.php?tid=73554&extra=page%3D1%26amp;orderby%3Ddateline%26amp;filter%3D2592000]http://bbs.9ria.com/viewthread.php?tid=73554&extra=page%3D1%26amp;orderby%3Ddateline%26amp;filter%3D2592000[/url]

其实也只是我初用puremvc的心得。大多数理论查看资料验证过,不会误人子弟。
不是绝对理论化的东西。所以最好不要太过纠结了。内含详细注释。
应该可以让没有接触过此框架的同学们瞬间学会如何使用。

Puremvc的好处在什么地方:
mvc合理的区分可以便于扩展和维护,但是实际估计流水线上的同学们往往体会不到这种乐趣了。

不过个人认为Notification比event的优势在于无需提供消息发生者,从而在监听时也无需获得消息发出者的引用,从而降低耦合性
(换句话说应该叫降低设计降低系统耦合性的难度)。

一般推荐尽量封装mediator和proxy,然后使用command来调用方法实现view和model的通讯
这个游戏一般一条程序逻辑是
由view层发出请求(sendnotification),command监视到notification后,自动响应excute方法。在方法中获得所需proxy和media的引用,调用它们封装的api传递请求给proxy,proxy处理完数据后,再把更新的数据用notification带参数的形式发送到view层。View层可以直接在mediator中监听notification也可以还是通过command的形式处理业务逻辑。

数据处理的逻辑放在了model层。因为这个游戏是基于“贪吃蛇”,而不是基于”可以无穷变换的区块逻辑”。


Puremvc工程搭建心得
1.实例化一个applicationFacade

[code="java"]facade = ApplicationFacade.getInstance();
facade.sendNotification(ApplicationFacade.STARTUP, this);[/code]


这里的this就是应用程序顶层视图。

[code="java"]applicationFacade类一般小项目的写法都很类同。
override protected function initializeController():void
{
super.initializeController();
registerCommand(ApplicationFacade.STARTUP, StartupCommand);
}[/code]


这个StartupCommand往往也是添加两个子command

[code="java"]addSubCommand(ModelPrepCommand);
addSubCommand(ViewPrepCommand);[/code]


两个子command也都会按照FIFO原则先后触发

[code="java"]facade.registerProxy( new DataProxy() );//注册数据模型代理[/code]


和注册主视图

[code="java"]var main:Main = notification.getBody() as Main;
facade.registerMediator( new ApplicationMediator(main) ); [/code]


主视图一般负责注册子视图,并且将视图组件添加到主视图中。
//画上主网格布局

[code="java"]tileFrame = new TileFrame(data.tileArray);
facade.registerMediator( new TileFrameMediator(tileFrame));
main.addChild(tileFrame);[/code]


//画上菜单

[code="java"]menu=new Menus();
facade.registerMediator(new MenuMediator(menu));
main.addChild(menu);
menu.y=tileFrame.y+tileFrame.height+20; [/code]


接下来就任意发挥了,需要处理业务逻辑的时候,注册command(registerCommand)。
sendNotification来触发它。
Command中常常需要获得Proxy的引用(retrieveProxy)和mediator的引用(retrieveMediator)


[img]http://dl.iteye.com/upload/attachment/410160/a5b2e702-78d4-339f-9d50-61a37f0f69d5.jpg[/img]


如果只是简单业务逻辑,也可以使用mediator直接关注

[code="java"]override public function listNotificationInterests():Array{
return([])//这个数组里写需要关心的notification
}
override public function handleNotification(notification:INotification):void{
switch( notification.getName() )
{
Case xxx://消息名
//处理
Break;

}
}[/code]


关于游戏逻辑
游戏逻辑很简单,不是本篇主要。就不赘述了
简单概括,
snakeArr 记录蛇身所在各个区块的数组
tileArray 记录所有区块的状态。0,空白1,蛇身2,食物
headNo 蛇头所在区块
蛇头接受到移动命令后根据方向计算下一格所在区块,把tileArray中此格坐标设为蛇身,并加入snakeArr开头,如果新蛇头位置不是食物,把tileArray中蛇尾区块设置为空白,并将该蛇尾从snakeArr中移除,否则不做处理。如果蛇头新位置和蛇身数组中元素有相同,则死亡。


最后丢上代码。
src文件夹,纯代码actionscript项目,新建工程,放入src目录编译即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
     本课程总体分上、下两部,上部解决应用PureMVC框架开发项目问题,下部则着力解决深入掌握框架源码核心、彻底掌握框架思想、建立框架思维,为开发自己的专属框架(以及成为游戏架构师)打下坚实基础!本课程下部分为四大部分:一:应用层架构设计      总结《PureMVC框架设计(上篇)》的基础之上,进一步阐述PureMVC三层流关系图,以及讲解PureMVC与标准MVC设计的联系与区别点。讲解PureMVC中对于视图层内部的进一步分化技术:View与Mediator。二:App应用(游戏)界面开发      根据我们已经掌握的PureMVC 架构知识点,我们开发一个具体的Unity应用项目。本项目重点讲解复杂UI界面中对于PureMVC 的详细使用过程以及应用技巧。三:开源架构源码分析      我们就PureMVC 开源整体架构图、PureMVC主要的设计模式、源代码目录结构、三大核心类、外围类进行详细梳理架构源码与其中蕴含着的优秀设计思想。四:架构设计总结      我们经过架构源码的详细分析与研究,总结探讨PureMVC中观察者、中介者、外观、代理等模式在架构中的设计与应用闪光点。我们还会就PureMVC在团队开发中关于模块化协作开发、以及架构三层中设计“颗粒度”等问题展开讨论。一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979
本课程总体分为五大部分:一: MVC基本设计理念    首先讲解游戏(包含VR、AR)与软件项目为什么需要有架构与框架的理念。然后讲解游戏引擎、服务端与客户端框架的区分,且梳理分析国内目前主流的游戏客户端架构模式以及优缺点分析。以及PureMVC与StrangeIOC两种MVC开源架构的总体技术刨析。二:PureMVC开源框架插件下载与搭建基础环境。    笔者以开发一个简单的“Hello World”为例,详细讲解PureMVC基础的概念,与框架搭建过程,让学员以较快的时间,学会PureMVC框架的基础理念与应用技巧。三:PureMVC架构设计理念。    基于前面简单版本的开发过程,初步刨析PureMVC架构以“Mediator+事件通知机制”总体设计理念。讲解什么是中介者设计模式(Mediator Pattern),以及事件机制在PureMVC中的基础作用。**分析PureMVC架构基本的开发流程,以及两种不同类型的消息机制。四:开发一款游戏项目(Flappy Birds),集成PureMVC+SUIFW(此框架课程均以发布)两种框架模式,讲解在具体开发一款游戏产品时,如何分析、把握框架游戏脚本之间的关联关系,如果发挥PureMVC彻底解耦的开发理念。五:基于前面游戏项目的开发,进一步刨析PureMVC架构的高级开发技巧:    1:PureMVC框架类与脚本之间的相互通讯机理。    2:基于PureMVC框架原理,实现游戏项目模型与脚本的彻底分离技术,真正实现美工与研发的同步开发 与无缝对接技术。    3:掌握命令层(即:控制层)中SimpleCommand 与MacroCommand 的区别与具体开发应用技巧。 一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值