Я новичок в ActionScript и Flash в целом, поэтому у меня возник вопрос о некоторых функциональных возможностях кода. Возможно ли вообще изменить привязки клавиш с помощью кнопки, которая будет отображать, какие клавиши в настоящее время используются для перемещения объекта?

Основная причина, по которой я спрашиваю об этом, заключается в том, что я делаю платформер и хотел бы предоставить возможность изменять то, какие текущие вводы с клавиатуры используются для перемещения персонажа. Подобно другим играм, которые предоставляют возможность изменять элементы управления игроков, чтобы сделать их более удобными. Я также хотел бы предоставить раскладку клавиатуры по умолчанию и настроить ее в меню параметров, чтобы показать, какие текущие клавиши используются для определенного действия.

Например, левый на клавиатуре будет по умолчанию для перемещения влево, но скажем, я хочу вместо этого изменить его на A. Я хотел бы иметь возможность изменить его на это или предоставить такую ​​функциональность.

Я не уверен, с чего начать и возможно ли это вообще. Заранее спасибо.

РЕДАКТИРОВАТЬ:

Я также хотел бы сохранить эти параметры, пока игра открыта, или даже сохранить их в файле, если это возможно.

0
Vanish Mantle 8 Мар 2014 в 04:16

1 ответ

Лучший ответ

Это функция, которую вам придется программировать самостоятельно. Должно быть довольно просто прослушивать нажатие клавиши пользователем и сохранять уникальное событие keyCode для клавиши, которую они нажали для переменной. Затем, когда клавиша нажата, вы можете сравнить ее с сохраненным кодом клавиши. Что касается сохранения этих настроек, вы можете использовать Local Общий объект.

Вот базовый обзор. Допустим, у вас есть следующий объект.

var keys:Object = {
    left: Keyboard.LEFT,
    right: Keyboard.RIGHT,
    up: Keyboard.UP,
    down: Keyboard.DOWN
};

Если вы хотите настроить стрелку вверх, вы можете добавить следующий код после ввода пользователем (т. Е. Нажатия кнопки).

addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
function keyDown(e:KeyboardEvent):void
{
    keys.up = e.keyCode;
}

Затем в любом месте, где вы хотите проверить, была ли нажата клавиша вверх keyCode, вы можете сделать следующее.

if(keys.up == e.keyCode)
{
    //Customized up key pressed.
}
1
Alexander O'Mara 8 Мар 2014 в 05:55