cocos2d-x系列笔记(2)---文字标签,按钮,精灵

开发一个游戏,在画面上绘制文字,按钮,精灵这些是最基础的工作了.这一篇我们就来讲讲如何在cocos2d-x中绘制带文字的标签,按钮及精灵.

带文字的标签:

//绘制一段文字
void HelloWorld::drawText(const char *ps)
{
	CCLabelTTF* label = CCLabelTTF::create(ps,"Arial",24);		

	CCSize size = CCDirector::sharedDirector()->getWinSize();
	label->setPosition(ccp(size.width/2,size.height-70));
	this->addChild(label,10);
}

 

这段代码我绘制了一个标签label,并从ps参数带入了一段字符串,字体设置为Arial,字号为24.这样一个标签就创建完成了.

随后我又获得了窗口的尺寸size,以备为label设置位置使用.

通过label对象的setPosition函数我将这个标签的x坐标设置到窗口一半的位置,y坐标设置到窗口高度-70的位置.这里需要注意的是标签的锚点是在标签的正中央.

另外需要注意的是ccp这个宏.setPostion函数的参数是CCPoint类型,ccp宏中可以带入x,y值自动将坐标值转换为CCPoint类型.

最后将label加入到HelloWorld的子结点.

在HelloWorld::init()函数中调用drawText函数

bool HelloWorld::init()
{
    bool bRet = false;
    do 
    {
	drawText("你好世界");
        bRet = true;
    } while (0);

    return bRet;
}

需要注意的是,如果我们带入了中文字符串需要把我们的cpp文件另存为utf-8格式的文件

选中HelloWorldScene.cpp文件,文件->HelloWorldScene.cpp另存为->点击保存按钮旁边的向下小键头->编码保存->编码选择Unicode(UTF-8无签名)-代码页65001.这样在游戏中就可以正确显示中文了.

精灵:

//绘制一个精灵
void HelloWorld::drawSprite(const char *pi)
{
	CCSprite* pSprite = CCSprite::create(pi);

	CCSize size = CCDirector::sharedDirector()->getWinSize();
	pSprite->setPosition(ccp(size.width/2,size.height/2));
	pSprite->setScale(0.5);
	this->addChild(pSprite,11);
}

首先我们创建了一个CCSprite*类型的对象,create函数中代入的是精灵所使用的图片资源的路径.

然后我们将精灵的位置设置到屏幕中央,将精灵的大小通过setScale缩小了一倍.

最后加入到HelloWorld场景中

函数的调用方式可参考带HelloWorld::drawText调用方式

按钮:

//绘制一个关闭按钮
void HelloWorld::drawCloseButton()
{
	CCMenuItemImage *pMenuItem = CCMenuItemImage::create("CloseNormal.png",
		"CloseSelected.png",this,menu_selector(HelloWorld::menuCloseCallback));

	pMenuItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));
	CCMenu *pMenu = CCMenu::create(pMenuItem,NULL);
	pMenu->setPosition(CCPointZero);

	this->addChild(pMenu,12);
}
//关闭按钮的操作
void HelloWorld::menuCloseCallback(CCObject* pSender)
{
    CCDirector::sharedDirector()->end();
}

绘制这个按钮时需要先创建一个CCMenuItemImage*类型的菜单项.需要注意的是,我们在这里设置了一个按钮点击的响应函数HelloWorld::menuCloseCallback().

创建完菜单项后,要把让它附加到一个CCMenu*类型的对象里.

然后我们指定Menu的位置,最后讲它加入到场景中.

函数的调用方式参考HelloWorld::drawText调用方法.

 

看看我们的成果吧.

cocos2d-x系列笔记(2)---文字标签,按钮,精灵_第1张图片

 

 这一篇我们就结束了,下次我会教大家如何切换到另外一个场景

 

你可能感兴趣的:(cocos2d-x系列笔记(2)---文字标签,按钮,精灵)