1、添加键盘事件
EventListenerKeyboard *listener = EventListenerKeyboard::create();
listener->onKeyReleased = [=](EventKeyboard::KeyCode code, Event* event) {
if (EventKeyboard::KeyCode::KEY_ESCAPE == code) {
dismiss();
//吞掉键盘事件
event->stopPropagation();
}
};
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
记得释放该事件:
Director::getInstance()->getEventDispatcher()->removeEventListenersForTarget(this);
2、自定义的输出
#define L(format, ...) CCLOG(format, ##__VA_ARGS__)
3、自定义的格式化string方法
#include <stdarg.h> //va_start、va_end使用时添加的头文件引用
static string StringFormat(const char* format , ...)
{
#define CC_MAX_STRING_LENGTH (1024*100)
std::string ret;
va_list ap;
va_start(ap, format);
char* buf = (char*)malloc(CC_MAX_STRING_LENGTH);
if (buf != nullptr)
{
vsnprintf(buf, CC_MAX_STRING_LENGTH, format, ap);
ret = buf;
free(buf);
}
va_end(ap);
return ret;
}
4、有时候有的函数需要更新UI界面,需要在主线程中调用更新界面UI的逻辑
Director::getInstance()->getScheduler()->performFunctionInCocosThread