摘要: /** * 状态机的组成主要是:状态机框架对象(我程序代码中的StateMachine)状态机中的三种状态eat,work,sleep * 状态机负责指挥这三种状态(甚至更多种状态)的变换,让他们是按照一定的先后顺序来走,符合我们的预期目的。 * 然后就是到底谁需要使用状态机呢,我程序里面有2个对象用到了状态机,分别是vokie和NBA. * 他们是通过"sm = new StateMachine(this);"这样一句代码来实现对状态机的绑定, * 他们各自拥有一个状态机,不过我这里偷懒了,用了很蹩脚的instanceof方法来做的,其实可以写成2个状态机 * 绑定以后, 阅读全文
posted @ 2014-02-26 17:16 Mr轨迹 阅读(1210) 评论(0) 推荐(0) 编辑
摘要: 写这篇博客的主要目的是记录这样一个问题:Are you sure your NDK_MODULE_PATH variable is properly defined ? 这是我在编译android平台时遇到的。结果卡住了、按照网上的方法,配置了环境变量NDK_MODULE_PATH还是不行总是提示Ignoring unknown import directory结果看到了真正的解决方法,就是NDK_MODULE_PATH路径设置时需要注意的斜杠和反斜杠的问题。我错误的配置如下:NDK_MODULE_PATH=D:\cocos2d-x-2.1.5;D:\cocos2d-x-2.1.5\cocos 阅读全文
posted @ 2014-02-24 23:14 Mr轨迹 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 代码如下:package{ import flash.display.Sprite; import flash.utils.Dictionary; public class AsTestDemo extends Sprite { public function AsTestDemo() { //类似于Java中的Map var dict:Dictionary = new Dictionary(); //Dictionary强大之处 dict[3.01] = "vokie"; dict["123"] = -100; dict[123] = 100; dic 阅读全文
posted @ 2014-02-24 17:36 Mr轨迹 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 接触了第一个成熟的页游Flash游戏,名字就不说了,假设就是QQ农场这样的游戏。前端采用的是Flex、As3.0,后端采用Java的服务器,数据库是MySQL。总体的认识:(怎么浅显怎么说)玩家点击Flash游戏界面,产生事件,消息封装,通过client2serverReq的接口将消息encode()发送给Java服务器,Java服务器同样拥有这样的接口client2ServerReq将接收到的消息进行处理,一些与游戏相关的逻辑都是在服务器上处理的,比如农场的金币计算,收获的物品数量等等,当服务器将数据处理完毕以后,通过接口Server2ClientRes将处理后的数据返回给玩家,玩家也有这样 阅读全文
posted @ 2014-02-14 20:54 Mr轨迹 阅读(2743) 评论(0) 推荐(1) 编辑
摘要: 对于装饰模式的个人理解:就是在物体上进行某种状态的增强,直白的说:比如一个火箭,默认只有一个推进器,现在想让火箭飞行的更远一点,我们需要在原来的火箭基础上面再添加一个火箭推进器,这样我们原来的火箭就可以依靠2节推进器,飞行的更远了。假如以后我们需求改变,需要有一种飞行更远更远的火箭,我们不需要修改原来的火箭,只要继续追加推进器的数量就行了。这样的解决方案就是装饰模式的精髓。依照上面的案例解释,想想思路,一个燃料接口(FuelInterface),具体的2种燃料(Gas,Hydrogen),Gas下还包括一种增强型燃料(SuperGas),一个测试火箭(Rocket),开始写代码:public 阅读全文
posted @ 2013-12-30 13:41 Mr轨迹 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 命令模式,个人理解:将具体的类的A方法抽象提升到父类层次,这样在调用时,就可以直接依据当前类来选择相关方法并执行,有点像C++中的虚函数。简写的伪代码:父类 F 中的方法eat(). 子类A,B各自实现自己的eat方法,比如A.eat(){吃梨子},B.eat(){吃米饭}测试主程序:F a = new A();F b = new B();a.eat(); //显示吃梨子b.eat(); //显示吃米饭但是我们可以看出来a,b都是F类型,这个就可以在调用时方便数据的传送了。假如现在有一个函数eatSomething(F f),我们调用的时候就可以这样来写:eatSomething(a),eat 阅读全文
posted @ 2013-12-27 14:50 Mr轨迹 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 组合模式个人理解:首先确定它的结构是一个树形,用生活中的比方来说:一个公司的总经理下面有很多副经理,副经理下面有很多秘书。这就是一个树形结构,作为总经理,可以管理手下的所有副经理和秘书,而副经理只能管理手下拥有的那些秘书,他不能管理不归他管理的秘书。这就是组合模式应用的点,对整体(总经理)的操作,影响下属的所有受管理的对象,而对部分(副经理)的操作,不会影响到总经理。这种设计模式的微妙确实很多,对外界来说,我可以更有层次的管理。至于其它优点,可以自己琢磨,网上也有人总结了这种模式的优点,不过都是有点太死板,不够实例化,比如:将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对 阅读全文
posted @ 2013-12-27 10:30 Mr轨迹 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 备忘录模式的个人理解:使用Memento模式的好处在于可以将以前曾经拥有的状态再次获得。相当于游戏中的存档一样,我们经常在打Boss的时候会先存档,然后再打Boss,防止我们在挑战Boss的过程中牺牲了,然后前面关卡上玩的金币呀,经验呀,装备呀什么的都没有了。所以我们可以在挑战Boss失败的时候,重新读档,再次开打。这个我经常用在仙剑的游戏中。。。备忘录模式简单的一句话就是:事先把数据存档,将来重新读档。备忘录模式中主要的对象有:Originator,Memento,CareTaker。首先,作为一个Originator,它必须要有自己的数据域,以便被我们的Memento来复制存储。Memen 阅读全文
posted @ 2013-12-26 14:43 Mr轨迹 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 外观模式的主要解决的问题是:隐藏具体的内部实现,给外界的调用提供一个统一简单的接口,降低程序调用上面的耦合。比如我们驾驶一辆汽车,我们不需要考虑发动机的齿轮是怎么运转的,刹车片是怎么来刹车的。我们只需要有几个踏板,一个方向盘,几个按钮就可以驾驶一辆汽车了。这里我实现的是一个电脑开机的过程,同样电脑开机的具体操作已经被电脑封装起来了,我们只需要按一个按钮,就可以开机了。幕后的CPU,硬盘,显示器的一系列启动都被隐藏起来。CPU类:public class CPU { public void work() { System.out.println("CPU is working...&q 阅读全文
posted @ 2013-12-25 15:46 Mr轨迹 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 单例模式主要是为了确保在程序运行期,有且只有一个实例对象。整个程序共享这个唯一的单例对象。在程序的使用中,这种设计模式很常见。这里我就写一个我曾经学习时用到的案例:唯一的月亮。设计这个月亮类的时候,我们需要注意以下几个点1)私有构造方法 (防止外部可以用new来创建月亮类的实例)2)私有静态类实例3)公共方法getInstance,该公共方法为静态方法。然后思路清晰,上代码:package demo;public class Moon { private static Moon moon; //月有阴晴圆缺的状态 public String state; private Moon() { s. 阅读全文
posted @ 2013-12-25 11:55 Mr轨迹 阅读(271) 评论(0) 推荐(0) 编辑