cocos2d-x学习笔记【三】添加精灵及相关操作
来源:互联网 发布:淘宝网咸鱼二手 编辑:程序博客网 时间:2024/05/01 23:56
本帖首发于自己新建的论坛网站:计算机专业学习网,www.hua2buxie.cn。有很多不懂,写的也不好,望大家见谅!欢迎大家去我的网站发帖留言或者发教程。
上一节大概的介绍了下精灵和其他元素的概念,在本节中说下如何具体的添加精灵。
一:创建精灵
一般来说创建精灵的时候直接用一个图片来初始化它,比如auto sprite = CCSprite::create("Player1.png");我们用Player1.png来初始化加载一个精灵。auto是c++11中的新增加的,它能够自动判断后面是什么数据类型,如果读者不清楚,可以去查询下相关的知识。等会我也会在本网站(计算机专业学习网)中c++板块简单讲解下。回归正题,那么那个创建的sprite的代码是写在哪里呢?本次就是写到那个场景类init函数中,直接在创建自己场景的时候初始化。
二:加载显示精灵
刚刚那个sprite是已经用一个图片去初始化的图片精灵。我们还需要将它显示出来,也就是把它添加到当前层中,或者场景中。所用的方法就是this->addChild(sprite);
这样就能够成功添加进当前场景了,但是有一点重要的是我们没有说明他的位置。因此我们还看不到。
三:调整位置
调整位置使用的是精灵自己的成员函数setPosition,我设置的位置是(200,100)。代码是sprite->setPosition(200,100);
首先的效果如下图。在cocos2d-x中,坐标(0,0,)在左下角。后面我会讲下在cocos2d-x中的坐标系相关知识。
在init中总的代码如下:
bool CMyScene::init(){ if (!Layer::init()) { return false; } auto visibleSize = Director::getInstance()->getVisibleSize();//获取总大小 auto origin = Director::getInstance()->getVisibleOrigin();//获取初始点 auto sprite = CCSprite::create("Player1.png"); //auto sprite = Sprite::create("Player1.png");//这个效果和上面一样的 //sprite->setPosition(ccp(origin.x+visibleSize.width/2,origin.y+visibleSize.height/2)); sprite->setPosition(200,100);</div><div>//sprite->setPosition(ccp(200,100));//这个效果和上面一样this->addChild(sprite);}
四:常用操作
1、锚点
锚点就是所有旋转,移动,缩放的参考点。cocos2d-x中默认的参考点是精灵中间点。锚点用比例来表示范围,为0~1。(0,0)代表坐下角,(1,1)代表精灵右上角。设置精灵描点的函数为setAnchorPoint。
比如设置:sprite->setAnchorPoint(ccp(0,0));//代表把锚点设置为精灵左下角。
我这样设置后精灵相对场景有一定的移动,具体自己对比下两张图(第一张图在上面)。
2、旋转
setRotation(angle),其中angle为角度而不是弧度,正数为正时针旋转,当然负数就为逆时针旋转咯。
比如:sprite->setRotation(90);//表明旋转顺时针旋转90度。
实现效果如下:
3、缩放
setScale(s);//其中s以1为界限,大于1就是方法,大于0小于1就是缩小,如果为负数就是旋转180度再进行放大缩小。
比如:sprite->setScale(0.5);//表明缩小一半
实现效果如下:
4、透明度
setOpacity(s),其中s范围0到255,0完全透明,255完全不透明。
比如:sprite->setOpacity(40);
实现效果如下:
还有很多,以后再讲~~~~
总结:马上给出总的自己新建场景的init函数代码:
bool CMyScene::init(){ if (!Layer::init()) { return false; } auto visibleSize = Director::getInstance()->getVisibleSize(); auto origin = Director::getInstance()->getVisibleOrigin(); auto sprite = CCSprite::create("Player1.png"); //auto sprite = Sprite::create("Player1.png"); //sprite->setPosition(ccp(origin.x+visibleSize.width/2,origin.y+visibleSize.height/2)); sprite->setPosition(200,100); this->addChild(sprite); sprite->setAnchorPoint(ccp(0,0)); sprite->setRotation(90); //sprite->setScale(0.5); sprite->setOpacity(40); }
- cocos2d-x学习笔记【三】添加精灵及相关操作
- Cocos2d-x精灵学习笔记
- Cocos2d-x精灵学习笔记
- cocos2d-x学习笔记-CCSprite(精灵)
- cocos2d-x学习笔记-CCSprite(精灵)
- cocos2d-x学习笔记-CCSprite(精灵)
- cocos2d-x学习笔记-CCSprite(精灵)
- 【Cocos2d-x 3.0学习笔记】精灵特效
- cocos2d-x学习笔记-CCSprite(精灵)
- cocos2d-x初探学习笔记--精灵类
- cocos2d-x初探学习笔记(21)--精灵类
- cocos2d-x学习笔记(16)--spritesheet(精灵表单)
- cocos2d-x 菜鸟学习笔记五(精灵与动画)
- cocos2d-x 菜鸟学习笔记十一(触摸控制精灵)
- cocos2d-x 学习笔记—缓存中创建精灵
- cocos2d-x学习笔记02——精灵贴图
- cocos2d-x学习笔记——创建精灵
- Cocos2d-x学习笔记(五)-------->CCSprite精灵
- Android百度地图之位置定位和附近查找代码简单实现 (上)
- 沙盒缓存
- 【复习笔记】设计一个学习系统
- PAT-1015. 德才论 (25)
- 程序错误代码
- cocos2d-x学习笔记【三】添加精灵及相关操作
- 跨年夜写给自己的话
- 黑马程序员——折纸问题、九九乘法表和菱形图案的打印
- 浅析iOS应用中的main()和UIApplication
- UNIX环境高级编程__针对apue.h找不到的情况以及log错误信息输出的问题
- CentOS系统中常用查看日志命令
- 从Cheney算法->广度优先搜索->倒酒问题(JAVA实现)
- IoC与DI
- Android开发Camera常规应用