март 21, 2022

Give him the hook 10

Добавить в
Мои игры
Торрент
Скачать

Это мой третий 10-строчный текст, написанный на BASIC для Commodore 64.

Эта игра была представлена ​​на конкурс Basic 10-Liner Contest 2022 в категории PUR-80.

Вдохновлен польским плакатом 70-х годов "Klowni" Яна Млодоженьца для фильма "Клоуны" режиссера Федерико Феллини.

Сюжет

Это первая игра из серии The Trick Triptych. Перспективный клоун (хотя именно так о нем говорили 20 лет назад) немного ошалел, потягивая во время циркового представления какое-то подозрительное зелье из фляги. Поскольку его выступление можно было в лучшем случае охарактеризовать как скучное, нетворческое и размытое, люди начали кричать, и некоторые неопознанные летающие объекты (НЛО) начали летать то тут, то там. Осталось только убрать клоуна со сцены...

К счастью, у вас есть подходящий инструмент для работы: крючок Vaudeville. Имейте в виду, что это часть традиции использовать крючок в случае необходимости! Как директор цирка «Искусство, трюки, жонглирование, акробатика и забота о животных» вы точно знаете, что вам следует делать. Попробуйте оттащить клоуна со сцены: «Дайте ему крючок!», кричат ​​зрители.

Однако он упрямый парень, так что не удивляйтесь, когда он попытается вернуться на сцену. И когда он это сделает, вам придется начинать эту комедию заново!

Экран

В верхнем левом углу отображается текущий уровень. По мере продвижения расстояние крюка увеличивается.

Контролс

Используйте джойстик в порту 2. Чтобы управлять положением крюка, перемещайте джойстик влево или вправо. Чтобы освободить крюк, нажмите кнопку огня.

Советы и хитрости

Попробуйте прицелиться клоуну в заднюю ногу.

Описание кода

Большая проблема с этим 10-строчным текстом заключалась в том, что у меня не было места для операторов IF (поскольку в таком случае дальнейший код не может быть выполнен после). Это натолкнуло меня на мысль записать все условия в состояниях, где каждое состояние представляет собой комбинацию математических выражений, где одна часть может быть исключена или включена на основе умножения условия. Всегда интересно посмотреть на вещи по-другому, и это то, что мне понравилось в этом вызове. Например, определить следующий уровень игры в одном условии было довольно удобно:

```

V=-(G=-1)*(V*-(G=-1))+1

```

Если G равно 0, уровень будет сброшен на 0. Если он равен -1, уровень увеличится на 1.

Это так забавно, что я стал жертвой подсчета с нуля. Когда я подумал, что игра закончилась, я понял, что строк не 10, а 11, начиная с 0! Поэтому мне нужно было сократить одну полную строку кода BASIC. Из-за этого я не смог добавить никаких звуков, чего хотел изначально. Тем не менее, я надеюсь, что в эту игру по-прежнему интересно играть!

Построчный обзор кода

– Строка 0:

    - Создание хука с использованием цикла FOR, а также строки, используемой во время анимации при перемещении хука вверх, инициализация thе начальный уровень

    – Сохранение верхней части клоуна (в A$), которая хранится в DATA (строка 9)

    – Определение строки, используемой для управления вертикальным положением крючка (в долларах США)

    – Установка адреса памяти экрана (в S)

– Строка 1:

    - Настройка средней части клоуна (в B$)

– Строка 2:

    - Установка нижней части клоуна в нормальное состояние (в C$(0))

    – Настройка нескольких переменных (описано в обзоре переменных ниже)

– Строка 3:

    – Настройка нижней части клоуна в состоянии прыжка (в C$(1))

    – Настройка нескольких переменных (описано в обзоре переменных ниже)

    – Очистка экрана

    – Отображение текущего уровня

– Строка 4:

    – Цикл игры начинается здесь

    - Настройка нижней части клоуна в состоянии извлечения из состояния сцены (в C$(2))

    – Чтение джойстика в порту 2

    - Настройка цвета фона и границы экрана (не осталось места, чтобы поставить его перед игровым циклом)

– Строка 5:

    – Чтение адреса порта 2 джойстика

    – Установка горизонтального положения крюка (в L), также включает ограничение и то, что крюк нельзя перемещать после его отпускания (если M равно -1, значит, была нажата кнопка огня)

    – Для переменной E (вертикальное положение крючка), если была нажата кнопка огня, это значение уменьшится, поэтому крючок будет двигаться вверх, пока не достигнет E.= 0

– Строка 6:

    - В случае, если E = 0, это означает, что крючок уже был отпущен и достиг вершины, поэтому горизонтальное положение также будет скорректировано, чтобы воспроизвести анимацию перемещения крючка вправо

    – Отображение клоуна в правильном положении на экране

    – Отображение крючка

– Строка 7:

    – Рандомизация следующей позиции клоуна

    - Регулировать следующую позицию клоуна только в том случае, если она удовлетворяет а) пределам горизонтального положения (X > 5 и X < 20) б) прыжок не выполняется (переменная U) в) крюк не достиг сверху (переменная E)

    – Сохранение состояния в переменной G, если крюк зацепил клоунскую лапку (когда X = L)

– Строка 8:

    - Очистка следующей строки хука, если выполняется анимация перемещения хука

    - Если установлено G, клоун будет стягиваться с крючком (X увеличится)

    - U содержит состояние, если клоун прыгает (когда крюк был близко к клоуну по горизонтали (ABS(X-L)<5) и крюк уже сверху (E=0))

    - Рассчитайте, в каком состоянии должна отображаться нижняя часть клоуна (зависит от U для прыжка клоуна и G для вытягивания клоуна)

– Строка 9:

    - В случае, если крючок все еще не достиг вершины или горизонтальное положение крючка находится в диапазоне, продолжайте петлю, переходя к строке 4

    - В противном случае вычислить следующий уровень (если клоуна вытащили, уровень повысится, остальныеиначе он будет сброшен на 1), перейдите к строке 2, чтобы инициализировать уровень

    – В конце DATA, содержащие верхнюю часть клоуна, которая читается в строке 0

Обзор переменных и некоторые хитрости

- P$ - строка с крючком

- G$ - строка, очищающая старую позицию хука

- V - начальный уровень

- A$ - верхняя часть клоуна

- U$ - строка, используемая для вертикального положения крючка

- S - адрес памяти экрана, используемый для POKE'ов

- B$ - средняя часть клоуна

- C$(0-2) - графика нижней части клоуна для каждого состояния (см. описание состояний в переменной A)

- A - состояние анимации нижней части клоуна: 0 - нормально, 1 - клоун прыгает, 2 - клоун стаскивается со сцены

- E - вертикальное положение крючка, а также текущий уровень, настройка в зависимости от результата из строки 9

- G - сохраняет состояние, если клоуна вытащили со сцены

- L - горизонтальное положение крюка

- M - сохраняет состояние, если была нажата кнопка фаер джойстика

- X - горизонтальное положение клоуна

- J - чтение адреса порта 2 джойстика (56320)

- K - используется для определения следующего положения крючка, а также повторно используется для рандомизации следующего горизонтального положения клоуна (-1, 0 или 1)

- U - сохраняет состояние, если клоун прыгает

От автора

Развлекайтесь с другими играми, представленными на конкурс BASIC 10-Liner!

Спасибо https://lvllvl.com/c64/ за отличный пример JS.встраивание мулятора!

Посетите сайт www.commocore.com, чтобы узнать о других играх и проектах с открытым исходным кодом!

Бартош Жолинский

Как скачать Give him the hook 10 через торрент

Всего несколько простых шагов:

  • Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
  • Выбираем и скачиваем подходящий торрент-файл репака Give him the hook 10
  • Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
  • После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!