Я пытаюсь понять основы разработки игр на C64 после BASIC, и я мог бы воспользоваться некоторыми советами по поводу чего-то очень простого, но важного: что на самом деле представляет собой весь этот материал на экране и как его нарисовать?
Посмотрите на Катакиса / Денариса :
На экране есть как минимум 9 разных вещей:
- Панель Score, с разными шрифтами
- Сам корабль
- Спутник, прикрепленный к кораблю, съемный
- Снаряды вторичного оружия
- Основные оружейные снаряды
- Движущиеся объекты (могут быть вражеские корабли)
- Строка состояния с изображением корабля, количеством жизней и тремя разделами, которые можно заполнить
- Панель заряда основного оружия, может заполняться до конца
- Скроллинг звездного поля на заднем плане
- (не пронумерованы на экране) Твердые объекты, такие как камни или металлические стены, которые являются частью фона
C64 поддерживает только 8 спрайтов на горизонтальную линию сканирования, так что я не думаю, что все в середине экрана может быть спрайтом? Я предполагаю, что все, что требует коллизии, будет спрайтом (поскольку я могу получить аппаратное обнаружение коллизии со спрайтами), но даже тогда я быстро достиг предела в 8 спрайтов. Кроме того, мое оружие может стрелять более чем одним снарядом - мой корабль, спутник и 6 пуль уже будут иметь 8 спрайтов подряд (посмотрите примерно на 50 секунд видео).
Кроме того, какой графический режим будет использовать игра, подобная этой? В Руководстве по программированию перечислены режимы Bit Map Mode, которые существенно изменяют память экрана напрямую. В этом режиме я обычно должен работать? Как бы я соединил все не спрайтовые элементы вместе, чтобы вывести их на экран?
Большая часть материала в строке счета и состояния является статической («Площадь: 01» или «кадр»), поэтому я предполагаю, что я просто заполню их один раз, когда уровень начнется. Вещи, которые нуждаются в обновлении - счет, индикаторы заряда внизу - будут обновляться, заполняя экранную память черным цветом, а затем рисуя новый счет в каждом кадре?
Или мне нужно рисовать весь экран на каждом кадре?
источник
Я прочитал статью некоторое время назад в немецком журнале C64. Пули - это персонажи, которые действуют как спрайты, как кто-то уже указал. Корабль и враги являются спрайтами.
Уровни также сделаны из персонажей, но с изюминкой. Поскольку уровни такие огромные, а память драгоценна, Тренц написал свой собственный набор инструментов для группировки персонажей в модули.
Поэтому он может использовать большие модули и составлять их. Также он будет использовать некоторые патч-модули, чтобы пересечение модулей было красивым и чистым.
В общем, это своего рода сжатие, где уровни описываются строительными блоками, а не символом символом.
Также вы могли заметить, что в Катакисе некоторые уровни имеют фон параллакса.
Это делается с помощью шаблона для заливки фона, в основном состоящего из символов 2x2 или 3x3, и его анимации (сдвига битов) против направления прокрутки. Например, уровень прокручивается на 2 пикселя влево, фоновый рисунок прокручивается на 1 пиксель вправо, следовательно, он, кажется, прокручивается медленнее.
надеюсь, это поможет
Еще одна вещь, которую вы можете увидеть отдельные модули, и вот здесь https://archive.org/details/64er_1989_10/page/n27 прокрутите страницу 24
источник