- 博客(10)
- 资源 (21)
- 收藏
- 关注
原创 cocos2d-x 游戏开发之有限状态机(FSM) (四)
虽然我们了解了FSM,并且可以写自己的FSM,但是有更好的工具帮我们完成这个繁琐的工作。SMC(http://smc.sourceforge.net/)就是这样的工具。
2015-01-22 18:32:09 3106
原创 cocos2d-x 游戏开发之有限状态机(FSM) (三)
有限状态机简称FSM,现在我们创建一个专门的FSM类,负责管理对象(Monkey)的状态。然后Monkey类就实现了行为与状态分离。Monkey类只负责自己的行为,MonkeyFSM作为Monkey的成员,负责状态调度。MonkeyFSM调用状态模式类的方法,状态模式类调用真实对象Monkey的方法。注意本文例子代码只是为了说明问题,并不能真正用于实际当中。其中Monkey与MonkeyFSM互相保存对方的指针,存在循环引用问题。
2015-01-22 15:36:01 3298 1
原创 cocos2d-x 游戏开发之有限状态机(FSM) (一)
基本上所有的软件都是有限状态机(finite-state machine,FSM)。它是一个有向图,由一组节点和一组相应的转移函数组成。通俗点讲,它是一个事件驱动系统的模型,这个模型由有限数目的状态,若干输入和状态与状态之间转换的规则组成。在某一时刻,有一个或一组状态是FSM的当前状态,FSM接收输入事件并根据转换规则,将当前状态转为新的状态。正是由于这三个元素的组合,使得FSM具备了自己的行为特点。在游戏开发中,FSM被用来实现人工智能的决策过程,控制游戏对象的行为。
2015-01-22 14:47:05 4112 1
原创 cocos2d-x 游戏开发之有限状态机(FSM) (二)
当我们需要添加了一种新的状态时,不需要去修改长长的条件判断语句了,只需要构造一个新的状态类,修改它的前序和后序状态类就可以了。对于任何一个状态的特有行为,都是独立的,不会混杂在其它状态的代码里。原为决定状态转移逻辑的那个长长的条件语句不见了,而是被分布在State的子类之间。另一方面,从设计的角度看,原先对当前状态的标识,是FSM内部的一个自有变量,状态与状态之间的转换也仅仅是表现为对自有变量的赋值,如果这个自有变量衍生为变量数组时,那极易出现FSM内部状态不一致的情况,而State的引入可以使得这样的情况
2015-01-22 14:44:56 2728
原创 C语言生成32位和64位随机数算法
C语言生成32位和64位随机数算法/*** randstd.h** Standard definitions and types, Bob Jenkins** 2015-01-19: revised by cheungmine*/#ifndef _RANDSTD_H__#define _RANDSTD_H__#ifndef STDIO# include # defi
2015-01-19 14:56:07 10012
原创 cocos2d-x 读写 xml 文件
使用cocos2d-x开发2d游戏确实方便,但是对于一般的小游戏,经常需要的工作是UI布局设计和调整,代码改来改去,真不方便。现成的Cocos Studio或者SpriteBuilder当然更适合设计游戏。作为程序员,如果想在纯命令行模式下开发游戏,早晚要有自己的UI模块。不妨称之为cocos2d-layout。cocos2d-layout相当于舞台的布景。布景师根据导演的要求(xml)来生成舞台。布景师在现实生活中当然是人来做,在程序里就是一段程序或代码库。这个没用通用的万能的库可以做这个事情,因为游戏的
2015-01-15 17:47:42 2863
原创 VC工程的.gitignore模板
VC工程的.gitignore模板文件内容如下:#======================================# .gitignore# # 2015-01-09 created by cheungmine#======================================.git#--------------------------# ignored f
2015-01-09 15:05:09 2969
原创 linux上 java 使用 javasqlite
linux上 java 使用 javasqlitehttp://www.ch-werner.de/javasqlite/1) 下载:http://www.ch-werner.de/javasqlite/javasqlite-20140624.tar.gz2) 解压后进入目录编译$ cd javasqlite-20140624$ ./configure$ make3) 拷贝libsqlite_jni
2015-01-04 14:14:27 2747
nasm-2.15.05-win.zip
2021-07-15
shapefile-1.4.tar.gz
2021-06-15
C 语言实现的内存池 mpool.c : 适用于Windows和Linux
2012-12-07
mbrfix_win7_vista_xp_32_64
2011-12-19
使用Ruby on Rails开发LBS网站初探示例代码
2011-07-21
拓扑算法的C语言实现完全代码
2010-06-25
struct2variant_cheungmine.rar
2010-06-10
docktabframe_vs2005_wtl80.rar
2009-03-06
lib3ds20_with_win32_and_sgi_opengl_all_in_one
2009-02-15
cheungmine的最新的oradbi库
2008-08-27
oradbi_project_cheungmine
2008-04-01
uuidgen
2007-09-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人