Cocos2d-x開発環境(ubuntu)、「Ubuntu18.04を参照してCocos2d開発環境を構築してください
Linuxでプロジェクトを実行します。「 LinuxでCocos2d-xプロジェクトを実行する」を参照してください。
ゲームのディレクトリのClassesディレクトリに次の2つのファイルを作成します
。KeyboardScene.h:
#include "cocos2d.h"
class KeyboardScene : public cocos2d::Layer{
public:
static cocos2d::Scene* createScene();
virtual bool init();
CREATE_FUNC(KeyboardScene);
};
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);
}
ルートディレクトリの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
)
cmakeコマンドを実行します。
~/Desktop/Games/MyGame/build/linux-build$ cmake ../..
ソースコードをコンパイルします。
~/Desktop/Games/MyGame/build/linux-build$ make -j 4
ゲームを実行します。
~/Desktop/Games/MyGame/build/linux-build$ cd bin/MyGame
~/Desktop/Games/MyGame/build/linux-build/bin/MyGame$ ./MyGame
テスト:
WASDキーボードの4つのキーまたは4つの矢印キーを使用して、スプライトを移動します。
読んでくれてありがとう!