Freigeben über


Сборка PIX-6T4 и создание игры для нее

Грэг Дункан

Наш сегодняшний пост возвращает нас к PIX-6T4 «Вышел набор PIX-6T4…» и к нашему другу Питу Брауну (Pete Brown).

Если вы следите за Питом, то возможно не удивитесь, если узнаете, что он приложил руки к PIX-6T4 и поделился опытом создания набора и написания первой «настоящей» игры для него.

Сборка портативной игровой системы на основе PIX -6T4 Netduino

Недавно я приобрел сборку PIX-6T4 Фабьена Ройера (Fabien Royer) с играми Фабьена Ройера и Бертрана ле Роя (Bertrand Le Roy). Это 64-пиксельное двухджойстиковое портативное устройство с монофоническим звуком создано на основе Netduino Mini из Secret Labs. На нем можно создавать игры на языке С# с помощью Visual Studio.

Уведомление: я работаю на Microsoft и мне нравится работать с .NET Micro Framework, а также с С++ на других микроконтроллерах. Я приобрел этот продукт за собственные средства за полную стоимость; это не образец и не экземпляр для обзора. Предположительно, я получил такой же товар, который получают и другие.

Распаковка

Набор пришел в обычной почтовой упаковке, внутри которой было четыре пакета. В двух содержались компоненты, а в двух – джойстики.

image

image

Вывод

Я впечатлен тем, что придумал Фабьен, и набор игр, сделанных им и Бертраном, просто совершенен. Я считаю, что плата и корпус могли бы быть более компактны за счет другого дизайна и более удобны, но в целом, я полагаю, что это прекрасный способ введения в программирование Netduino с помощью создания чего-то занимательного и захватывающего. Кроме того, из-за технологии вывода информации, вы вынуждены создавать игры с очень простой графикой (просто светодиоды), поэтому, неизбежно, вы обойдете общий начальный барьер. Иногда ограничения – благо.

Поздравления Фабьену и Бертрану!

Моя первая настоящая игра на PIX -6T4: Sixty4Racer

После сборки PIX-6T4, я решил начать и написать простую игру. Здесь описывается разработка этой игры, включая все исходные коды.

Идея

Когда у вас только 64 красных пикселя, поневоле приходится ограничиваться простой графикой. Я выбрал игру, навеянную классической Atari River Raid. По существу это игра с вертикальным скроллингом, где нужно на лодке уворачиваться от препятствий. Вариации включают Spy Hunter on the C64 и многие многие другие. Большинство этих игр также включают оружие и врагов, но это несколько больше того, что можно себе позволить на этой плате. Я не способен двигать стены, как в Laser Gates, но я оставляю такие возможеости открытыми на будующее.

Игра должна быть достаточно компактна, чтобы я смог понять API и затем спроектировать, закодировать и написать о ней за один вечер, после того, как мои дети отправятся спать. PIX-6T4 любопытен, но меня ждет множество других проектов, которым тоже надо уделить время (вот некоторые из них: мельница с ЧПУ ShapeOko , преобразователь AVRMIDI -> CV , окончательный вариант MIDIThruBox , несколько модулей синтезатора MFOS , несколько концепций платы Gadgeteer , книга по XAML для Win8, обзор глав моей книги по Silverlight 5 и многое многое другое). Фактически основными причинами высоких продаж устройства являются простота игры и скорость разработки. Вместе с замечательной библиотекой, созданной Фабьеном и моим опытом работы с Netduino, а, более точно, с C#, этот проект может стать проектом на вечер.

Конструкция экрана

Возвращаясь в 80-е, в 7-й класс, я использовал в конструкции одноцветный спрайты для Commodore 64. Спрайты были трехбайтовые, и каждый пиксел представлялся одним битом. Чтобы задать их я использовал миллиметровку, и увы, тетради, заполненные спрайтами, и листинги BASICа продолжались долго пока не исчезли.

...

image

...

Первая итерация: создание прокручиваемого поля игры

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

Первым созданным мною классом, был класс, управляющий созданием экранов.

...

Втораяитерация : добавлениеигрока

В библиотеки PIX-6T4 включена концепция PlayerMissile. Это один пиксел на игровом поле. Он может двигаться, у него есть составляющие скорости по осям X и Y. Его можно показывать и скрывать, так что у него есть свойство видимости. И самое главное, у него есть способность определять столкновения с другими экземплярами PlayerMissile. В нашей игре мы не собирались использовать это до тех пор, пока не начали искать способность определять столкновения с фоновыми изображениями. Так что небольшой механизм регистрации столкновений оказался кстати.

...

Третья итерация: шлифовка

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

...

Окончательные шаги

Последними штрихами было создание файла манифеста и растрового изображения для SD-карты. Надо было бы обсудить все это с Фабьеном, чтобы убедиться, какой именно формат.bin-файла использовать, но я предположил, что это просто 8 байтов данных, отформатированных так же, как и другие изображения этого приложения. Также я не был уверен, есть ли у него небольшое приложение для записи данных или преобразования из растрового изображения или чего-то подобного. В завершение я просто воспользовался HEX-редактором для перевода шаблонов изображений, созданных в редакторе шрифтов.

...

Что можно сделать

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

Вот видео игры в действии:

Короче, если у вас есть страстное желание держать свой паяльник горячим и создать собственную портативную игровую консоль, а также написать собственную игру для нее, то PIX-6T4 и это руководство от Питера – это всё, что нужно…