Я хотел бы создать простую автономную пасьянс в рубине. Есть ли библиотеки, которые я должен использовать? Мне даже нужны библиотеки игр, чтобы карты перемещались из одного стека в другой? Я никогда не писал никаких игр, и я долгое время не создавал автономное приложение, поэтому я потерялся :)Игра-пасьянс Ruby
ответ
Кажется, вы спешите в графическую часть своей игры. Вы задумывались над своей логикой игры? Я также участвую в разработке игр, и то, что я обычно делаю, прежде чем идти в графику, получает всю логику игры (или большую часть ее), поэтому я могу протестировать ее в системной консоли/командной строке. После того, как я доволен этим, я перехожу к графике, звуку, анимации и другим интересным вещам.
Я слышал, что Shoes прост в использовании для разработки графического интерфейса, но у меня нет любой личный опыт с ним. Вы можете использовать его для создания игрового экрана и перемещения карт после их нажатия. Из этого я бы не подумал, что есть какие-то библиотеки, которые вам понадобятся, если у вас нет конкретной проблемы.
Я обычно соглашаюсь с nairdaen о работе над логикой домена. Но если/когда вы хотите работать с графикой/звуками, я предлагаю Gosu, так как он имеет очень красивый и простой API.
Как утверждают другие, начните с игрового движка, который можно полностью контролировать с помощью консоли, и беспокоиться о графическом интерфейсе позже.
Нужны ли игровым библиотекам карты, перенесенные из одного стека в другой?
Нет, вы можете реализовать его как динамическое веб-приложение и использовать прототип javascript-библиотеки для перемещения карт (как изображений) из одной «кучи» в другую.
Я использовал Rubygame один раз для прототипов столкновений и визуализации их. Это хорошая графическая библиотека для игр 2d.
Для «автономной» части вашего вопроса это немного сложно в Ruby, потому что для запуска приложения Ruby требуется интерпретатор Ruby и все библиотеки, используемые вашим приложением. Распространение вашей игры может стать громоздким для пользователя. Однако у вас может быть автономное приложение Windows (чтение: .exe) с использованием RubyScript2Exe.
Да, вам действительно нужно запрограммировать всю логику, прежде чем думать о графике. Многие люди, занимающиеся программированием, думают о графическом представлении как о главном представлении кода, а не о логическом бэкэнде. Логика - это то, где все происходит, графика - это просто представления о логике.
Спасибо за предложение, я попробую сначала запустить его в консоли. Мне кажется, что в консоли легче управлять событиями - или я ошибаюсь? – squil
Обычно игры не управляются событиями, а «бесконечным» циклом, в котором вы проверяете вход (в основном, клавиатуру, мышь, геймпад или даже сеть), вы реагируете на ввод и изменяете свое состояние игры. После изменения состояния игры вы покажете его на экране – nairdaen