Cocos2d-x学习笔记(2)- 场景的基本元素
接下来我写的文章的顺序是按照我写游戏的开发过程来写的,可能有的顺序不是很合理,大家可以根据自己的需要看。
在上次的HelloWorld中就简单地介绍过了层和场景这两个概念,今天就主要讲这个内容。新建一个MenuScene类,在头文件里添加virtual bool init()和static cocos2d::CCScene* scene()两个函数,CCScene是CCNode的子类,是个抽象的概念,当时CCNode不同的是CCScene的锚点是在屏幕中心的,我们使用CCScene是用它来作为所有节点的父节点,现在要在cpp文件实现Scene
要实现scene的初始化,需要在头文件里添加宏:LAYER_NODE_FUNC(MenuScene);这个宏是在引擎内部的CCLayer.h内定义的(所以你同样要让你的MenuScene类继承自CCLayer),它的主要作用是为自己新建的一个层添加node()函数,这个函数的作用是new一个实例,并将它加入到autorelease,意味着所有由node()函数得来的指针都不需要手动释放。Scene是CCDirector切换的基本单位。
接下来就是初始化init函数,如果你要添加一个图片按钮背景图片你有很多种方式:
1:CCMenuItemImage
2:CCTextrue2D
如果使用CCTextrue2D的话,会使用OpenGL来绘制图片纹理,而不是图片流,所以对内存的占用更加小。this->addChild(.....,1)是把item添加到层上,1就是zOrder,纵坐标上的层序,高的层会覆盖低的层绘制的东西。
3:CCMenuToggle
3:CCMenuToggle
cocos2d-x提供一个方便的item来表现类似于开关的按钮,可以用label和sprite来初始化
4:CCSprite
精灵是游戏中最有表现力的,你可以用精灵来创建任何元素
这几个元素是创建一个基本菜单所需要的,不过具体如何灵活地运用这几个方法还是需要多加练习的比如场景切换的效果以及如何通过tag获得节点等等。。。具体的函数可以去官网看API
作者:John_cdy
补充:移动开发 , 其他 ,