Rat49 / BootCamp

Project made by BootCampers power
4 stars 3 forks source link

Input manager #3

Closed OlyaGasanova closed 6 years ago

Rat49 commented 6 years ago
OlyaGasanova commented 6 years ago

@Rat49

GameActions убрать из проекта совсем. Этот енум должен быть в игре и в тесте, но сам InputManager его знать не должен. Именно поэтому я и говорил про использование int внутри менеджера, а в данном случае он знает их, зачем тогда ему переводить все постоянно в int.

Да, точно. Моя ошибка, я дурной :(

Escape, Enter, Space вообще не похожи на действия в игре, они больше напоминают кнопки. Действия должны быть Выход, Выбор, Выстрел. (Exit, Choose, Shoot)

Разве не оговаривалось, что инпут менеджер не знает о действиях как таковых, присутствующих в игре, и возвращает как раз таки состояние какой-либо кнопки? Ну то есть, я имею в виду, что ему-то совсем безразлично, хотим мы кнопкой "вниз" затормозить корабль или перейти к следующему пункту меню. Хотя на самом деле конечно этот вопрос сам разрешится, когда менеджер больше не будет содержать список игровых действий, на что намекает вышеприведнная цитата (да ведь?).

Из теста явно видно, что для использования менеджера надо будет гонять по циклу, что вообще не удобно.

Вот тут не поняла совсем, вплоть до того, что не могу пояснить, что именно. По моим представлениям, мы либо опрашиваем клавиатуру каждый игровой цикл, либо строим всё на ивентах. Объясните, пожалуйста, подробнее, если Вам не сложно.

Возвращать копию map<int, int> настолько неудобно и непроизводительно насколько возможно. Возвращать нужно ButtonState!

Да, это конечно резонно. То есть в гетСтейт запрашивать состояние определённой кнопки/действия и возвращать только его?

yuyoyuppe commented 6 years ago

lgtm