Cocos2d-x之KeyboardEvent鍵盤事件

      網友投稿 810 2025-04-01

      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

      編譯源碼:

      Cocos2d-x之KeyboardEvent鍵盤事件

      ~/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小時內刪除侵權內容。

      上一篇:怎么去除Excel工作表中數據的空格
      下一篇:WPS表格如何啟用宏功能(WPS表格啟用宏)
      相關文章
      亚洲国产精品久久| 亚洲人成网77777亚洲色| 亚洲伦另类中文字幕| 亚洲老妈激情一区二区三区| 国产偷国产偷亚洲高清日韩 | 亚洲1区2区3区精华液| 亚洲精品国产首次亮相| 亚洲码和欧洲码一码二码三码| 国产成人亚洲综合一区| 亚洲一卡一卡二新区无人区| 亚洲日本va一区二区三区| 亚洲色大成网站WWW国产| 亚洲精品一卡2卡3卡四卡乱码| 亚洲精品国产精品| 日韩亚洲精品福利| 亚洲午夜av影院| 亚洲日韩激情无码一区| 久久久亚洲欧洲日产国码农村| 亚洲三级电影网站| 亚洲国产成人精品电影| 亚洲精品免费网站| 亚洲精品GV天堂无码男同| 国产精品亚洲精品久久精品| 国产成人综合亚洲绿色| 久久久精品国产亚洲成人满18免费网站| jlzzjlzz亚洲乱熟在线播放| 精品亚洲综合久久中文字幕| 亚洲2022国产成人精品无码区 | 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 亚洲综合国产一区二区三区| 亚洲老妈激情一区二区三区| 亚洲一区二区三区日本久久九| 亚洲精品在线免费观看| 一区二区亚洲精品精华液 | 国产精品亚洲一区二区三区| 亚洲无码精品浪潮| 亚洲第一成人在线| 亚洲一区免费在线观看| 国产亚洲福利在线视频| 婷婷亚洲综合五月天小说在线| 亚洲日韩国产一区二区三区|