您的位置:首页 > 其它

《保卫萝卜》项目实践心得

2016-10-22 15:09 253 查看
1️⃣如何一张1280*740 RGB4448的图片所占内存大小

图片大小必须为2^n,不足的往大的靠,如上就是占用2048*1024Byte
再乘上色素乘色深 即(4*3+8)
将其转化为M 即除以(8*1024*1024)       8byte=1B   1204B=1KB    1024KB=1M   

即2048*1024*(4*3+8)/(8*1024*1024)=

2️⃣定义宏的时候注意句尾无分号,在宏里面定义函数格式如下所示:
区别与单行的宏定义是句尾的\
//添加精灵
#define CREATE_SPRITE(__NAME__, __RESOURCE__, __POSTOIN__,__ZORDER) \
auto __NAME__ =Sprite::createWithSpriteFrameName(__RESOURCE__);\
__NAME__->setPosition(__POSTOIN__);\

addChild(__NAME__,__ZORDER);\
3️⃣   (1)   int
a =100;
   
char str[30];

    sprintf(str,"num:%d",a); // 将num与a的值连接起来给str
        (2)StringUtils::format(“name:%d",moneyCount) ;//
将moneyCount整形与“”内的name拼接为string并返回本身,即此行代码表示一个字符串
总结:作用大致类似,好像(2)代码量少些
4️⃣ 暂停功能的实现   
RenderTexture 的使用
RenderTexture 原理是将此界面的所有控件遍历一遍后描绘一张纹理图片
#pragma mark
菜单回调函数
void
GameScene::menu_call(Ref * sender){
    RenderTexture* sqr = RenderTexture::create(VISIABLESIZE.width, VISIABLESIZE.height);
    sqr->begin();// 遍历开始
    this->getParent()->visit();
// 从父类(顶层)扫描
    sqr->end();
//
遍历结束

    Director::getInstance()->pushScene(GamePause::creatPauseScene(sqr));}

// 调用
Scene * GamePause::creatPauseScene(RenderTexture* sqr){

    Scene * scene = Scene::create();

    Layer * layer = GamePause::create();

    scene->addChild(layer);
   
    auto back_sqr = Sprite::createWithTexture(sqr->getSprite()->getTexture());// 转换为精灵图片
    back_sqr->setPosition(VISIABLESIZE/2);

    back_sqr->setFlippedY(true);

    back_sqr->setColor(Color3B::GRAY);
    scene->addChild(back_sqr); 

   
return
scene;}

                     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: