首页 > 代码库 > 【cocos2d-x学习笔记】文本输入、菜单、内存管理、定时器

【cocos2d-x学习笔记】文本输入、菜单、内存管理、定时器

文本输入

CCTextFiledTTF

CCTextFiledTTF *textEdit = CCTextFiledTTF::textFiledWithPlaceHolder("input", "Arial", 33);

textEdit->atchWithIME();      弹出软键盘

textEdit->setSecureTextEntry(true);  密码格式输入

 

CCEditBox

CCScale9Sprite *bg = CCScale9Sprite::create("abc.png");  九妹图 易拓展,省资源

CCEditBox *editBox = CCEditBox::create(CCSize(100, 30), bg);

editBox->setPlaceHolder("input here");  默认显示文本

editBox->setInputFlag(...); 各种情况 如首字母大写、大小写敏感等。 

 

菜单

CCMenuItemFont *item = CCMenuItemFont::create("this is item");  默认位置就在中央

menu->addChid(item);

CCMenu *menu = CCMenu::create();

addchild(menu);

设置相应函数

item->setTarget(this, menu_selector(函数指针));

 void Menu::menuHandler(CCCObject *)

{

 

}

 

MenuItems

CCMenuItemAtlasFont *itemAltas = CCMenuItemAtlasFont::create("123456", "labelatlasimg.png", 24, 32, ‘0‘);

CCMenuItemImage *itemImage = CCMenuItemImaage::create("CloseNormal.png", "CloseSected.png");

CCMenuItemLabel *itemLabel = CCMenuItemLabel::create(

      CCLabelTTF::create("This is lable ttf item", "Arial", 33);

);

CCMenuItemLabel *itemLableIBMFont = CCMenuItemLabel::create();

 

CCMenuItemToggle *itemToggle = CCMenuItemToggle::createWithTarget();

 

竖着对齐

 menu->alignItemsVertically();

 

 cocos内存管理

C++的构造函数是语言层次的初始化

init是cocos业务层的初始化

 

coocs采用半自动化的内存管理

create() == 自动管理

 

内存管理器->访问引用计数器

new

release() 

retain() 引用计数器加1

autorelease 将这个对象加入到内存管理器

 

cocos的半自动化内存管理由CCObject实现

计数器

计数器的设置函数

 

对于retain()的对象,为了避免内存泄露

可以使用2种方式release();

~析构函数()

{

      _arr->release();

}

 

void onExit()

{

      父类::onExit();    必须先调用父类的onExit()函数,否则造成更大的内存泄露

  _arr->release();

}

 

scheduleUpdate();  让帧循环调用this->update(float dt)函数

void HelloWorld::handeer(CCObject *sender)
{
CCNode *node = (CCNode *)sender;
haha = node->getTag() - 1000;
}

void HelloWorld::update(float delta)
{
if (1 == haha)
{
sp->setPositionY(sp->getPositionY() + 150 * delta);
CCLOG("1");
}
if (2 == haha)
{
sp->setPositionY(sp->getPositionY() - 150 * delta);
CCLOG("2");
}
if (3 == haha)
{
sp->setPositionX(sp->getPositionX() - 150 * delta);
CCLOG("3");
}
if (4 == haha)
{
sp->setPositionX(sp->getPositionX() + 150 * delta);
CCLOG("4");
}

return;
}

【cocos2d-x学习笔记】文本输入、菜单、内存管理、定时器