2012-02-18 5 views
7

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

Есть ли хорошие ресурсы для этого (книги в блогах, скринкасты) или, по крайней мере, достойный проект с открытым исходным кодом, на который я могу посмотреть, чтобы почувствовать его?

ответ

5

Единственное, с чем вы можете начать играть, это новая вещь "planet cute", которая включена в недавно выпущенную версию 5.2.1. Затем вы можете перейти к реализации, чтобы увидеть, как вы можете подключать собственные изображения. Оттуда должно быть проще перейти в общий интерфейс gui.

В качестве альтернативы, вы можете стать более серьезным и использовать пакет allegro, чтобы иметь полноэкранные игры.

3

Я написал очень грубый и грязный пример, который может помочь вам приступить к работе: см. How to make a GUI using Lisp: DrScheme or Common Lisp. Пример включает в себя только достаточно, чтобы иметь простой цикл таймера и обработчик ключа, который пока не делает многого.

Возможно, вы также захотите посмотреть библиотеку racket/draw, в которую включены стандартные примитивы изображений, которые вы ожидаете от инструментария рисования. overview показывает, как рисовать, используя контекст чертежа . Мой пример имеет функцию, называемую paint!, которая использует окно на экране в качестве холста рисования.

Что касается блогов, я еще не видел слишком многого. Я постараюсь, чтобы мои глаза очистились и обновили этот ответ, когда я нахожу вещи. Есть подсказки, что Realm of Racket расскажет о программировании игры, но я не знаю, будет ли еще хорошо. :)

Смежные вопросы