现在的位置: 首页 > 综合 > 正文

COCOS2D-X UI组件

2014年01月23日 ⁄ 综合 ⁄ 共 2597字 ⁄ 字号 评论关闭

cocos2d-x-extensions

水果忍者-by Cocos2d-X

刀光效果

AngryBird Space失重特效

有没有一个CCTab的控件?

https://github.com/simdm/cocos2d-x-extensions-1/tree/master/extensions/CCTabView

多语言解决方案,

1.解析XML

http://codingnow.cn/cocos2d-x/1038.html

2.解析KEY = VALUE 键值对

https://github.com/sue602/CCLocalizedStringDemo

个人倾向于第二种方式。

CCMenu

// 创建

	// add menu items for tests
	CCMenu *m_pItemMenu = CCMenu::create();
	for (int i = 0; i < MENU_COUNT; ++i)
	{
		CCLabelTTF* label = CCLabelTTF::create(TITLES[i].c_str(), "Arial", 24);     
		CCMenuItemLabel* pMenuItem = CCMenuItemLabel::create(label, this, menu_selector(TestMenuScene::menuCallback));

		m_pItemMenu->addChild(pMenuItem, i + 10000);
		pMenuItem->setPosition( ccp( VisibleRect::center().x, (VisibleRect::top().y - (i + 1) * LINE_SPACE) ));
	}

	m_pItemMenu->setContentSize(CCSizeMake(VisibleRect::getVisibleRect().size.width, (MENU_COUNT + 1) * (LINE_SPACE)));
	m_pItemMenu->setPosition(CCPointMake(0,0));
	addChild(m_pItemMenu);

// 回调

void TestMenuScene::menuCallback(CCObject * pSender)
{
	CCLOG("menuCallback");

	// get the userdata, it's the index of the menu item clicked
	CCMenuItem* pMenuItem = (CCMenuItem *)(pSender);
	int nIdx = pMenuItem->getZOrder() - 10000;

	// create the test scene and run it
	CCScene* pScene = CreateScene(nIdx);
	CCDirector *pDirector = CCDirector::sharedDirector();
	if (pScene)
	{
		pDirector->replaceScene(pScene);
	}
}

SlidingMenu

滑动菜单

CCTableView

// 创建

http://space.itpub.net/14466241/viewspace-751173

下一个版本新加了选中效果

Q:

1.如何实现多行多列

2.cell间间隙很大的

3.

多行多列:

http://www.cocos2d-x.org/boards/18/topics/15777

CCControlButton

// 创建

CCControlButton *btn = CCControlButton::create(titles[i], "Helvetica", 30);
btn->setBackgroundSpriteFrameForState(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("anniu5.png"), CCControlStateNormal);
btn->setBackgroundSpriteFrameForState(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("anniu5_press.png"), CCControlStateHighlighted);
btn->setPosition(ccp(140, 647 + i * -71));
btn->setPreferredSize(CCSizeMake(196, 60));
btn->setTitleColorForState(ccGRAY, CCControlStateNormal);
btn->setTitleColorForState(ccGREEN, CCControlStateHighlighted);
btn->addTargetWithActionForControlEvents(this, cccontrol_selector(ShopScene::touchUpInsideAction),CCControlEventTouchUpInside);
btn->setTag(i);
addChild(btn);

// 回调

void ShopScene::touchUpInsideAction(CCObject* pSender, CCControlEvent event)
{
	int tag = ((CCNode *)pSender)->getTag();
	CCLOG("touchUpInsideAction:%d", tag);
}

抱歉!评论已关闭.