摘要: 上一篇博客中,我们讲到了Notification类(消息类),Notification(消息)是连接观察者(observer)和通知者(notifier)之间的桥梁。这一篇博客,主要是在代码层面上讲一下observer类。 通过源码,我们可以看出Observer类有两个属性,分别是notify和context,notify是函数类型,context是object类型,其中notify是Observer对象(观察者)接收到消息之后执行的回调函数,context是回调函数的执行作用域。/** * The Observers callback Function * * @private... 阅读全文
posted @ 2013-10-06 14:00 iRavior 阅读(1379) 评论(0) 推荐(0) 编辑
摘要: 上篇博客,我们已经就PureMVC的设计模式进行的分析,这篇博文主要分析Notification(消息)类的实现。 通过Notification的构造函数可以看出,PureMVC中的Notification(消息)含有三个属性,消息名,消息体(传递数据),消息类类型。 其构造函数如下:function Notification(name, body, type){ this.name= name; this.body= body; this.type= type;};name是消息名,body是消息体,type是消息类型。每个属性都有get/set方法,例如:get... 阅读全文
posted @ 2013-10-04 22:52 iRavior 阅读(1355) 评论(0) 推荐(0) 编辑
摘要: 假设一种情景,在程序开发中,我们需要在某些数据变化时,其他的类做出相应,例如在游戏中,升级一件装备,会触发玩家金币数量改变,背包数据改变和冷却队列数据改变等等。我们不可能设置setInterval,每隔一段时间就去检测数据有没有发生变化,那样效率很低。我们更希望那些具有变化属性的类能够将自己数据变化这一消息自动推送给希望检测这些变化的其他类。这个时候,”观察者模式“出现了,它能很好地替我们解决了这个问题。这种设计模式工作原理映射到实际生活中,就像我们去医院排队,不能隔两分钟就去问大夫“轮到我没”,而是坐在那里等大夫的通知,大家都接受到一个名字信号,叫到谁谁就去。而观察者就是这样一种模式... 阅读全文
posted @ 2013-10-04 22:41 iRavior 阅读(1612) 评论(1) 推荐(0) 编辑
摘要: 在HTML5游戏开发中,js可以使用Event对象的addEventListener(添加事件监听)、dispatchEvent(触发事件)实现监听机制,如果在coocos2d-x中,去实现这种机制该怎么办?根据之前PureMVC(JS版)的经验,其中经典的观察者模式可以让我们引用到cocos2d-x中。我们可以尝试着把PureMVC(C++版)中的Notification(我称之为消息机制)引用进来,能让我们很轻易在Cocos2d-x开发的游戏中地实现监听。其实Cocos2d-x在设计中,本身有用到观察者模式(Observer Model)。使用CCNotificationCenter可以. 阅读全文
posted @ 2013-09-30 22:57 iRavior 阅读(1854) 评论(0) 推荐(0) 编辑
摘要: 在游戏开发中,对于一般网络游戏,由于需要多人协同开发,每个人负责不同的模块开发,为了减少耦合,需要用来一些MVC框架,减少模块之间的耦合。我们现在使用的mvc框架是pureMVC。pureMVC的官网:http://www.puremvc.orgpureMVC的Git地址:https://github.com/PureMVC/puremvc-js-multicore-framework/wikipureMVC是一个轻型的、基于观察者模式设计的MVC框架。我们首先从Git上面把pureMVC下载下来,可以看到如下目录:pureMVC是开源框架,在src目录下,我们可以看到这款框架的源代码。下面. 阅读全文
posted @ 2013-09-30 21:46 iRavior 阅读(2331) 评论(0) 推荐(0) 编辑
摘要: HTML5游戏的开发过程中是在浏览器上进行运行调试的,所以首先我们需要建立一个html页面。 其中,我们把所有的canvas都放到一个viewporter(视图)里面,因此,在body中放置了一个id为viewporter的div中。具体代码如下:①index_src.html页面 SLG Game ②其中,我们需要基本设置一些页面,不然页面光秃秃的,很难看,开发过程中影响心情,所以我们插入了css文件。@charset "utf-8";html { -webkit-text-size-adjust: 100%; }body{ font-fami... 阅读全文
posted @ 2013-09-30 16:27 iRavior 阅读(671) 评论(0) 推荐(0) 编辑
摘要: 游戏开发过程中经常需要处理各种事件,而HTML5游戏开发中,所有的场景和UI面板都是绘制在Canvas上面,假设需要对某一UI面板上的关闭按钮添加事件监听,采取的方法是对关闭按钮图片资源进行像素处理。如果只是在浏览器中打开本地图片资源文件,由于浏览器安全策略限制(跨域)无法实现对图片的像素处理(getImageData),所以我们需要一个web容器来运行我们的HTML5游戏,解决跨域问题。详情可见文章:http://blog.project-sierra.de/archives/1577 阐述这么多,只为说明一点:HTML5游戏需要放在web服务器里面运行。但是,如果HTML5游戏... 阅读全文
posted @ 2013-09-29 11:15 iRavior 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 开发环境:1、操作系统:MacOS 10.8.52、本地web服务器:Apache 2.2.24 (Window环境推荐使用WampServer)3、编码工具:WebStrom 7.04、调试工具:chrome自带5、游戏引擎:x-canvas一、新建项目:1、下载安装WebStrom(webstrom 是收费工具,网上有注册码生成工具,如果需要可留邮箱)2、安装完WebStrom(安装过程很简单,就不详细讲解),移动WebStrom可以看到下面界面:3、新建项目:现在我们已经在webstrom上面新建完一个项目,接下来,我们会进行项目编码。PS:webstrom自带的一些主题,我不是很喜欢, 阅读全文
posted @ 2013-09-28 14:08 iRavior 阅读(599) 评论(0) 推荐(0) 编辑
摘要: 2012年前后,HTML5游戏凭借跨平台、易移植、部署简单、节省成本等优点被炒的火热,经过一两年的快速发展,市场出现了一些成功地HTML5游戏产品,像磊友的《修仙三国》,神奇时代的《三国时代OL》,UC的《松鼠大战》等等,这些成功的商业化HTML5游戏产品让广大HTML5技术爱好者看到了希望。但由于HTML5自身的性能瓶颈,市场上HTML5游戏所在市场比例尚少。为了加速HTML5游戏的发展,突破HTML5游戏性能瓶颈,目前已经有很多公司推出了针对HTML5游戏加速的处理引擎或HTML5游戏封装工具,像x-canvas,Sphinx,AppCan,Phonegap等等,这些游戏处理引擎或封... 阅读全文
posted @ 2013-09-28 13:26 iRavior 阅读(620) 评论(0) 推荐(0) 编辑
摘要: Data类型URL 阅读全文
posted @ 2013-02-28 21:19 iRavior 阅读(393) 评论(0) 推荐(0) 编辑