Cocos2d-x之KeyboardEvent鍵盤事件
Cocos2d-x在ubuntu上的開發環境搭建,請參考《Ubuntu18.04搭建Cocos2d開發環境》

在Linux上運行項目,請參考《在Linux上運行Cocos2d-x項目》
在游戲所在目錄的Classes目錄下創建以下兩個文件:
KeyboardScene.h:
#include "cocos2d.h" class KeyboardScene : public cocos2d::Layer{ public: static cocos2d::Scene* createScene(); virtual bool init(); CREATE_FUNC(KeyboardScene); };
1
2
3
4
5
6
7
8
KeyboardScene.cpp:
// // Created by kyun on 20-3-19. // #include "KeyboardScene.h" USING_NS_CC; Scene* KeyboardScene::createScene() { auto scene = Scene::create(); auto layer = KeyboardScene::create(); scene->addChild(layer); return scene; } bool KeyboardScene::init() { if( !Layer::init()){ return false; } // 創建一個精靈 auto sprite = Sprite::create("HelloWorld.png"); // 將精靈定位到場景中央 sprite->setPosition(this->getContentSize().width/2,this->getContentSize().height/2); this->addChild(sprite,0); // 創建鍵盤- auto eventListener = EventListenerKeyboard::create(); // 定義鍵盤按下處理函數 eventListener->onKeyPressed = [](EventKeyboard::KeyCode keyCode, Event* event){ Vec2 loc = event->getCurrentTarget()->getPosition(); switch (keyCode){ // 按下向左箭頭,或A鍵 case EventKeyboard::KeyCode ::KEY_LEFT_ARROW: case EventKeyboard::KeyCode ::KEY_A: // 將與事件綁定的精靈向左移,按一下,移一下 event->getCurrentTarget()->setPosition(--loc.x,loc.y); break; // 按下向右箭頭,或D鍵 case EventKeyboard::KeyCode ::KEY_RIGHT_ARROW: case EventKeyboard::KeyCode ::KEY_D: // 將與事件綁定的精靈向右移,按一下,移一下 event->getCurrentTarget()->setPosition(++loc.x,loc.y); break; // 按下向上箭頭,或W鍵 case EventKeyboard::KeyCode ::KEY_UP_ARROW: case EventKeyboard::KeyCode ::KEY_W: // 將與事件綁定的精靈向上移,按一下,移一下 event->getCurrentTarget()->setPosition(loc.x,++loc.y); break; // 按下向下箭頭,或S鍵 case EventKeyboard::KeyCode ::KEY_DOWN_ARROW: case EventKeyboard::KeyCode ::KEY_S: // 將與事件綁定的精靈向下移,按一下,移一下 event->getCurrentTarget()->setPosition(loc.x,--loc.y); break; } }; // 將事件-與精靈進行綁定 this->_eventDispatcher->addEventListenerWithSceneGraphPriority(eventListener,sprite); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
修改根目錄下的CMakeLists.txt文件:
# add cross-platforms source files and header files list(APPEND GAME_SOURCE Classes/AppDelegate.cpp Classes/KeyboardScene.cpp ) list(APPEND GAME_HEADER Classes/AppDelegate.h Classes/KeyboardScene.h )
1
2
3
4
5
6
7
8
9
執行cmake命令:
~/Desktop/Games/MyGame/build/linux-build$ cmake ../..
1
編譯源碼:
~/Desktop/Games/MyGame/build/linux-build$ make -j 4
1
運行游戲:
~/Desktop/Games/MyGame/build/linux-build$ cd bin/MyGame ~/Desktop/Games/MyGame/build/linux-build/bin/MyGame$ ./MyGame
1
2
測試:
通過鍵盤WASD四個鍵或四個方向鍵來移動精靈。
謝謝閱讀!
Cocos2D
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。