06--添加卡片到游戏

         在前一篇中已经创建了卡片类,现在来看看如何使用卡片类。首先在GameLayer.h中声明创建卡片的函数

//创建卡片
    void createCardSprite(cocos2d::CCSize size);

        cpp中实现创建卡片函数

void GameLayer::createCardSprite(cocos2d::CCSize size)
{
    //获取卡片高宽
    int unitSize = ScreenAdapter::GetCardHeight(size.height);

    //创建4*4个卡片并添加到当前层中
    for (int i=0;i<4;i++)
    {
        for (int j=0;j<4;j++)
        {
            CardSprite* card = CardSprite::createCardSprite(
                0,
                unitSize,
                unitSize,
                unitSize*i+100,
                unitSize*j+20);

            addChild(card);
        }
    }
}

        在GameLayer类的init方法中调用createCardSprite函数以便初始化游戏画面

bool GameLayer::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }

    //打开触屏功能
    setTouchEnabled(true);

    //创建游戏背景
    this->addChild(cocos2d::CCLayerColor::create(
        ScreenAdapter::GetGameBGColor() ));
    //创建卡片
    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
    createCardSprite(visibleSize);

    return true;
}

        ScreenAdapter中新增的方法

int ScreenAdapter::GetCardHeight(float sHeight)
{
    //根据分辨率大小要调整
    return (sHeight-80)/4;
}
cocos2d::ccColor4B ScreenAdapter::GetGameBGColor()
{
    return cocos2d::ccc4(180,170,160,255);
}

      最后运行一下看看效果

image

原文地址:https://www.cnblogs.com/BlueBeauty/p/3798372.html