键盘操作
来源:互联网 发布:新闻类app数据 编辑:程序博客网 时间:2024/05/18 09:21
数据加载中...#ifndef __CKeyInput_SCENE_H__
#define __CKeyInput_SCENE_H__
#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;
struct keyCodeName
{
std::string KeyCodeName;
EventKeyboard::KeyCode keyCode;
};
static keyCodeName g_keyCodeNameArray[] =
{
{ "NONE",EventKeyboard::KeyCode::KEY_NONE },
{ "PAUSE",EventKeyboard::KeyCode::KEY_PAUSE },
{ "SCROLL_LOCK",EventKeyboard::KeyCode::KEY_SCROLL_LOCK },
{ "PRINT",EventKeyboard::KeyCode::KEY_PRINT },
{ "SYSREQ",EventKeyboard::KeyCode::KEY_SYSREQ },
{ "BREAK",EventKeyboard::KeyCode::KEY_BREAK },
{ "ESCAPE",EventKeyboard::KeyCode::KEY_ESCAPE },
{ "BACKSPACE",EventKeyboard::KeyCode::KEY_BACKSPACE },
{ "TAB",EventKeyboard::KeyCode::KEY_TAB },
{ "BACK_TAB",EventKeyboard::KeyCode::KEY_BACK_TAB },
{ "RETURN",EventKeyboard::KeyCode::KEY_RETURN },
{ "CAPS_LOCK",EventKeyboard::KeyCode::KEY_CAPS_LOCK },
{ "SHIFT",EventKeyboard::KeyCode::KEY_SHIFT },
{ "CTRL",EventKeyboard::KeyCode::KEY_CTRL },
{ "ALT",EventKeyboard::KeyCode::KEY_ALT },
{ "MENU",EventKeyboard::KeyCode::KEY_MENU },
{ "HYPER",EventKeyboard::KeyCode::KEY_HYPER },
{ "INSERT",EventKeyboard::KeyCode::KEY_INSERT },
{ "HOME",EventKeyboard::KeyCode::KEY_HOME },
{ "PG_UP",EventKeyboard::KeyCode::KEY_PG_UP },
{ "DELETE",EventKeyboard::KeyCode::KEY_DELETE },
{ "END",EventKeyboard::KeyCode::KEY_END },
{ "PG_DOWN",EventKeyboard::KeyCode::KEY_PG_DOWN },
{ "LEFT_ARROW",EventKeyboard::KeyCode::KEY_LEFT_ARROW },
{ "RIGHT_ARROW",EventKeyboard::KeyCode::KEY_RIGHT_ARROW },
{ "UP_ARROW",EventKeyboard::KeyCode::KEY_UP_ARROW },
{ "DOWN_ARROW",EventKeyboard::KeyCode::KEY_DOWN_ARROW },
{ "NUM_LOCK",EventKeyboard::KeyCode::KEY_NUM_LOCK },
{ "KP_PLUS",EventKeyboard::KeyCode::KEY_KP_PLUS },
{ "KP_MINUS",EventKeyboard::KeyCode::KEY_KP_MINUS },
{ "KP_MULTIPLY",EventKeyboard::KeyCode::KEY_KP_MULTIPLY },
{ "KP_DIVIDE",EventKeyboard::KeyCode::KEY_KP_DIVIDE },
{ "KP_ENTER",EventKeyboard::KeyCode::KEY_KP_ENTER },
{ "KP_HOME",EventKeyboard::KeyCode::KEY_KP_HOME },
{ "KP_UP",EventKeyboard::KeyCode::KEY_KP_UP },
{ "KP_PG_UP",EventKeyboard::KeyCode::KEY_KP_PG_UP },
{ "KP_LEFT",EventKeyboard::KeyCode::KEY_KP_LEFT },
{ "KP_FIVE",EventKeyboard::KeyCode::KEY_KP_FIVE },
{ "KP_RIGHT",EventKeyboard::KeyCode::KEY_KP_RIGHT },
{ "KP_END",EventKeyboard::KeyCode::KEY_KP_END },
{ "KP_DOWN",EventKeyboard::KeyCode::KEY_KP_DOWN },
{ "KP_PG_DOWN",EventKeyboard::KeyCode::KEY_KP_PG_DOWN },
{ "KP_INSERT",EventKeyboard::KeyCode::KEY_KP_INSERT },
{ "KP_DELETE",EventKeyboard::KeyCode::KEY_KP_DELETE },
{ "F1",EventKeyboard::KeyCode::KEY_F1 },
{ "F2",EventKeyboard::KeyCode::KEY_F2 },
{ "F3",EventKeyboard::KeyCode::KEY_F3 },
{ "F4",EventKeyboard::KeyCode::KEY_F4 },
{ "F5",EventKeyboard::KeyCode::KEY_F5 },
{ "F6",EventKeyboard::KeyCode::KEY_F6 },
{ "F7",EventKeyboard::KeyCode::KEY_F7 },
{ "F8",EventKeyboard::KeyCode::KEY_F8 },
{ "F9",EventKeyboard::KeyCode::KEY_F9 },
{ "F10",EventKeyboard::KeyCode::KEY_F10 },
{ "F11",EventKeyboard::KeyCode::KEY_F11 },
{ "F12",EventKeyboard::KeyCode::KEY_F12 },
{ "SPACE",EventKeyboard::KeyCode::KEY_SPACE },
{ "EXCLAM",EventKeyboard::KeyCode::KEY_EXCLAM },
{ "QUOTE",EventKeyboard::KeyCode::KEY_QUOTE },
{ "NUMBER",EventKeyboard::KeyCode::KEY_NUMBER },
{ "DOLLAR",EventKeyboard::KeyCode::KEY_DOLLAR },
{ "PERCENT",EventKeyboard::KeyCode::KEY_PERCENT },
{ "CIRCUMFLEX",EventKeyboard::KeyCode::KEY_CIRCUMFLEX },
{ "AMPERSAND",EventKeyboard::KeyCode::KEY_AMPERSAND },
{ "APOSTROPHE",EventKeyboard::KeyCode::KEY_APOSTROPHE },
{ "LEFT_PARENTHESIS",EventKeyboard::KeyCode::KEY_LEFT_PARENTHESIS },
{ "RIGHT_PARENTHESIS",EventKeyboard::KeyCode::KEY_RIGHT_PARENTHESIS },
{ "ASTERISK",EventKeyboard::KeyCode::KEY_ASTERISK },
{ "PLUS",EventKeyboard::KeyCode::KEY_PLUS },
{ "COMMA",EventKeyboard::KeyCode::KEY_COMMA },
{ "MINUS",EventKeyboard::KeyCode::KEY_MINUS },
{ "PERIOD",EventKeyboard::KeyCode::KEY_PERIOD },
{ "SLASH",EventKeyboard::KeyCode::KEY_SLASH },
{ "0",EventKeyboard::KeyCode::KEY_0 },
{ "1",EventKeyboard::KeyCode::KEY_1 },
{ "2",EventKeyboard::KeyCode::KEY_2 },
{ "3",EventKeyboard::KeyCode::KEY_3 },
{ "4",EventKeyboard::KeyCode::KEY_4 },
{ "5",EventKeyboard::KeyCode::KEY_5 },
{ "6",EventKeyboard::KeyCode::KEY_6 },
{ "7",EventKeyboard::KeyCode::KEY_7 },
{ "8",EventKeyboard::KeyCode::KEY_8 },
{ "9",EventKeyboard::KeyCode::KEY_9 },
{ "COLON",EventKeyboard::KeyCode::KEY_COLON },
{ "SEMICOLON",EventKeyboard::KeyCode::KEY_SEMICOLON },
{ "LESS_THAN",EventKeyboard::KeyCode::KEY_LESS_THAN },
{ "EQUAL",EventKeyboard::KeyCode::KEY_EQUAL },
{ "GREATER_THAN",EventKeyboard::KeyCode::KEY_GREATER_THAN },
{ "QUESTION",EventKeyboard::KeyCode::KEY_QUESTION },
{ "AT",EventKeyboard::KeyCode::KEY_AT },
{ "CAPITAL_A",EventKeyboard::KeyCode::KEY_CAPITAL_A },
{ "CAPITAL_B",EventKeyboard::KeyCode::KEY_CAPITAL_B },
{ "CAPITAL_C",EventKeyboard::KeyCode::KEY_CAPITAL_C, },
{ "CAPITAL_D",EventKeyboard::KeyCode::KEY_CAPITAL_D, },
{ "CAPITAL_E",EventKeyboard::KeyCode::KEY_CAPITAL_E, },
{ "CAPITAL_F",EventKeyboard::KeyCode::KEY_CAPITAL_F, },
{ "CAPITAL_G",EventKeyboard::KeyCode::KEY_CAPITAL_G, },
{ "CAPITAL_H",EventKeyboard::KeyCode::KEY_CAPITAL_H, },
{ "CAPITAL_I",EventKeyboard::KeyCode::KEY_CAPITAL_I, },
{ "CAPITAL_J",EventKeyboard::KeyCode::KEY_CAPITAL_J, },
{ "CAPITAL_K",EventKeyboard::KeyCode::KEY_CAPITAL_K, },
{ "CAPITAL_L",EventKeyboard::KeyCode::KEY_CAPITAL_L, },
{ "CAPITAL_M",EventKeyboard::KeyCode::KEY_CAPITAL_M, },
{ "CAPITAL_N",EventKeyboard::KeyCode::KEY_CAPITAL_N, },
{ "CAPITAL_O",EventKeyboard::KeyCode::KEY_CAPITAL_O, },
{ "CAPITAL_P",EventKeyboard::KeyCode::KEY_CAPITAL_P, },
{ "CAPITAL_Q",EventKeyboard::KeyCode::KEY_CAPITAL_Q, },
{ "CAPITAL_R",EventKeyboard::KeyCode::KEY_CAPITAL_R, },
{ "CAPITAL_S",EventKeyboard::KeyCode::KEY_CAPITAL_S, },
{ "CAPITAL_T",EventKeyboard::KeyCode::KEY_CAPITAL_T, },
{ "CAPITAL_U",EventKeyboard::KeyCode::KEY_CAPITAL_U, },
{ "CAPITAL_V",EventKeyboard::KeyCode::KEY_CAPITAL_V, },
{ "CAPITAL_W",EventKeyboard::KeyCode::KEY_CAPITAL_W, },
{ "CAPITAL_X",EventKeyboard::KeyCode::KEY_CAPITAL_X, },
{ "CAPITAL_Y",EventKeyboard::KeyCode::KEY_CAPITAL_Y, },
{ "CAPITAL_Z",EventKeyboard::KeyCode::KEY_CAPITAL_Z, },
{ "LEFT_BRACKET",EventKeyboard::KeyCode::KEY_LEFT_BRACKET, },
{ "BACK_SLASH",EventKeyboard::KeyCode::KEY_BACK_SLASH, },
{ "RIGHT_BRACKET",EventKeyboard::KeyCode::KEY_RIGHT_BRACKET, },
{ "UNDERSCORE",EventKeyboard::KeyCode::KEY_UNDERSCORE, },
{ "GRAVE",EventKeyboard::KeyCode::KEY_GRAVE, },
{ "A",EventKeyboard::KeyCode::KEY_A, },
{ "B",EventKeyboard::KeyCode::KEY_B, },
{ "C",EventKeyboard::KeyCode::KEY_C, },
{ "D",EventKeyboard::KeyCode::KEY_D, },
{ "E",EventKeyboard::KeyCode::KEY_E, },
{ "F",EventKeyboard::KeyCode::KEY_F, },
{ "G",EventKeyboard::KeyCode::KEY_G, },
{ "H",EventKeyboard::KeyCode::KEY_H, },
{ "I",EventKeyboard::KeyCode::KEY_I, },
{ "J",EventKeyboard::KeyCode::KEY_J, },
{ "K",EventKeyboard::KeyCode::KEY_K, },
{ "L",EventKeyboard::KeyCode::KEY_L, },
{ "M",EventKeyboard::KeyCode::KEY_M, },
{ "N",EventKeyboard::KeyCode::KEY_N, },
{ "O",EventKeyboard::KeyCode::KEY_O, },
{ "P",EventKeyboard::KeyCode::KEY_P, },
{ "Q",EventKeyboard::KeyCode::KEY_Q, },
{ "S",EventKeyboard::KeyCode::KEY_S, },
{ "S",EventKeyboard::KeyCode::KEY_S, },
{ "T",EventKeyboard::KeyCode::KEY_T, },
{ "U",EventKeyboard::KeyCode::KEY_U, },
{ "V",EventKeyboard::KeyCode::KEY_V, },
{ "W",EventKeyboard::KeyCode::KEY_W, },
{ "X",EventKeyboard::KeyCode::KEY_X, },
{ "Y",EventKeyboard::KeyCode::KEY_Y, },
{ "Z",EventKeyboard::KeyCode::KEY_Z, },
{ "LEFT_BRACE",EventKeyboard::KeyCode::KEY_LEFT_BRACE, },
{ "BAR",EventKeyboard::KeyCode::KEY_BAR, },
{ "RIGHT_BRACE",EventKeyboard::KeyCode::KEY_RIGHT_BRACE, },
{ "TILDE",EventKeyboard::KeyCode::KEY_TILDE, },
{ "EURO",EventKeyboard::KeyCode::KEY_EURO, },
{ "POUND",EventKeyboard::KeyCode::KEY_POUND, },
{ "YEN",EventKeyboard::KeyCode::KEY_YEN, },
{ "MIDDLE_DOT",EventKeyboard::KeyCode::KEY_MIDDLE_DOT, },
{ "SEARCH",EventKeyboard::KeyCode::KEY_SEARCH, },
{ "DPAD_LEFT",EventKeyboard::KeyCode::KEY_DPAD_LEFT, },
{ "DPAD_RIGHT",EventKeyboard::KeyCode::KEY_DPAD_RIGHT, },
{ "DPAD_UP",EventKeyboard::KeyCode::KEY_DPAD_UP, },
{ "DPAD_DOWN",EventKeyboard::KeyCode::KEY_DPAD_DOWN, },
{ "DPAD_CENTER",EventKeyboard::KeyCode::KEY_DPAD_CENTER, },
{ "ENTER",EventKeyboard::KeyCode::KEY_ENTER, },
{ "PLAY",EventKeyboard::KeyCode::KEY_PLAY}
};
class CKeyInput : public cocos2d::Layer
{
public:
// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
virtual bool init();
// there's no 'id' in cpp, so we recommend returning the class instance pointer
static cocos2d::Scene* scene();
// implement the "static node()" method manually
CREATE_FUNC(CKeyInput);
private:
virtual void onEnter() override;
void onKeyPressed(EventKeyboard::KeyCode code, Event* event);
void onKeyReleased(EventKeyboard::KeyCode code, Event* event);
// 获取键盘名字
std::string GetKeyName(EventKeyboard::KeyCode code);
};
#endif // __HELLOWORLD_SCENE_H__
#include "CKeyInput.h"
#include "AppMacros.h"
Scene* CKeyInput::scene()
{
// 'scene' is an autorelease object
auto scene = Scene::create();
// 'layer' is an autorelease object
CKeyInput *layer = CKeyInput::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
// on "init" you need to initialize your instance
bool CKeyInput::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
}
return true;
}
// KeyboardEventTest
void CKeyInput::onEnter()
{
Layer::onEnter();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
Size size = Director::getInstance()->getVisibleSize();
auto statusLabel = Label::createWithSystemFont("No keyboard event received!", "", 20);
statusLabel->setPosition(origin + Vec2(size.width/2, size.height/2));
addChild(statusLabel);
auto keyboardListener = EventListenerKeyboard::create();
keyboardListener->onKeyPressed = CC_CALLBACK_2(CKeyInput::onKeyPressed, this);
keyboardListener->onKeyReleased = CC_CALLBACK_2(CKeyInput::onKeyReleased, this);
_eventDispatcher->addEventListenerWithFixedPriority(keyboardListener, -11);
_keyboardListener = keyboardListener;
/*
auto listener = EventListenerKeyboard::create();
listener->onKeyPressed = [](EventKeyboard::KeyCode keyCode, Event* event)
{
char buf[100] = {0};
sprintf(buf, "Key %d was pressed!", (int)keyCode);
auto label = static_cast<Label*>(event->getCurrentTarget());
label->setString(buf);
};
listener->onKeyReleased = [](EventKeyboard::KeyCode keyCode, Event* event)
{
char buf[100] = {0};
sprintf(buf, "Key %d was released!", (int)keyCode);
auto label = static_cast<Label*>(event->getCurrentTarget());
label->setString(buf);
};
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, statusLabel);
*/
}
void CKeyInput::onKeyPressed(EventKeyboard::KeyCode code, Event* event)
{
std::string name = GetKeyName(code);
log("CKeyInput:onKeyPressed, keycode: %s_%d", name.c_str(), (int)code);
}
void CKeyInput::onKeyReleased(EventKeyboard::KeyCode code, Event* event)
{
std::string name = GetKeyName(code);
log("CKeyInput:onKeyReleased, keycode: %s_%d", name.c_str(), (int)code);
}
// 获取键盘名字
std::string CKeyInput::GetKeyName(EventKeyboard::KeyCode code)
{
int size = sizeof(g_keyCodeNameArray) / sizeof(keyCodeName);
for (int i = 0; i < size; ++i)
{
const keyCodeName& table = g_keyCodeNameArray[i];
if (table.keyCode == code)
{
return table.KeyCodeName;
}
}
return "";
}
0 0
- 键盘操作
- 键盘操作
- 键盘操作
- 键盘操作
- 键盘操作
- 键盘操作
- 键盘操作
- 摸拟键盘操作
- VC模拟键盘操作
- DELPHI中的键盘操作
- 键盘快捷键操作
- RedHat9键盘快捷操作
- VB模拟键盘操作
- js 监视键盘操作
- 根据键盘操作表格
- 键盘操作秘方
- 电脑键盘操作
- 根据键盘操作表格
- java字符串的引用
- Hadoop,HBase添加和删除节点
- android 4.4.3上面,联系人的头像默认显示首字母,但是不支持中文字符,修改支持中文
- 《走出软件作坊》读书心得2
- 头像编辑器怎么禁用摄像头
- 键盘操作
- cocos2d-x Jni c++ java互调 安全刷新UI控件最简单例子(上)
- 深入理解计算机系统001——前言和第一章
- xml解析
- Java支持课工资
- 【LeetCode】-Swap Nodes in Pairs
- <c:forEach 表格最后一行累加
- cocos2d-x Jni c++ java互调 安全刷新UI控件最简单例子(下)
- C语言指针安全及指针使用问题