当然可以!以下是一个简单的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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录