ZX Spectrum
Game

Spectrum Animation

Your Computer (Великобритания),

Автор:

Жанр: Программы и утилиты


Доступные версии

 Неофициальное издание
Играть!
 Неофициальное издание
Играть!

Язык

  • Русский
  • English

Управление

  • Клавиатура(?)

Игроков

  • Один
  • Описание
  • Описание (авт.пер.)
  • Информация

Спектр Анимация 16K и 48K

      Оторвитесь в новый фаст-акции, мерцания

      Вселенная с гладкой-анимации Роберта Ньюмана                   Машина-код подпрограмм.

[Этот текст должен прийти с, или найти рядом, TZX

  файл с тем же именем, содержащий машинный код   Система, и демонстрации, описанные ниже.

  Основная часть этого текста был опубликован в апреле   1983 выпуск компьютера. В следующем месяце, в нескольких минутах   опечатка была опубликована. Текст этого можно найти в   Конец этого файла.

  Это может быть интересно узнать, что эта система была   используется, по крайней мере в два раза: в августе 1983 года, М. Furby использовали его   в программе гистограмм также опубликованы в компьютере,   а в мае 1984 года, журнал признакам игры ACK-ACK,   написанная А.М. Такер, который использовал его, а также.

  Обратите внимание, что все в квадратных скобках является замечание   из моей собственной, а не оригинального текста статьи.

                                Ричард Бос, январь 2012]

Предоставление цвета, звука и определяемых пользователем высоко-

разрешением графики на Sinclair Spectrum призывает многие люди, чтобы попробовать написать аркадный стиль игры для своих компьютер. Такие программы требуют быстрых действий, без мерцания графика, если они хотят быть успешным и exitingly реализованы на спектрах.

  Обычный способ производства иллюзию движения предполагает в первую очередь на печать объекта в одном положении, а затем стирая его и дальше печатать один символ вдоль экрана. Этот метод достаточно, когда, конечно, быстро используется в основных программах на Spectrum, если только один или два графические символы требуют анимации, но движение есть вяленая внешний вид, потому что наименьшее расстояние, что Персонаж может быть перемещен в одну позицию печати. Есть только 32 позиции по экрану, или 22 сверху Нижняя.

  Другим недостатком Basic является то, что действие замедляется вниз заметно, когда несколько персонажей обязаны двигаться, или, если графика большие, с участием печати на Количество линий или по нескольким столбцам. Большинство коммерчески ально-написано программное обеспечение использует машинный код для того, чтобы достичь требуемой скорости и плавность хода, но писать всю игру в машинный код не является задачей, большинство домашних программисты будет наслаждаться. Поэтому необхо- обходимо рассмотреть другие способы ускорения действия в Основных программ.

 Гладкая рутина

  На ZX-81 можно короткой резки печати государственно

Мент, тыкая символов непосредственно в файле отображения, тем самым получая немного быстрее графика. К сожалению, Дисплей файл Spectrum в выкладывается в очень сложный мода – стр 164 руководства – и это не на самом деле целесообразно сделать то же самое на этом компьютере.

  По этой причине я написал подпрограмму машинного кода особенно в целях создания условий для игры программистам получить быстрее, плавную анимацию от Basic. Это интен- Дед, которые будут использоваться с пользовательских графических символов, которые могут быть сделаны сколь угодно большим и печатается один звоните в рутину. Кроме того, графики может быть расположены в любом положении на высокого разрешения 256 х 176 экраном, и, следовательно, могут быть сделаны, чтобы двигаться по так мало, как одна точка за один раз. Это значительное улучшение более грубая 32 х 22 разрешение обычно доступны.

Цвет grpahics можно управлять с Basic с нормальной чернила, бумага, светлая и Flash-заявления.

  Код машина занимает 197 байт, и самый безопасный способ хранить это двигаться RAMTOP вниз в памяти, используя Команда Очистить и разместить код между Basic Площадь и пользовательские графики.

  Адрес подпрограммы поэтому будет отличаться для 48K и 16K Спектры. Сама процедура, однако, одинаковы для обоих компьютеров, и свалка в машинный код является приведенные в листинге 1. Владельцы 48К машин можно использовать погрузчик программа в листинге 2. Введите эту программу и запустить ее, ввода номера из листинга 1, как предложено: читать номера слева направо. Я бы посоветовал вам проверить машинный код перед его сохранением или пытается использовать его. Это может быть сделано с той же программе загрузчика, удаляя строки 20, 30, 70 и 90, а также изменение линию 80 к:         80 PRINT TAB 10; PEEK я Если все правильно, вы должны Сохранить рутину с Команда:         SAVE “живой” КОД 65160.197 Владельцы 16K компьютеров необходимо внести следующие изменения. В листинге 2, изменение линии 20 к         CLEAR, 32389 и линию 50 к         Ибо я = 32390 К 32586 Сохраните процедуру с помощью команды         SAVE “живой” КОД 32390.197 Теперь можно протестировать процедуру по очистке экрана и выполнив команду: –         RANDOMIZE USR 65171 48K         RANDOMIZE USR 32401 16K   После чего символа в определенной пользователем графического “а” – обычно заглавная буква – должен появиться в верхнем левшей углу экрана. Если этого не произойдет, вы должны сделали ошибку при вводе машинный код.

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

[Код на TZX под названием “живой”, а предло- ложил выше. Это по адресу 48К, но, как отмечалось, является перемещаемым и может быть загружен в любое адрес нужной, в том числе на 16К.]   Если все пойдет, как ожидается, вот как использовать процедуру от базовой программы. Если вы посмотрите в разобранном рутина в листинге 3 [не входит], вы увидите, что Первые 6 байт используются в качестве переменных, XPOS, YPOS и так далее. Эти имена не будут признаны, если вы пытаетесь использовать их в базовой программе, но, тыкая разные значения в эти шесть байт можно управлять работой подпрограмма следующим образом.

 Текущий контроль

  XPOS – адрес 32390 для 16K, 65160 для 48К – это

X координата верхнего левого угла, когда графический символ печатается на экране. Возможные значения же, как и разрешены для команды сюжет, то есть от 0 до 255.

  YPOS – адрес 32391 или 65161 – это Y координата изображение символа, когда печатается на экране. Это может принимать значения от 0 – внизу экрана – до 175 – верх Экран.

  Ширина – адрес 32392 или 65162 – это число точки влево-вправо в символ, который необходимо распечатать.

  HT – адрес 32393 или 65163 – это число точек верх-низ в символ, который необходимо распечатать.

  MODE – адрес 32394 или 65164 – имеет значение 1, если вас хотите напечатать символ в текущей позиции, или 0, если Вы хотите, чтобы стереть блок ширина х HT точек на текущее положение.

  UDGCH – обратиться 32395 или 65165 – это должно иметь значение от 1 до 21, и это говорит программе, где найти Данные для символа, который вы хотите напечатать. Значение 1 означает, что первый байт данных проводится по адресу USR “”, То есть, первый байт пользовательского графического “а”, в то время как Значение 21 означает, что он проводится в адресной ЕГР “и”.

  Значения ткнул в этих шести байтов перед вызовом подпрограмма будет неизменной на выходе, так, если печать более чем из одного символа, вы, возможно, не нужно обновлять каждый байт. Вы получите странные результаты, или, возможно, причиной аварии, если Вы пытаетесь установить XPOS и YPOS до значений, которые не разрешить характер, который вы хотите печатать, чтобы соответствовать на экраном, и поэтому ваш Базовая программа, возможно, потребуется включить проверить, чтобы не допустить этого.

 Различные цвета

  Рутинные печатает графический символ в цвете

определяется текущим содержанием системной переменной ATTR T – расположение 23695. Если вы хотите печатать символы в разных цветов, вы можете установить ATTR T от Basic без изменения текущего положения печати с помощью фиктивного печать Заявление, такие как         PRINT PAPER 6; INK 1; перед вызовом подпрограммы. Вспышка и Яркие высказывания также может быть использован. [Примечание Последнюю точку с запятой! Без нее вы изменится ATTR P вместо.]   При использовании обычной печатать пользователем графику, состоящие из восьми по восемь очков, то метод хранения картина точно такая же, как описано в главе 14 руководство пользователя. Тем не менее, процедура может обрабатывать графику любого размера и способа для больших символов немного отличается.

  Во-первых, создать свой характер на листке квадрат бумага. Я собираюсь использовать процедуру для перемещения персонажа по экрану двумя точками одновременно, и поэтому он является лучше оставить запас на левых и правых краев двух пустым столбцы. Работа двигается влево или вправо на два точки и печать на новой должности будет автома- чески печатать поверх старой космической захватчика, экономя труд стирания его в первую очередь. Характер мы хотим использовать поэтому состоит из 14 по 11 очков.

[Эти пункты, а в следующем, обратитесь к рисунках 1 и 2, ASCII приближение которого является:]

  + — Первый байт данных — + + Второй байт +

  | Для каждой линии | | |

  .. .. .. .. .. XX XX XX XX .. .. .. .. .. .. ..
  .. .. .. XX XX XX XX XX XX XX XX .. .. .. .. ..
  .. .. XX XX XX XX XX XX XX XX XX XX .. .. .. ..
  .. .. XX XX .. .. XX XX .. .. XX XX .. .. .. ..
  .. .. XX XX .. .. XX XX .. .. XX XX .. .. .. ..
  .. .. XX XX XX XX XX XX XX XX XX XX .. .. .. ..
  .. .. .. XX XX XX XX XX XX XX XX .. .. .. .. ..
  .. .. .. XX .. XX .. .. XX .. XX .. .. .. .. ..
  .. .. .. XX .. .. XX XX .. .. XX .. .. .. .. ..
  .. .. XX .. .. .. .. .. .. .. .. XX .. .. .. ..
  .. .. XX .. .. .. .. .. .. .. .. XX .. .. .. ..

  Рисунок 1

  Рисунок 2

  .. .. .. .. XX .. .. .. .. XX .. .. .. .. .. ..

  .. .. .. .. XX .. .. .. .. XX .. .. .. .. .. ..

  Если ширина не кратен восьми, вы должны

добавить необходимое количество пустых столбцов в правой край. Ширина символа затем разделить на восьмибитные секции, которые могут быть описаны с помощью ряда Bin как обычно, и хранится в графической области, определенного пользователем. Программа, как, что в листинге 4 можно использовать для этого.

Первый байт данных для персонажа будет храниться в адрес задается USR “а”. При вводе данных для вашего собственные символы, помните о том, что данные для верхней линии сохранены, а затем во второй строке, и так далее.

  Так как пространство захватчика занимает 22 байт, то есть, все графики “а” и “б” плюс большинство “с”, на следующий неиспользованный Раздел начинается в USR “D”. Это где четыре байта Данные, необходимые для символа на рисунке 2 могут быть сохранены. Когда эти две линии будут напечатаны в течение двух нижних строках пространства захватчика, его ноги будут двигаться в то время как это движется по экрану. Введите и Run листинг 4. Вы можете сохранить пользователем графику, если вы хотите с         SAVE “символы” КОД USR “”, 32 Стереть листинге 4 – вы можете сделать это с Нью поскольку рутина и пользователь-графика безопасны выше RAMTOP – и войти в программу в листинге 5. Это сделает ряд семь разноцветных Дрозды идти и вниз Экран в порядке, так знакомо всем преданным AR- Кейд игра. Обратите внимание, что все семь захватчики могут быть стерты с один вызов подпрограммы при перемещении вниз линию, установив РЕЖИМ 0, ширина до 140 и HT 11 – линий 130-160.

  Другие разделы программы заключаются в следующем: линии 300- 340 печать строка из семи знаков в семь раз- ные аренда цвета чернил. Линии 200-260 вызовов подпрограммы на линии 300 печатать сначала ряд космических захватчиков на определенный Положение и наложения их ноги с характером на рисунке 2.

  Линии 100-170 сделать захватчики двигаться сначала слева направо по экрану, а затем идти назад в обратного направления ции. Линии 20-60 сделать захватчики двигаться вниз по экрану после прогулки по нему.

[Эти две программы, в сочетании, в “захватчиков” на TZX. Я изменил их так, чтобы он определяет, является ли он работает на 16К или 48К машины, загружает код в соответствующий адрес, и устанавливает несколько переменных, а не POKEing в абсолютных адресов. Это также было бы полезно для перемещения рутину, как описано ниже. Ориги- конечные списки ниже; обратите внимание, что не было никакой версии 16K перечисления 5.]

 Быстрые Графика

  Из этого примера, вы должны быть в состоянии видеть, как

процедура может быть использована с выгодой в своих программах, производить захватывающие, графику быстро действий.

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

  Это может быть сделано очень легко, так как машина-код может поставить в любом месте, при условии, что его первый байт, то есть, XPOS, приходит сразу после RAMTOP. [На самом деле, подпрограмма сам по себе может быть в любом месте, при условии, что после 11 байт RAMTOP доступны для переменных и временной рабочей пространство.] Например, если вы хотите использовать процедуру на генерировать 40 символов в печати линии, вы должны были бы определить собственную шесть на восемь набор символов, или скопировать Sinclair один, misssing из левые и правые поля которые дают пробелы между буквами. Это потребует большая площадь памяти – около 800 байт – для хранения, и так 48К владельцы должны будут переехать из программы на, скажем, обратиться 64000 с помощью команды         CLEAR, 63999 а затем загружается с          LOAD “живой” КОД 64000   В области отображения определяемых пользователем теперь могут быть перемещены, чтобы начать по адресу 64300, тыкая системы переменного UDG – месте 23675/6 – соответственно. Это дает достаточно места для переменному родной набор символов или для любых других пользовательских графики. [Листинге 1 был десятичной свалка “живой”, перечисляя 2 был просто десятичный код загрузчика, и перечисление 3 был разборка из того же кода.]

 Листинг 4.

 10 REM характер на рисунке 1

 20 Ибо я = USR “” К USR “” +21  30 Чтение N: POKE я, н  40 Затем я  50 ДАННЫЕ ОГРН 00000111, ОГРН 10000000,    ОГРН 00011111, ОГРН 11100000, ОГРН 00111111,    ОГРН 11110000, ОГРН 00110011, ОГРН 00110000  60 ДАННЫЕ ОГРН 00110011, ОГРН 00110000,    ОГРН 00111111, ОГРН 11110000, ОГРН 00011111,    ОГРН 11100000, ОГРН 00010100, ОГРН 10100000  70 ДАННЫЕ ОГРН 00010011, ОГРН 00100000,    ОГРН 00100000, ОГРН 00010000, ОГРН 00100000    ОГРН 00010000  80 REM характер на рисунке 2  90 Ибо я = USR “д” К USR “D” 3  100 Чтение N: POKE я, н  110 NEXT I  120 DATA ОГРН 00001000, ОГРН 01000000,     ОГРН 00001000, ОГРН 01000000

 В листинге 5.

    1 REM разноцветные захватчики

    2 REM (в) R Ньюман 1983     3 REM 48К версия     4 REM     5 CLEAR, 65159    10 PAPER 7: ГРАНИЦА 7: CLS    20 ДЛЯ у = 160 К 100 ШАГ -20    30 GO SUB 100    40 СЛЕДУЮЩИЙ у    50 INK 0    60 СТОП    70 REM   100 POKE 65162,14: POKE 65164,1   110 ДЛЯ х = 0 до 100 ШАГ 2: GO S  UB 200: СЛЕДУЮЩИЙ х   120 ДЛЯ х = 100 К 0 STEP -2: GO  SUB 200: СЛЕДУЮЩИЙ х   130 POKE 65160,0: POKE 65161, у   140 POKE 65162.140: POKE 65163,  11   150 POKE 65164,0   160 RANDOMIZE USR 65171   170 ВОЗВРАТ   180 REM   200 POKE 65161, у: POKE 65163,11   210 POKE 65165,1   220 GO SUB 300   230 POKE 65161, у-9: POKE 65163,  2   240 POKE 65165,4   250 GO SUB 300   260 ВОЗВРАТ   270 REM   300 для С = 0 до 6: PRINT INK с;   310 POKE 65160, с * 20 + х   320 RANDOMIZE USR 65171   330 СЛЕДУЮЩИЙ с   340 ВОЗВРАТ   350 REM

[В следующем опечатка была опубликована в письмах во-

ция мая 1983 в компьютере. Версия кода на TZX имеет эту поправку примененные к нему. ]

Я прошу прощения у читателей, используя процедуру машина-кода

описано в моей статье о быстрых анимированной графикой для Спектр которые обнаружили, что он не работает правильно когда “Ширина” больше, чем 16 бита. Виновником является отсутствует инструкция LD (IX + 9), 8, которые должны прийти между инструкции EX HL, DE и L4 декабря (IX + 8) в листинге 3.

Если у вас есть свой оригинальный вариант машинного кода подпрограмма “Анимация” на ленте, то вы должны получить коррекция Тед версия выглядит следующим образом: сбросить RAMTOP к 65159 – 48К – или 32389 – 16K – с соответствующим ОЧИСТИТЬ команды. Загрузите Старая версия “Анимация”.

  Введите и выполните следующую основную программу: 10 LET = 65160 (32390 для 16K) 20 POKE + 158,24 30 POKE + 159,37 40 при В = + 197 к + 204 50 ЧТЕНИЕ С: POKE б, 60 СЛЕДУЮЩИЙ б 70 ДАННЫЕ 78,235,221,54,9,8,24,211

80 SAVE “Анимация” КОД, 205

Игра Spectrum Animation запускается прямо на сайте. Утилита для программной разработки, которую подарил миру Robert Newman, была опубликована компанией Your Computer в 1983 году в Великобритании.

Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.

avatar
  Subscribe  
Уведомлять об
 

Сохранённые игры[X]

  

Справка[X]

Помощь уже в пути!

Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!

Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.

Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.

Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.

Помощь

Размер

  • x1 [256x192]
  • x2 [512x384]
  • x3 [768x576]
  • Полный

Диск

Кликни в окно эмулятора, чтобы управлять!
<<<<
Close