Честно говоря, так как я совсем новичек в этом, подсказать мало что могу. Он у вас почему-то пытается завершить выполнение при нажатии на f, и мало того пытается выполнить содержимое echo.
Он что-нибудь выводит на экран перед вылетом?
Вот так пройдет пара дней и игра появится на github'е, а автор оригинала поднимет сайт для технической поддержки игроков. Монетизация через рекламу в бегущей строке… в платной версии с сетевой игрой :)
> Честно говоря, так как я совсем новичек в этом, подсказать мало что могу.
Комментарии такого типа всегда вводят меня в ступор и приводят к взрыву мозга. Я боюсь представить, что автор натворит, когда перестанет быть новичком :)))
У меня под «Маком» пришлось кое-что поправить, чтобы экран нарисовался, но если что-то нажать, тоже выходит. В каком-то месте игра не совместимая с posix, вылетает.
Кстати, я всё-таки решил проблему реал-таймого опроса клавиатуры для игры и написал «Арканоид» на баше. Этот же способ можно и в вашем шутере применить :)
Ну если внимательно присмотреться к статье, то станет понятно, что C++ код не участвует в скрипте. Он используется для предварительной подготовки выводимой информации, которая впоследствии используется для инициализации массивов в начале скрипта.
Помнится, ещё в школе, когда впервые увидел Дюну-2, был очень впечатлён. Но графика на наших i80286 очень тормозила, и я решил сделать стратегию к текстовом режиме.
Была и рандомная, генерация ландшафта, и карта (полноэкранная, по нажатию Таб), и юниты двигались, можно было даже разглядеть направление юнита. В общем, полная Дюна-2 в текстовом режиме.
Это был мой первый исходник размером больше 35 килобайт.)
> Поэтому накладывается ограничение на генерируемый лабиринт — в нем не должно быть ни одного квадратика 2 * 2 без стен
Есть (была) очень хорошая книга «The Programming Game» (Точно не вспомню, дома лежит), которую написали разработчики первого Doom. Там очень подробно разбирается технология RayCasting. Все проблемы решаются «убеганием луча» от наблюдателя, сначала по X (только вертикальные линии на карте), затем по Y (только горизонтальные). Сравнивая два значения удаленности мы определяем дальность до стены (меньшее значение).
Вот и все…
Ну в них пришлось бы делать прорисовку больше чем на один уровень. А это с той технологией отрисовки, которую использовал я, невозможно или очень геморройно.
Шутер с псевдо-3D графикой на… bash