Cocos2d-x 周边工具 之 TexturePacker
转载请注明出处:
上次是文字的部分,介绍了一下 BMFont的相关东西; 说正事= =。 what is 纹理图集 is what-在做一款游戏的时候,会用到大量的图片,可能有些是背景、按钮等单张图片,也可能是动画这样的一系列的图片, 初识TexturePackerTexturePacker 支持Windows 和 Mac OS这两个操作系统(这点很方便~) 现在来看看TexturePacker的界面吧~ 加点注释: 输出设置: 构图设置: 布局设置: TexturePacker生成纹理图集这次,就拿FlappyBird的主界面做例子吧~ 使用 plist+png已经生成了 这两种文件,我们可以来创建场景了。 // 预处理——获取可视屏幕尺寸
visibleSize = Director::getInstance()->getVisibleSize();
SpriteFrameCache *cache = SpriteFrameCache::getInstance();
cache->addSpriteFramesWithFile("tp_demo.plist","tp_demo.png");
+将背景图片提取出来,加载到场景中: Sprite *bg = Sprite::createWithSpriteFrameName("bird_bg.png");
bg->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));
this->addChild(bg);
+加载 标题 logo: Sprite *title = Sprite::createWithSpriteFrameName("bird_logo.png");
title->setPosition(Vec2(visibleSize.width/2,visibleSize.height/9*6));
this->addChild(title);
+加载 小鸟飞行动画: Sprite *sp = Sprite::createWithSpriteFrameName("bird_hero01.png");
sp->setPosition(Vec2(visibleSize.width/2,visibleSize.height/9*4));
this->addChild(sp);
Vector< SpriteFrame* > sfme = Vector< SpriteFrame* >(4);
for( int i = 1 ; i < 4 ; i++ )
{
SpriteFrame* fname = cache -> spriteFrameByName( StringUtils::format("bird_hero%02d.png",i) );
sfme.pushBack( fname );
}
Animation *animation = Animation::createWithSpriteFrames( sfme,0.1f );
sp->runAction ( RepeatForever::create(Animate::create(animation )));
+加载 开始 按钮: Sprite *btn = Sprite::createWithSpriteFrameName("bird_start_btn.png");
Sprite *btn_pressed = Sprite::createWithSpriteFrameName("brid_start_btn_pressed.png");
auto imageItem = MenuItemSprite::create( btn,btn_pressed,NULL,CC_CALLBACK_1(TPacker::menuImgCallback,this));
imageItem->setPosition(Vec2(visibleSize.width/2,visibleSize.height/9*2));
auto menu = Menu::create(imageItem,NULL);
menu->setPosition(Vec2::ZERO);
this->addChild(menu);
ok,运行吧~ 这篇文章就到这里了, 本篇文章的 素材+代码: >这里< (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |