现在的位置: 首页 > 综合 > 正文

cocos2d-x教程2 精灵

2018年04月22日 ⁄ 综合 ⁄ 共 5946字 ⁄ 字号 评论关闭

HelloWorldScene.h

#ifndef __HELLOWORLD_SCENE_H__

#define __HELLOWORLD_SCENE_H__

#include "cocos2d.h"

class HelloWorld :public
cocos2d::CCLayer

{

public:

    // Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone

   virtual
bool init();  

    // there's no 'id' in cpp, so we recommand to return the exactly class pointer

   static
cocos2d::CCScene* scene();

    

    CREATE_FUNC(HelloWorld);

    

   void testSprite();

};

#endif // __HELLOWORLD_SCENE_H__

HelloWorldScene.cpp

#include "HelloWorldScene.h"

#include "SimpleAudioEngine.h"

using namespace
cocos2d;

using namespace
CocosDenshion;

CCScene* HelloWorld::scene()

{

    

   CCScene *scene =
CCScene::create();

    HelloWorld *layer =HelloWorld::create();

    scene->addChild(layer);

   return scene;

}

bool HelloWorld::init()

{

    //////////////////////////////

    // 1. super init first

   if ( !CCLayer::init() )

    {

        return
false;

    }

    

    

    

    

    

    

    //-------精灵的创建的四种方式

//    //图片生成

//    CCSprite* spr1 = CCSprite::create("Icon.png");

//    spr1->setPosition(ccp(70,150));

//    addChild(spr1);

//    

//    //图片+区域生成

//    CCSprite* spr2 = CCSprite::create("Icon.png", CCRectMake(0, 0, 30, 30));

//    spr2->setPosition(ccp(150,150));

//    addChild(spr2);

//    

//    //通过祯缓存中的一祯名字生成

//    CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("test_icon.plist");

//    CCSprite* spr3 =CCSprite::createWithSpriteFrameName("Icon.png");

//    spr3->setPosition(ccp(230,150));

//    addChild(spr3);

//    

//    

//    //通过另外一祯生成一个生成

//    CCSpriteFrame* frame= CCSpriteFrame::create("Icon.png", CCRectMake(0, 0, 40, 30));

//    CCSprite* spr4 = CCSprite::createWithSpriteFrame(frame);

//    spr4->setPosition(ccp(310,150));

//    addChild(spr4);

    

//---------精灵的基本操作

//    //创建

//    CCSize size = CCDirector::sharedDirector()->getWinSize();

//    CCSprite* sp = CCSprite::create("Icon.png");

//    //设置坐标

//    sp->setPosition(ccp(size.width/2,200));

//    //设置旋转

//    //sp->setRotation(-90);

//    //设置缩放

//    sp->setScale(0.5);

//    addChild(sp);

//    

//

//

//    CCSprite*sp21=CCSprite::create("Icon.png");

//    sp21->setPosition(ccp(80,230));

//    CCSprite*sp2=CCSprite::create("Icon.png");

//    sp2->setPosition(ccp(200,230));

//    //设置x轴镜像反转

//    //sp2->setFlipX(true);

//    //设置y轴镜像反转

//    //sp2->setFlipY(true);

//    //仅设置缩放X

//    sp2->setScaleX(2);

//    sp2->setScaleY(2);

//    addChild(sp2);

//    addChild(sp21);

//

//

//    CCSprite*sp31=CCSprite::create("Icon.png");

//    sp31->setPosition(ccp(160,240));

//    CCSprite*sp3=CCSprite::create("Icon.png");

//    sp3->setPosition(ccp(160,160));

//    //设置半透明

//    sp3->setOpacity(127);

//    //设置混合色

//    sp3->setColor(ccc3(120, 126, 12));

//    //设置贴图尺寸大小

//    sp3->setTextureRect(CCRectMake(14, 14, 28, 28));

//    addChild(sp3);

//    addChild(sp31);

//

//    

//    CCSprite*sp4=CCSprite::create("Icon.png");

//    sp4->setPosition(ccp(300,70));

//    //设置不可见

//    sp4->setVisible(false);

//    addChild(sp4);

    

//-------两种常用层Layer

//    //默认黑色

//    CCLayer * layer= CCLayer::create();

//    layer->setContentSize(CCSizeMake(300, 280));

//    addChild(layer);

//    //红色

//    CCLayerColor * layerColor = CCLayerColor::create(ccc4(255, 0, 0, 255));

//    addChild(layerColor);

//    layerColor->setContentSize(CCSizeMake(200, 200));

//    //蓝色

//    CCLayerColor * layerColor2 = CCLayerColor::create(ccc4(0, 0, 255, 255),100,100);

//    addChild(layerColor2);

    

//------CCNode的添加

    

//    CCLayerColor*layer =CCLayerColor::create(ccc4(255, 255, 255, 255), 100, 100);

//    layer->setPosition(ccp(40,200));

//    CCSprite*sprChild = CCSprite::create("Icon.png");

//    sprChild->setPosition(ccp(50, 50));

//    layer->addChild(sprChild);

//    addChild(layer);

//    

//    CCSprite* spr = CCSprite::create("Icon.png");

//    spr->setPosition(ccp(100,100));

//    CCLayerColor* layerChild = CCLayerColor::create(ccc4(255, 0, 0, 255),50,50);

//    spr->addChild(layerChild);

//    addChild(spr);

    

//------Tag的作用与使用

//    CCSprite* spY = CCSprite::create("Icon.png");

//    spY->setPosition(ccp(100,200));

//    addChild(spY);

//    

//    

//    CCSprite * spr = CCSprite::create("Icon.png");

//    spr->setPosition(ccp(200,200));

//    addChild(spr,1,820);

//   //addChild(<#cocos2d::CCNode *child#>, <#int zOrder#>, <#int tag#>)

//    //spr->setTag(820);

//    this->testSprite();

    

//-------zOrder---

//    CCLayerColor *layer = CCLayerColor::create(ccc4(255, 255, 255, 255), 300, 300);

//    CCSprite *sprite1 = CCSprite::create("Icon.png");

//    sprite1->setPosition(ccp(100,100));

//    CCSprite *sprite2 = CCSprite::create("Icon.png");

//    

//    sprite2->setPosition(ccp(120,120));

//    CCSprite *sprite3 = CCSprite::create("Icon.png");

//    sprite3->setPosition(ccp(140,140));

//    CCSprite *sprite4 = CCSprite::create("Icon.png");

//    sprite4->setPosition(ccp(160,160));

//    layer->addChild(sprite1, 4);

//    layer->addChild(sprite2, 3);

//    layer->addChild(sprite3, 2);

//    layer->addChild(sprite4, 1);

//    addChild(layer);

    

//-------坐标系

//    CCSprite * spr =CCSprite::create("Icon.png");

//    spr->setPosition(ccp(100,100));

//    addChild(spr);

//    

//    CCSprite*spr2 = CCSprite::create("Icon.png");

//    spr2->setPosition(ccp(200,200));

//    addChild(spr2);

    

//-------锚点

//    CCSprite* sp1 = CCSprite::create("Icon.png");

//    addChild(sp1);

//    sp1->setAnchorPoint(ccp(0,0));

//    sp1->setPosition(ccp(sp1->getContentSize().width*0.5,sp1->getContentSize().height*0.5));

//    //CCLog("%f   %f",sp1->getContentSize().width,sp1->getContentSize().height);

////    //layer 默认充满屏幕

//    CCLayerColor* layer = CCLayerColor::create(ccc4(255, 0, 0, 255));

//    addChild(layer);

//    CCLOG("%f,%f",sp1->getAnchorPoint().x,sp1->getAnchorPoint().y);

//    CCLOG("%f,%f",sp1->getPositionX(),sp1->getPositionY());

//    CCLOG("%f,%f",sp1->getContentSize().width,sp1->getContentSize().height);

//    

//-------Z轴与遮盖关系

      

   CCSprite* spA1 =CCSprite::create("Icon.png");

    spA1->setPosition(ccp(150,200));

   addChild(spA1);

    

    

    

//

//    CCSprite* spA2 =CCSprite::create("Icon.png");

//    spA2->setPosition(ccp(100,200));

//    spA2->setScale(2);

//    addChild(spA2);

//    

//    

//    

//    CCSprite* spB1 =CCSprite::create("Icon.png");

//    spB1->setPosition(ccp(380,140));

//    addChild(spB1,1);

//    

//    CCSprite* spB2 =CCSprite::create("Icon.png");

//    spB2->setPosition(ccp(330,140));

//    spB2->setScale(2);

//    addChild(spB2);

    

    

    

    return
true;

}

//-----Tag的作用与使用

voidHelloWorld::testSprite(){

   CCSprite* sp=(CCSprite*)this->getChildByTag(820);

    sp->setScale(3);

}

抱歉!评论已关闭.