Cocos2dx学习笔记(2)——精灵的创建
来源:互联网 发布:宁波大数据管理局 编辑:程序博客网 时间:2024/04/30 20:22
MyLayer.h
class MyLayer: public CCLayer{public: CREATE_FUNC(MyLayer); //static MyLayer *create(); static CCScene *scene(); bool init();};
非常简单的一个层,和上一章所讲的HelloWorldScene是一样的。由于是之前写的代码,所以就带上了CC的前缀,在这里就不做赘述。
MyLayer.cpp
bool MyLayer::init(){ if (!CCLayer::init()) //如果父类初始化失败,返回false { return false; } //父类初始化成功 //获取屏幕尺寸 CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //创建精灵 CCSprite *spr = CCSprite::create("bg.png"); spr->setPosition(ccp(winSize.width / 2, winSize.height / 2)); addChild(spr); return true;}
这里的init()比之上一章要丰富许多。判断父类初始化不用多说,至于winSize是用于存储窗口的大小。这里可以通过Director的单例来获取窗口大小,即Director::getInstance()->getWinSize()。接下来便是创建精灵,上一章讲过,除了可以添加CocosStudio中生成的csb文件,一般来说都是通过创建精灵来加入图片等元素。我们创建一个指向精灵的指针,并用“bg.png”来初始化精灵。这里要注意的是,文件的初始路径指定为工程文件下的Resources文件夹。如果还有更深一层的目录,用“/”来隔开。
初始化了精灵,我们可以使用setPostion方法来设定精灵位置。所谓的ccp是一个宏,用于坐标的参数设定,包含长和宽两个参数(也就是x和y)。这里我们利用事先获得的winSize将精灵位置设置为窗口正中央。另外,别忘记将精灵加入层。由于是层的init()方法,直接使用addChild()即可。
CCScene *MyLayer::scene(){ CCScene *scene = CCScene::create(); MyLayer *layer = MyLayer::create(); scene->addChild(layer); return scene;}
至于scene()方法的实现与上一章所讲的createScene()是一样的,同样不多费口舌。
精灵的创建方法有很多,这里的Sprite::create()自然是最简单的一种,下面介绍几种方法:
static CCSprite *create(const char *pszFileName);static CCSprite *create(const char *pszFileName, const CCRect &rect);bool initWithFile(const char *pszFileName);bool initWithFile(const char *pszFileName, const CCRect &rect);
前两种是静态工厂方法,后两种是精灵的初始化方法。另外,rect代表的是精灵显示纹理,至于什么是纹理,以后在单独总结。
0 0
- Cocos2dx学习笔记(2)——精灵的创建
- cocos2dx学习日记一:精灵的创建
- 小鬼学cocos2dX笔记01——创建精灵动画(一)
- 小鬼学cocos2dX笔记01——创建精灵动画(二)
- 【COCOS2DX-LUA 学习】精灵创建
- Quick cocos2dx-Lua(V3.3R1)学习笔记(4)------创建精灵 菜单,让我们做个最简单的点击菜单显示精灵吧
- cocos2dx创建精灵的方法
- cocos2dx 3.2 学习篇之二(精灵创建)
- DirectX11学习笔记 创建两个不同的精灵精灵
- cocos2d-x学习笔记——创建精灵
- cocos2d-x 学习笔记—缓存中创建精灵
- cocos2dx 精灵的移动(2)
- cocos2dx创建精灵的五种方法
- cocos2dx创建精灵的五种方式
- cocos2dx四种创建精灵的方法
- cocos2dx 创建精灵的5种方式
- Cocos2dx创建精灵的5中方法
- 【cocos2dx】创建精灵的两种方法
- 天鹅、大虾和梭鱼--ruby的动态派发
- OJ---字符串通配符
- 初学android-自定义控件以及控件属性
- qt 文件操作
- 100岁老龙虾没有被吃掉,却死在营救途中
- Cocos2dx学习笔记(2)——精灵的创建
- ant
- mjpeg-stream实现树莓派网络监控
- java保留小数--四舍五入-- String.format()
- json对象
- 手机尺寸
- VTK中oberver 和 command 的信息机制详解
- mysql 5.6内存问题
- Spring之事务管理