序言

回想cocos2dx,之前在mac+Xcode平台学习了一遍cocos2dx,一年时间不接触cocos了。一直在搞Unity3d。如今还是就之前所学温故温故,但不再用Xcode来写。用经常使用的Windows+VS2012做为开发环境来回想cocos2dx。从CCSprite精灵类開始回想起。

CCSprite多种创建方式

创建CCSprite精灵类有好多中方式,好多构造函数,这里列举集中创建形式。包含要显示某个部分和缓存帧,2D贴图创建和普通创建等。
        if ( !CCLayer::init() )
{
return false;
} CCSize size = CCDirector::sharedDirector()->getWinSize();
//载入精灵
//方式一
CCSprite *sprite = CCSprite::create("icon.png"); //123px*123px的图片
sprite->setPosition(ccp(size.width*0.2,size.height*0.7));
this->addChild(sprite); //方式二
//设置显示区域
CCSprite *sprite1 = CCSprite::create("icon.png",CCRect(0,0,60,60)); //仅仅取60px*60px的图片
sprite1->setPosition(ccp(size.width*0.5,size.height*0.7));
this->addChild(sprite1); //方式三
//创建2d文理来创建精灵
CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage("icon.png");
CCSprite *sprite2 = CCSprite::createWithTexture(texture);
sprite2->setPosition(ccp(size.width*0.8,size.height*0.7));
this->addChild(sprite2); //方式四
//还是设置显示区域
CCSprite *sprite3 = CCSprite::createWithTexture(texture,CCRect(61.5,61.5,61.5,61.5));
sprite3->setPosition(ccp(size.width*0.2,size.height*0.3));
this->addChild(sprite3); //方式五
//缓存帧
CCSpriteFrame *frame = CCSpriteFrame::create("icon.png",CCRect(0,0,61.5,61.5));
CCSprite *sprite4 = CCSprite::createWithSpriteFrame(frame);
sprite4->setPosition(ccp(size.width*0.5,size.height*0.3));
this->addChild(sprite4); //方式六
/*CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("img.plist");
CCSprite *sprite5 = CCSprite::createWithSpriteFrameName("icon.png");
sprite5->setPosition(ccp(size.width*0.7,size.height*0.3));
this->addChild(sprite5);*/

CCSprite缩小和放大

CCSprite->SetScale():參数介于0~无穷,就可实现精灵的放大和缩小功能。
        //精灵的缩小和放大
CCSprite *spriteS= CCSprite::create("icon.png"); //123px*123px的图片
spriteS->setPosition(ccp(size.width*0.2,size.height*0.5));
spriteS->setScale(0.5f);
this->addChild(spriteS); CCSprite *spriteM = CCSprite::create("icon.png"); //123px*123px的图片
spriteM->setPosition(ccp(size.width*0.7,size.height*0.5));
spriteM->setScale(1.5f);
this->addChild(spriteM);

SetScaleX,SetScaleY是仅仅针对X、Y方向的缩放
比如:sprite->setScaleX(1.5f);              sprite2->setScaleY(1.5f);

CCSprite旋转

CCSprite->setRotation();參数是度数,正数代表顺时针旋转多少度,负数代表逆时针旋转多少度。

        //精灵的旋转
CCSprite *spriteL= CCSprite::create("icon.png"); //123px*123px的图片
spriteL->setPosition(ccp(size.width*0.3,size.height*0.5));
spriteL->setRotation(30.0f);
this->addChild(spriteL); CCSprite *spriteR= CCSprite::create("icon.png"); //123px*123px的图片
spriteR->setPosition(ccp(size.width*0.8,size.height*0.5));
spriteR->setRotation(-30.0f);
this->addChild(spriteR);

CCSprite倾斜

CCSprite->setSkewY();參数是度数,正数代表顺时针倾斜多少度。负数代表逆时针倾斜多少度。
//精灵的倾斜
CCSprite *spriteL= CCSprite::create("icon.png"); //123px*123px的图片
spriteL->setPosition(ccp(size.width*0.3,size.height*0.5));
spriteL->setSkewY(30.0f);
this->addChild(spriteL); CCSprite *spriteR= CCSprite::create("icon.png"); //123px*123px的图片
spriteR->setPosition(ccp(size.width*0.8,size.height*0.5));
spriteR->setSkewY(-30.0f);
this->addChild(spriteR);

CCSprite设置不可见和变色

//精灵可见和变色
//设置不可见
CCSprite *spriteL= CCSprite::create("icon.png"); //123px*123px的图片
spriteL->setPosition(ccp(size.width*0.3,size.height*0.5));
spriteL->setVisible(false);
this->addChild(spriteL);
//变成红色
CCSprite *spriteR= CCSprite::create("icon.png"); //123px*123px的图片
spriteR->setPosition(ccp(size.width*0.8,size.height*0.5));
spriteR->setColor(ccc3(255,0,0));
this->addChild(spriteR);

CCSprite设置透明度

//设置透明度
CCSprite *spriteL= CCSprite::create("icon.png"); //123px*123px的图片
spriteL->setPosition(ccp(size.width*0.3,size.height*0.5));
spriteL->setOpacity(100);//0~255
this->addChild(spriteL); CCSprite *spriteR= CCSprite::create("icon.png"); //123px*123px的图片
spriteR->setPosition(ccp(size.width*0.7,size.height*0.5));
spriteR->setOpacity(230);//0~255
this->addChild(spriteR);

CCSprite替换图片

//替换图片
CCSprite *spriteR= CCSprite::create("icon.png"); //123px*123px的图片
spriteR->setPosition(ccp(size.width*0.7,size.height*0.5));
spriteR->setOpacity(230);//0~255
this->addChild(spriteR);
spriteR->setTexture(CCTextureCache::sharedTextureCache()->addImage("CloseNormal.png"));

欢迎关注我的围脖

==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:375151422      cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================

[windows+cocos2dx]CCSprite精灵类的更多相关文章

  1. cocos2d-x ios游戏开发初认识(五) CCsprite精灵类

    这次写一下精灵创建的几种类型: 一.通过文件创建: 在原有的基础上加入例如以下代码: //一.通过文件创建精灵 CCSprite *bg =CCSprite::create("map.png ...

  2. [原创]cocos2d-x研习录-第二阶 概念类之精灵类(CCSprite)

    上一节说布景层CCLayer是小容器,那么精灵类CCSprite就是容器添加的内容,它是构成游戏的主要元素.精灵这个名称应该是游戏专用,它表示游戏中玩家操作的主角.敌人.NPC(Non Player ...

  3. Cocos2dx项目启程一 之 封装属于我的精灵类

    给自己的假期就快要结束了,该要做点事情了,哪怕简单的不好的也比不做的有意义. /*#pragma once 保证头文件只被编译一次 #pragma once是编译器相关的,就是说即使这个编译系统上有效 ...

  4. Cocos2d-x 3.1.1 学习日志7--7分钟让你了解cocos2d-x3.1.1 Sprite精灵类

    精灵(Sprite)是游戏里面的角色,比方敌人.游戏里面运动的物体等等,所以精灵是游戏里面一个很常见的概念.差点儿无处不在. 在Cocos2D-x里面精灵是用Sprite类来进行表示的,它能够用一张图 ...

  5. Cocos2d-x Lua中Sprite精灵类

    精灵类是Sprite,它的类图如下图所示. Sprite类图 Sprite类直接继承了Node类,具有Node基本特征.此外,我们还可以看到Sprite类的子类有:PhysicsSprite和Skin ...

  6. 在lua脚本中使用我们自定义的精灵类

    首先创建cocos2dx-lua项目,然后在项目中添加我们的自定义精灵类:这里Himi类名为:HSprite // // HSprite.h // cocos2dx_lua_tests_by_Himi ...

  7. Cocos2d-JS中的Sprite精灵类

    精灵类是cc.Sprite,它的类图如下图所示.cc.Sprite类直接继承了cc.Node类,具有cc.Node基本特征. 创建Sprite精灵对象 创建精灵对象可以使用构造函数实现,它们接受相同的 ...

  8. 不可或缺 Windows Native (17) - C++: 类与对象

    [源码下载] 不可或缺 Windows Native (17) - C++: 类与对象 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 类与对象 示例1.类的设计CppE ...

  9. windows phone 了解LinearGradientBrush类和RadialGradienBrush类(11)

    原文:windows phone 了解LinearGradientBrush类和RadialGradienBrush类(11) 我们了解到在能在xaml中完成的设计,一般在隐藏文件中也可通过代码完成: ...

随机推荐

  1. 关于wait notify notifyall的学习心得

    wait()能让同步的线程挂起并将锁抛出,sleep只能使线程“睡了“,线程的锁并不会抛出,所以sleep还可以作用于非同步的线程.notify与notifyall能将被挂起或睡着的线程唤醒,但并不是 ...

  2. tcMalloc 配置和优化 nginx 高性能

    tcMalloc优化nginx  记住:nginx一定要先启动 1>下载安装libunwind: #wget  http://download.savannah.gnu.org/releases ...

  3. php匿名函数和可变参数函数

    php匿名函数和可变参数函数 简介 直接上代码了: <?php $test1 = function($value) { echo $value; }; $test1('HelloWorld'); ...

  4. php实现邮箱激活功能

    php实现邮箱激活功能 一.样例 二.文件结构 其中swiftmailer-master是第三方插件,用来发验证邮件 三.核心代码 doAction.php 响应页面 <?php header( ...

  5. ES 處於“initializing”狀態,此時主節點正在嘗試將分片分配到集群中的數據節點。 如果您看到分片仍處於初始化或未分配狀態太長時間,則可能是您的集群不穩定的警告信號。

    指標要點: Cluster status: 如果集群狀態為黃色,則至少有一個副本分片未分配或丟失. 搜索結果仍將完成,但如果更多的分片消失,您可能會丟失數據. 紅色的群集狀態表示至少有一個主分片丟失, ...

  6. Flask_URL和视图

    1.Flask_URL和视图 1.1.第一个flask程序   from flask import Flask #创建一个Flask对象,传递__name__参数进去 app = Flask(__na ...

  7. mobiscroll插件的基本使用方法

    前一阵子接触到了mobiscroll插件,用在移动端的日期选择上,感觉倍棒,于是便敲了一个小案例,与大家一起分享分享 <!DOCTYPE html> <html lang=" ...

  8. Android实现图片相似度

    Android实现图片相似度 最近公司有一个需求,就是希望能判断用户提交的照片是否是身份证的正面或者反面.可以通过预设一张拍摄清晰的身份证正面或者反面,来对比是否相似,那么问题就转化为如何计算两张图片 ...

  9. Python 之 入门须知

    1.Python2.0不支持中文,3.0支持 2.版本问题

  10. cache(缓存)的作用

    cache的作用: 连接文件.内存与应用,为信息流在三者之间流动提供通道: 存储管理:对外与对内: 存取效率: 多线程: 一次存储:分批存储? 系统的缓存控制机制(虚拟内存)使用分段分页与命中机制. ...