ここには、押されたすべてのキーでスプライトを移動するための関数があります。今私はキーを繰り返し押すのではなく、キーを保持に移動したいと思っていますが、どうやってそれを行うのか分かりません。私を案内してください、あなたの助けは非常に感謝しています。キーがそのように押されたときに、あなたの問題を解決する一つの方法は、yについて、x軸と一つ上の動きを追跡するグローバル(またはクラスまたは何でも)の変数を持つことで継続的にトリガ何のイベントはありませんcocos2d-xでキーボードイベントを押して保持する方法は?
keyBoardListener->onKeyPressed = [](EventKeyboard::KeyCode keyCode, Event* event)
{
Vec2 location = event->getCurrentTarget()->getPosition();
switch (keyCode)
{
case EventKeyboard::KeyCode::KEY_LEFT_ARROW:
case EventKeyboard::KeyCode::KEY_A:
event->getCurrentTarget()->setPosition(location.x - 10.0f, location.y);
break;
case EventKeyboard::KeyCode::KEY_RIGHT_ARROW:
case EventKeyboard::KeyCode::KEY_D:
event->getCurrentTarget()->setPosition(location.x + 10.0f, location.y);
break;
case EventKeyboard::KeyCode::KEY_UP_ARROW:
case EventKeyboard::KeyCode::KEY_W:
event->getCurrentTarget()->setPosition(location.x, location.y + 10.0f);
break;
case EventKeyboard::KeyCode::KEY_DOWN_ARROW:
case EventKeyboard::KeyCode::KEY_S:
event->getCurrentTarget()->setPosition(location.x, location.y - 10.0f);
break;
}
};