Petefall10 by Commocore
Петефаль 10
=======
Это мой четвертый десятистрочный текст, написанный на BASIC для Commodore 64.
Эта игра была представлена на конкурсе Basic 10-Liner Contest 2022 в категории PUR-80.
Вдохновленный старой демоверсией "3 приключения", которую я сделал еще в 90-х.
Сюжет
----
Немногие знают, что у Гарри Питфолла есть брат, и его зовут Пит. Ваша цель — помочь Питу в его приключении, когда он путешествует по 32 мирам, полным ям. Никому из вас не нравится эта идея, но другого пути, кроме как вперед, нет. Помогите Питу выбраться из этого. Я знаю, ты справишься.
Его брат Гарри будет гордиться вами.
Экран
-------
В левом верхнем углу вы можете увидеть текущий мир и количество жизней.
Управление
--------
Используйте джойстик в порту 2. Нажмите кнопку огня, чтобы прыгнуть.
Описание кода
----------------
В этой игре я хотел использовать генерируемые уровни (миры) вместо рандомизации. Основываясь на одном значении, я добился некоторого разнообразия для 32 миров. Это не идеально, но было действительно сложно втиснуть его менее чем в 2 строки кода. Я надеюсь, что это даст хорошее ощущение разнообразия в игре, поскольку я хотел включать более короткие и длинные ямы. Еще я добавил в дизайн разную длину платформ, поэтому в большинстве случаев игрок не может слепо прыгать от начала до конца, а должен прыгать в нужный момент. Еще я хотел вписать анимацию ям, так как это просто лоок, живее, особенно вместе с анимацией героя.
Построчный обзор кода
-------------------------
- Строка 0:
— Инициализация некоторых переменных, включая анимацию главного героя.
– Настройка цвета экрана и рамки
– Данные за X$
- Строка 1:
- Увеличение текущего номера мира, если у героя есть несколько жизней, в противном случае сброс до первого мира.
- Сбросить количество жизней до 7 в случае окончания игры или первого запуска.
— Создайте мир на основе значения переменной G, отсчета от 0 до 9 достаточно, чтобы заполнить строку, представляющую текущий мир, длиной не менее 40 символов.
— Вычисление начальной позиции мировой графики (переменная A), которая будет взята из строк W$ и X$
– Данные для сингапурских долларов, Y
- Строка 2:
- Вычисление длины мировой графики (переменная B), которая будет вырезана из строк W$ и X$
- Обе строки N$ и $M$ будут созданы для придания эффекта анимации ям.
— выполняет цикл FOR в строке 1 10 раз.
– Очистить экран
- Строка 3:
- Чтение джойстика в порту 2
– Установите L, если джойстик перемещается влево, R, если джойстик перемещается вправо, F, если нажата кнопка огня.
- На основе значений джойстика можно установить следующее горизонтальное положение героя по X
- Увеличивать шаг анимации героя только при его движении (переменная C)
- Строка 4:
- Шаг анимации героя сохраняется в переменной C (от 0 до 2).)
- В какую сторону должна быть направлена голова героя, сохраняется в переменной H
— Проверьте, требуется ли герою подпрыгнуть, что может произойти только тогда, когда он находится на полу (переменная U)
- Строка 5:
- Вычислить позицию прыжка героя (переменная P) до достижения максимальной высоты (Y = 0)
- Рассчитать положение героя при падении (переменная D) до достижения пола (Y = 3)
- Если мир изменился на 33, завершите игру, перейдя на строку 9
– В противном случае отобразите фактический мировой номер в верхней части экрана и перейдите к строке 6.
- Строка 6:
- Отображение фактического количества жизней
- Отображение обычной графики мира, если N = 0
- Отобразить перевернутую графику мира, если N = 1
– установите вертикальное и горизонтальное положение, в котором будет отображаться этот элемент.
- Строка 7:
- Отображение головы героя в правильном направлении на основе переменной H
- Отображение верхней и нижней части тела героя на основе переменной C.
- Считайте экранную память рядом с ногой героя и сохраните ее в переменной A, чтобы определить, наступает ли герой на яму.
- Строка 8:
- Уменьшает одну жизнь, если герой сталкивается с ямой (когда A = 102 или 230)
- Пока герой не дошел до правой части экрана (X меньше 36) и количество жизней не стало положительным, продолжайте основной цикл игры, переходя на строку 3
— В противном случае подготовьте N$ и M$ для создания нового мира и переместите героя в левую часть t.экран, а затем переход к строке 1, где происходит генерация мира
– Данные для Q$
- Строка 9:
— Программа переходит сюда, когда герой выигрывает игру.
- Данные для W$, H, S, C$(0...5)
Обзор переменных
--------------------
- X$ — перевернутая графика мира, 3 последовательных байта определяют платформу или яму
- S$ – смещение экрана по вертикали
- Y – вертикальное положение героя
- Q$ — перемещает курсор печати главного героя на следующую строку
- W$ - нормальная графика мира (см.: X$)
- H – положение анимации головы героя
- S - память адреса цвета экрана
- C$() - таблица с анимацией героя, содержащая 3 кадра (верхняя часть, за которой следует нижняя часть тела героя)
- G – текущий мир
- Ви – жив
- I – используется для итераций цикла
- A — хранит начало мировой графики, которая будет вырезана из графических строк уровня X$ и W$ во время генерации мира, также используется для обнаружения столкновения с ямой
- B — хранит длину графики мира, которая будет вырезана из графических строк уровней X$ и W$ во время генерации мира.
- N$ – хранит обычную графику мира из строки W$
- M$ – хранит инвертированную графику мира из строки X$
- J - значение адреса порта 2 джойстика
- L – порт 2 джойстика сдвинут влево
- R – порт 2 джойстика сдвинут в правильном направлении
- F – нажата ли кнопка огня порта 2 джойстика
- К - неxt позиция героя на основе переменных L и R
- X — горизонтальное положение героя
- C – шаг анимации героя
- U – героя просят подпрыгнуть
- N — переключить анимацию мира (использовать обычную или инвертированную графику)
- P – используется для расчета, подпрыгивает ли герой
- D – герой падает
Как скачать Petefall10 by Commocore через торрент
Всего несколько простых шагов:
- Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
- Выбираем и скачиваем подходящий торрент-файл репака Petefall10 by Commocore
- Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
- После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!