zoukankan      html  css  js  c++  java
  • Sprite(精灵)&& 三个特殊的层Layer

    用来作为以后复习使用。

    1
    #include "ScenceScend.h" 2 3 CCScene* ScenceScend::scene() 4 { 5 CCScene* s = CCScene::create(); 6 ScenceScend* layer = ScenceScend::create(); 7 s->addChild(layer); 8 return s; 9 10 } 11 bool ScenceScend::init() 12 { 13 CCLayer::init(); 14 //1.通过文件直接创建精灵 15 //CCSprite* sprite = CCSprite::create(); 16 //CCSprite* sprite = CCSprite::create(filename,CCRect); 17 //CCSprite* sprite = CCSprite::create(filename); 18 19 20 //2.通过纹理去创建精灵 21 22 //CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("filename"); 23 //CCSprite* sprite = CCSprite::createWithTexture(texture); 24 //CCSprite* sprite = CCSprite::createWithTexture(texture,CCRect);也可取图片局部 25 //addChild(sprite); 26 //3通过精灵帧来创建 27 /* 28 CCSize size = CCDirector::sharedDirector()->getWinSize(); 29 30 CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("HelloWorld.png"); 31 CCSize size2 = texture->getContentSize(); 32 CCSpriteFrame* frame = 33 CCSpriteFrame::createWithTexture(texture, CCRectMake(size2.height / 4, size2.width / 4, size2.width / 2, size2.width / 2)); 34 CCSprite* sprite = CCSprite::createWithSpriteFrame(frame); 35 sprite->setPosition(size.width/2,size.height/2); 36 addChild(sprite); 37 */ 38 39 //4.通过精灵帧缓存 去创建精灵 40 41 CCSize size = CCDirector::getInstance()->getWinSize(); 42 //CCTexture2D 贴图类 43 CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("HelloWorld.png"); 44 CCSize size2 = texture->getContentSize(); 45 CCSpriteFrame* frame = 46 CCSpriteFrame::createWithTexture(texture, CCRectMake(size2.height / 4, size2.width / 4, size2.width / 2, size2.width / 2)); 47 CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFrame(frame,"HXL"); 48 CCSprite* sprite = CCSprite::createWithSpriteFrameName("HXL"); 49 sprite->setPosition(size.width / 2, size.height / 2); 50 addChild(sprite); 51 52 /* 53 //调用父类的初始化。因此这里是 子类方法覆盖父类了。 54 CCLayer::init(); 55 CCLabelTTF *label = CCLabelTTF::create("hxltom","Arial",36); 56 label->setPosition(CCPoint(100,200)); 57 addChild(label); 58 */ 59 60 return true; 61 }

    三个特殊的层。

     1 #include "example2.h"
     2 
     3 CCScene* example2::scene()
     4 {
     5     CCScene* s = CCScene::create();
     6     example2* layer = example2::create();
     7     s->addChild(layer);
     8     return s;
     9 
    10 }
    11 bool example2::init()
    12 {
    13     //CCLayerColor::init();
    14     CCLayerColor::initWithColor(ccc4(255,0,0,255));
    15     //CCLayerColor::init();默认也是黑色
    16 
    17 
    18     //三个特殊的层。
    19     /*
    20     1.CCLayerColor 可改变layer的背景,设置层的大小
    21     2.CCLayerGradient 有渐变效果的层
    22     3.CCLayerMultiplex
    23 
    24     CCLayerColor::create(ccColor4B());
    25     ccColor4B()这个类封装了颜色,里面有4个参数 r g b o  o代表透明度
    26     CCLayerColor::create(ccc4(255,0,0,255)); 红,绿,蓝,透明度
    27 
    28     CCLayerGradient
    29     */
    30     
    31 #if 0 
    32     //CCLayerColor !!!!!!!!!!!!
    33     CCSize size = CCDirector::getInstance()->getWinSize();
    34     CCLayerColor* layer = CCLayerColor::create(
    35         ccc4(200,200,200,255),size.width/2,size.height/2
    36         ); 
    37     addChild(layer);
    38 #endif
    39 
    40 #if 0
    41     //CCLayerGradient 有渐变效果的层,透明度也可以渐变,渐变方向(第三个参数)
    42     //渐变默认从上往下。cp(0,1)从底下往上渐变 cp(1,1)左下角到右上角
    43     //CCLayerGradient* layer = CCLayerGradient::create(ccc4(255,0,0,255),ccc4(255,0,255,255));
    44     //一开始设置渐变方向
    45     CCLayerGradient* layer = CCLayerGradient::create(
    46         ccc4(255, 0, 0, 255), ccc4(255, 0, 255, 255),
    47         ccp(0,1)
    48         );
    49     /*
    50    //生成之后改变渐变方向 (两种方式等价的)
    51     CCLayerGradient* layer = CCLayerGradient::create(ccc4(255, 0, 0, 255), ccc4(255, 0, 255, 255));
    52     layer->setVector(ccp(0,1));
    53     addChild(layer);
    54     */
    55 
    56 #endif
    57 
    58     //CCLayerMultiplex可以包含好几个层,但是只是显示其中一个
    59     CCSize size = CCDirector::getInstance()->getWinSize();
    60     CCLayerColor* layer1 = CCLayerColor::create(ccc4(255,255,0,255),size.width/2,size.height/2);
    61     CCLayerGradient* layer2 = CCLayerGradient::create(ccc4(255, 0, 0, 255), ccc4(255, 0, 255, 255));
    62     CCLayerMultiplex* layer = CCLayerMultiplex::create(layer1, layer2, NULL);
    63 
    64     layer->switchTo(0);//设置显示第一个
    65     addChild(layer);
    66 
    67     setTouchEnabled(true);
    68     setTouchMode(kCCTouchesOneByOne);
    69     return true;
    70 }
  • 相关阅读:
    C++细节3
    C++细节2
    C++细节1
    连通域标记方法
    dll动态链接库入门2
    UnixShell编程(第三版)
    Xcode 快捷键
    mysql在linux上的一点操作
    mysql 语句
    开机自动启动
  • 原文地址:https://www.cnblogs.com/tom987690183/p/4378951.html
Copyright © 2011-2022 走看看