cocos2d-x学习笔记【三】添加精灵及相关操作

本帖首发于自己新建的论坛网站:计算机专业学习网,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);
        
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值