尊重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/17187005
<捕鱼达人>回顾
【cocos2d-x IOS游戏开发-捕鱼达人1】内容介绍
上节回顾
【cocos2d-x IOS游戏开发-城市跑酷1】跑酷游戏介绍
跑酷游戏是在城市里进行的,本节实现游戏的背景层。
看具体的实现:void GameLayer::createGameScreen ()
//设置游戏背景
CCSprite * bg = CCSprite::create("bg.png");
bg->setPosition(ccp(_screenSize.width * 0.5f, _screenSize.height * 0.5f));
this->addChild(bg, kBackground);
初步设定游戏场景层为3层:背景层,中间层,最上层;在头文件里声明
enum {
kBackground,//背景层
kMiddleground,//中间层
kForeground //最上层
};
读取游戏资源:
//CCSpriteFrameCache(精灵帧缓存)主要用来存放CCSpriteFrame,它没有提供特别的属性,而是提供一系列用于管理CCSpriteFrame的方法
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("sprite_sheet.plist","sprite_sheet.png");
_gameBatchNode = CCSpriteBatchNode::create("sprite_sheet.png", 200);
this->addChild(_gameBatchNode, kMiddleground);
这里特别注意:
CCSpriteBatchNode和CCSpriteFrameCache结合使用;
必须保证CCSpriteFrameCache和CCSpriteBatchNode加载的是同一纹理贴图
加入logo:
//加入logo
_intro = CCSprite::createWithSpriteFrameName("logo.png");
_intro->setPosition(ccp(_screenSize.width * 0.5f, _screenSize.height * 0.7f));
_gameBatchNode->addChild(_intro, kForeground);
OK, 看下它的使用方法。这里只是一个标签,以后可以添加内容。
这个类使用的是系统中的字体,不需要额外往项目文件中添加字体文件。但如果你有自定义的字体也可以加到项目中,如果无法使用,可以查看一下ccConfig.h中的CC_FONT_LABEL_SUPPORT是否enable了。
_tutorialLabel = CCLabelTTF::create("", "Times New Roman", 25);
_tutorialLabel->setPosition(ccp (_screenSize.width * 0.5f, _screenSize.height * 0.6f) );
this->addChild(_tutorialLabel, kForeground);
_tutorialLabel->setVisible(false);
CCLabelBMFont:CCLabelBMFont 相当于每次改变只改变了图片坐标,而CCLabelTTF要重新渲染.这个类使用之前,需要添加好字体文件,包括一个图片文件 (**.png) 和一个 字体坐标文件 (**.fnt)。
.fnt 文件定义了 图像文件的名称,以及每个字符对应的位置信息。
这个没办法指定字体的字号,但可以用 scale 属性进行缩放来调整大小。就当它是sprite,这里定义的也是sprite。
看一下具体用法:
加入积分板:这里只是一块板子,什么都没有实现。
//加入积分板
_scoreDisplay = CCLabelBMFont::create("000000", "font.fnt", _screenSize.width * 0.3f, kCCTextAlignmentCenter);
_scoreDisplay->setAnchorPoint(ccp(1,0));
_scoreDisplay->setPosition(ccp(_screenSize.width * 0.95f, _screenSize.height * 0.88f));
this->addChild(_scoreDisplay, kBackground);
而CCLabelAtlas :如果你用cocos2d项目模板创建过项目,那么你已经看过它的效果了,就是左下角显示帧率的数字。因为帧率一直在变,使用CCLabelTTF的话效率太低,因为只是数字所以也犯不上使用 CCLabelBMFont 加载那么大的文字图像,所以使用这个比较合适。【这里没有用到它】下一节:添加场景道具