cocos2d-x入门笔记(一)
学了好久的cocos感觉自己对cocos还是一窍不通,现在回头看看以前写的测试,发现一些最基础的东西,在刚开始的时候被自己有意或无意的屏蔽了,现在做下总结。 Cocos2d-x版本: 2.2.5 VS版本:VS2013 用python建立的项目。 项目资源如下图:
1.在每个项目中都会有几个库,这几个库如下图:
其中对各个库的解释为: 1。libBox2D:物理引擎库 2.libchipmunk:同样是物理引擎库 3.libcocos2d:Cocos2d-x基础库,下图可以看出包括哪些内容: 4.libCocosDenshion:声音库: 5.libExtensions:扩展库,同样如下图:
物理引擎库,网上资料很多,不多做介绍。
二、是用各种库的方法: 1.在使用cocos基础库时需要加宏:USING_NS_CC,目的是为了在编写代码的时候省略命名空间cocos2d。 2.在使用声音库的时候需要包含头文件:#include "SimpleAudioEngine.h"和使用声音库命名空间语句:using namespace CocosDenshion;
三、图片放置技巧: 1.将图片放置屏幕的右下角方法: CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin(); pCloseItem->setPosition(ccp(origin.x + visibleSize.width - pCloseItem->getContentSize().width/2,origin.y + pCloseItem->getContentSize().height/2));
三、创建游戏元素方法: 一、创建精灵方法: 1.CCSprite* create(const char *pszFileName); pszFileName:图片名称 说明:通过图片的名称直接创建一个精灵
2.CCSprite* create(const char *pszFileName,const CCRect& rect); pszFileName:图片名称 CCRect& rect:设置图片的显示区域 说明:通过图片的名称直接创建一个精灵,并且设置显示区域(图片左上角为原点)
3.CCSprite* createWithTexture(CCTexture2D *pTexture); pTexture:2D纹理贴图 说明:通过2D纹理的方式创建精灵
4.CCSprite* createWithTexture(CCTexture2D *pTexture,const CCRect& rect); pTexture:2D纹理贴图 CCRect& rect:设置显示图片的区域 说明:通过2D纹理图片创建精灵,并设置显示区域
5.CCSprite* createWithSpriteFrame(CCSpriteFrame *pSpriteFrame); pSpriteFrame:图片缓存帧 说明:通过图片缓存帧的方式创建精灵
6.CCSprite* createWithSpriteFrameName(const char *pszSpriteFrameName); pszSpriteFrameName:图片缓存帧的名称 说明:通过缓存帧名称的方式创建精灵
测试代码: CCSize size = CCDirector::sharedDirector()->getVisibleSize(); //通过图片的名称直接创建一个精灵 CCSprite *sq1 = CCSprite::create("icon.png"); //设置精灵位置 sq1->setPosition(ccp(size.width * 0.2,size.height * 0.7)); //添加精灵至图层 this->addChild(sq1,1); //通过图片的名称直接创建一个精灵,并且设置显示区域(图片左上角为原点) CCSprite *sq2 = CCSprite::create("icon.png",CCRect(28,28,29,29)); //设置精灵位置 sq2->setPosition(ccp(size.width * 0.4,size.height * 0.7)); //添加精灵至图层 this->addChild(sq2,1); //通过CCTexture2D创建一个2D纹理贴图 CCTexture2D *texture = CCTextureCache::sharedTextureCache()->addImage("icon.png"); //通过2D纹理的方式创建精灵] CCSprite *sq3 = CCSprite::createWithTexture(texture); //设置精灵位置 sq3->setPosition(ccp(size.width * 0.6,size.height * 0.7)); //添加精灵至图层 this->addChild(sq3,1); //通过2D纹理图片创建精灵,并设置显示区域,2D纹理用的是上一个创建的 CCSprite *sq4 = CCSprite::createWithTexture(texture,CCRect(0,40,40)); //设置精灵位置 sq4->setPosition(ccp(size.width * 0.8,size.height * 0.7)); //添加精灵至图层 this->addChild(sq4,1); //通过CCSpriteFrame创建帧缓存 CCSpriteFrame *frame = CCSpriteFrame::create("icon.png",72,72)); //通过图片缓存帧的方式创建精灵 CCSprite *sq5 = CCSprite::createWithSpriteFrame(frame); //设置精灵位置 sq5->setPosition(ccp(size.width * 0.3,size.height * 0.3)); //添加精灵至图层 this->addChild(sq5,1); //利用图片打包工具生成的plist文件创建图片缓存 CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("img.plist"); //通过缓存帧名称的方式创建精灵 CCSprite *sq6 = CCSprite::createWithSpriteFrameName("icon.png"); //设置精灵位置 sq6->setPosition(ccp(size.width * 0.7,size.height * 0.3)); //添加精灵至图层 this->addChild(sq6,1);显示如下图:(从左至右,从上至下)
二、对与字符串对齐一些注意 字符串对齐方式如下: kCCTextAlignmentLeft 左对齐 设置对齐方式的时候必须设置字体大小,需要换行用空格代替,如果没有空格默认的是不换行, 测试代码如下: CCSize size = CCDirector::sharedDirector()->getVisibleSize(); //字符串对齐方式: //kCCTextAlignmentLeft 左对齐 CCLabelBMFont *label1 = CCLabelBMFont::create("TestLabelCocos2d-x nihao","fonts/helvetica-32.fnt",20,kCCTextAlignmentLeft); label1->setPosition(ccp(label1->getContentSize().width / 2,size.height - label1->getContentSize().height / 2)); this->addChild(label1,1);调试如图所示:
不加空格代码如下: CCSize size = CCDirector::sharedDirector()->getVisibleSize(); //字符串对齐方式: //kCCTextAlignmentLeft 左对齐 CCLabelBMFont *label1 = CCLabelBMFont::create("TestLabelCocos2d-x Hello",1);调试如图:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |