pb的5种类:
custom class :不可见用户自定义类 ,如实现函数的多态
standard class :标准不可见空间 扩展类
custom visual :用户自定义 可见类
External Visual: 外部可视类,如ocx引入
Standard Visual: PB标准可视空间扩展
“Control”和“Object”的区别:
在PB里,“Control”和“Object”都是类,只不过前者是可视类,后者是不可视类,叫法不同罢了。无论使用哪种方式创建的,对于PB库画板来说,都是UserObject,通过Insert-Object-UserObject或Insert-Control-UserObject都可以把它插入到Window里,当然,这个对象应该是可视的。另外的插入办法是通过PB的IDE左侧的对象树,直接用鼠标Drag就可以了,这种方法不仅可以插入可视的UserObject,还可以插入不可视的类(可以通过View-Non Visual object llist看到它)
<===============>
在布局方面:完全使用Cocosbuilder来搭建。Cocosbuilder中创建好ccbi文件后,要关联Custom class,variable members, selector等,在代码中可以获取ccbi中所有的节点,并对其进行控制。创建ccb文件时主要有root为CCLayer和CCNode两种方式。所有位置,以及节点间的从属关系,引用关系都可以在ccbi中设置好。游戏中的场景都应该是Layer,所有游戏中的对象都应该是Node.
在逻辑方面:在代码中,Layer应该继承CCLayer,读取ccbi中的主Layer,代码中应该有OnEnter()和OnExit()的控制Layer的方法,有Update()的刷新全局的方法。所有的游戏对象都应该继承自己定义的GameObject类,该类继承至CCNode,并且有Update()等方法,因此我们需要在Layer中的每一帧的Update中遍历其所有子节点,并且调用它们各自的Update方法,达到整个游戏的更新。当然我们还需要其他的MenuLayer、backGround类等,它们共同组成了一个GameScene,在该Scene中,我们还需要处理游戏中比如游戏结束,过关等逻辑。
PS: cocos2d-x读取ccbi主要用到CCBAnimationManager、CCBAnimationManagerDeleger、CCBReader;
读取ccbi可以使用readNodeGraphFromFile、createSceneWithNodeGraphFromFile 前者返回一个Node,后者返回一个Scene
整个游戏的构架大致如此。