Cocos2d-x 玩家移动代码示例 - 使用键盘控制
当然可以!以下是一个简单的Cocos2d-x玩家移动的代码示例:
#include "HelloWorldScene.h"
#include "SimpleAudioEngine.h"
USING_NS_CC;
Scene* HelloWorld::createScene()
{
return HelloWorld::create();
}
bool HelloWorld::init()
{
if (!Scene::init())
{
return false;
}
auto visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
// 创建玩家精灵
auto player = Sprite::create("player.png");
player->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
this->addChild(player);
// 创建事件监听器
auto listener = EventListenerKeyboard::create();
listener->onKeyPressed = [=](EventKeyboard::KeyCode keyCode, Event* event) {
Vec2 newPosition = player->getPosition();
float moveDistance = 10.0f; // 玩家每次移动的距离
switch (keyCode)
{
case EventKeyboard::KeyCode::KEY_LEFT_ARROW:
newPosition.x -= moveDistance;
break;
case EventKeyboard::KeyCode::KEY_RIGHT_ARROW:
newPosition.x += moveDistance;
break;
case EventKeyboard::KeyCode::KEY_UP_ARROW:
newPosition.y += moveDistance;
break;
case EventKeyboard::KeyCode::KEY_DOWN_ARROW:
newPosition.y -= moveDistance;
break;
}
// 更新玩家位置
player->setPosition(newPosition);
};
// 添加键盘事件监听器
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
return true;
}
以上代码创建了一个基本的Cocos2d-x场景,其中包含一个玩家精灵和键盘事件监听器。按下箭头键时,玩家精灵会相应地移动。
请注意,代码中的图片文件路径需要根据您的实际情况进行修改。此外,您还需要根据您的游戏逻辑来处理玩家移动的碰撞检测等操作。
原文地址: https://www.cveoy.top/t/topic/pKS2 著作权归作者所有。请勿转载和采集!