ZX Spectrum
Game

Sprite Designer [1]

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

Автор:

Жанр: Утилиты: Визуализация


Язык

  • Русский
  • English

Управление

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

Игроков

  • Один

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

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

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

Неофициальное издание
Играть!
  •  Описание (авт.пер.)
  •  Информация
Описание Sprite Designer [1] (автоматический перевод)

! 0 ^ ^ ^ ..

! B H11 H07 H10 H00 S П Р Я Т Е H11 H07 H10 H00 D E S I G Н Е Р

! 2 ^ ^ ^ ^ ^ ^

 Пользовательские спрайты на Spectrum? Это не так сложно!  Сдвинуть на экране с более машинного кода магии от                       Тони Бейкер.

! 1 ^ ^ ^ ^ Блок в этом месяце из хитрого кода делает странные формы летать по всему экрану. На самом деле, Вы не найдете его слишком сильно, чтобы добавить несколько битов и частей к идее самостоятельно. Это все Basic- союз очень просто. Вы проектируете до пяти различных спрайтов – любой рисунок, форма, дизайн и так далее – которые в этом случае являются 16 пикселей в ширину и 16 пикселей в высоту; представьте четыре пользователь- определенные графические символы склеиваются в площади и у вас есть идея. Но – и это где действительно начинается история – это еще не все эта программа, чем кажется на первый взгляд, для него incorp- orates довольно умопомрачительных идея …

! 0 ^ ^ ^ ..

! B Кинофильмы ! 1 ^ ^ ^ ^ Вы видите, как только вы определили спрайт, вы можете затем укажите свои координаты на экране и его скорость по экрану. Другими словами, они двигаются! Любопытнее и любопытнее. После того, как спрайт в движение, вы можете продолжать exe- кройки более Basic или машинный код. Спрайты будет продолжать двигаться на экране, одновременно с любая другая программа.

  Одна линия Basic можно установить спрайт в движении. Следующий основной линии будут, конечно, выполняться в последовательности – но это будет выполняться, пока спрайт движется. Таким образом, установка в движении в Первое место все, что вам не придется беспокоиться о. Как все это работает довольно сложная, так что я буду объяснить в минуту или две; если вы найдете Рекламное объявление немного слишком тяжелый собирается, попробуйте осушения чаю или два, прежде чем пытаться следовать ему. В Тем временем, я расскажу вам, как интегрировать мой машинный код с вашего Basic.

! 0 ^ ^ ^ ..

! B Работу над проектом ! 1 ^ ^ ^ ^ Первое утверждение вашего Basic программа должна быть “DIM S $ (х, 8)”; где х представляет собой максимальную ряд вещей, которые вы хотите, суетящихся on- Экран в любой момент времени. Тогда, вы хотите, чтобы включают заявления «Пусть на = 33013″ и “Let от = 33020 “. С этого момента в это до вас. The Заявление “RANDOMIZE USR на” принесет перемещение спрайта объекта в действие, в то время как Заявление “RANDOMIZE USR от” принесет вещи вернуться к нормальной жизни.

  В спрайты сами определяются с помощью обычные пользовательские графики. Вы можете иметь до в пяти различных дизайнов на экране сразу, которые являются: ! 0 ^ ^ ^ ..

Sprite 1 = UDGs А, В, С, D
Sprite 2 = UDGs E, F, G, H
Sprite 3 = UDGs I, J, K, L
Sprite 4 = UDGs M, N, O, P
Sprite 5 = UDGs Q, R, S, T

! 1 ^ ^ ^ ^ Вы можете определить их самостоятельно в обычных способов.   Массив, с $, является тот, который содержит все Информация, однако, и каждый элемент должен быть точно определены. Теперь … это “плата вни- ция “время. Взгляните на поле, давая Объяснение параметров спрайтов. (Учтите, что в объяснениях, я использовал письмо ‘N’ представлять одну из строк в S $; число совершенно произвольно.)   Элемент с $ (N, 8) на самом деле очень импортно муравей. Если он содержит любой символ, код которого меньше или равен 64 (десятичное), то спрайт, как говорят, неактивным – то есть, это будет не появится на экране. Вы можете сделать так много Изменения, как вам нравится с другими элементами с $. После того как все изменения были сделаны, вы Затем можно изменить S $ (N, 8) и спрайт будет активный и начнет двигаться по экрану.

  Если такое перемещение спрайта сталкивается с чем-нибудь на экране, или если она попадает края экраном, то это будет мгновенно остановить ! 0 ^ ^ ^ ..

! B

H11 H07 H10 H00 ПАРАМЕТРЫ SPRITE

STRING | ОПИСАНИЕ

ЭЛЕМЕНТ |

с $ (N, 1) | CHR $ (число спрайт

        | – Между одним и пятью)

с $ (N, 2) | Это должно всегда быть

        | Инициализации для CHR $ (1)

с $ (N, 3) | CHR $ (число         | кадры между

        | последовательные движения)

с $ (N, 4) | CHR $ (фигуры Y

        | Координаты)

с $ (N, 5) | CHR $ (фигуры X

        | Координаты)

с $ (N, 6) | CHR $ (фигуры         | Вертикальное смещение

        | Каждый раз она движется)

с $ (N, 7) | CHR $ (фигуры         | Горизонтальное смещение

        | Каждый раз она движется)

с $ (N, 8) | Это должен быть установлен в прошлом         | Всего, и должен быть любой         | Символу, код является

        | Больше 64

! 2 ^ ^ ^ ^ ^ ^

В приведенной выше таблице, следует отметить, что “N” используется для пред- послал одного из строк в S $ – число произвольно.

! 1 ^ ^ ^ ^ ! B перемещения и дезактивировать. Элемента S $ (N, 8) будет автоматически сбрасывается в CHR $ (0). Вы можете проверить это появление в основную программу.

! 0 ^ ^ ^ ..

ВОВРЕМЯ ПЕРЕРЫВ ! 1 ^ ^ ^ ^ ОК, пора чай-брейк! Запастись чаю, и я объясню, как это все работает.

  Код машина обработчика прерываний. Это означает, что программа работает сама автоматически 50 раз в секунду. Каждый раз, когда он работает он проверяет из массива S $ и перемешивает спрайтов вокруг экран соответственно. Основная инструкция “RANDOMIZE USR на” просто активирует этот Процедура прерывания, в то время как “RANDOMIZE USR от” дезактивирует его. Прерывание процедуры довольно умный; Однако, это очень легко сбросить вещи и только крошечная ошибка будет означать общее стихийных бедствий и взрыв бедных Speccy в забвение. Это истинное просто потому, что Программа работает сама один раз для каждого нового телевизионного кадра, хотите ли вы этого или нет.

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

Первые семь строк просто инициализировать массив, S $, и линия 80 пусков вещи двигаться. Линия 90 является один думать о – это выглядит как бесконечный цикл, но на самом деле это не; это просто ждут пока эта цифра не поражает преимущество. Если вы вырваться программы в любое время вы заметите, что цифра будет продолжать двигаться даже при вводе Команда, пока не наткнется на стену (когда он будет остановить). В этот момент, вы должны ввести “RANDOMIZE USR от “прежде чем делать что-нибудь еще.

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

! 2 ^ ^ ^ ^ ^ ^

! B   10 DIM S $ (1,8) Размеры массив, с $   20 LET на = 33013 инициализацию переменных   30 лет от = 33020   40 при = 1 до 8 Прочитайте данные в линии 160   50 ЧТЕНИЕ   60 ЛЕТ с $ (1, к) = CHR $   70 СЛЕДУЮЩИЙ J   80 RANDOMIZE USR на коммутаторах на спрайт объекта   90 Если S $ (1,8) = “” Тогда пойдите в Ожидает спрайт не попадает 90 край экрана  100 Пусть Y = CODE с $ (1,4) ‘у’ в Y координата                                  эльф  110 Пусть X = CODE с $ (1,5) ‘х’ X координата                                  эльф  120 ЕСЛИ у = 0 или у = 22 то пусть S $ Меняет движение Y из (1,6) = CHR $ (256-код S $ (1,6)): B спрайт при необходимости ЕЭП .03,24  130 IF х = 0 или Х = 30 то пусть с $ Меняет X движение (1,7) = CHR $ (256-код S $ (1,7)): B спрайт при необходимости ЕЭП .03,12  140 Пусть S $ (1,8) = “” активизирует спрайт  150 GO TO 90 петли для отправки действие назад                                  на линию 90.

 160 DATA 1,1,2,10,5,255,1,65 Содержит данные для S $

Основная программа, чтобы получить вещи, движущиеся на экране – введите его в

и увидеть …

! B Машина код ассемблера Комментарии                    ORG 80F5 3E80 ON LD A, # 80 ED47 LD I, A Я: = 80 ED5E IM 2 Активировать прервать рутину C9 RET ED46 OFF IM 0 Отключение рутина C9 RET 0181 IADDR DEFW 8101 Прямое управление прерывания                                       для решения 8101 F5 спрайты PUSH AF C5 PUSH BC D5 PUSH DE E5 PUSH HL DDE5 PUSH IX Сложите все регистры, используемые                                       подпрограммой DD2A4B5C LD IX, (VARS) Точка IX в массив S $ DD7E00 LD, (IX + # 00) FED3 CP # D3 200F JR NZ, EXIT Перейти если первая переменная                                       не массива S $ DD4604 LD B, (IX + # 04) B: = первого размерность массива                                       (Количество спрайтов) C5 SP_LOOP PUSH BC Стек это число 010800 LD BC, # 0008 DD09 ДОБАВИТЬ IX, BC точка IX до начала следующего                                       спрайт (следующий элемент массива) CD7181 ЗВОНОК NXT_SPRT Лечить следующий спрайт C1 POP BC B: = оставшееся количество                                       спрайты для лечения 10F4 DJNZ SP_LOOP DDE1 EXIT POP IX E1 POP HL D1 POP DE C1 POP BC F1 POP AF Восстановить все регистры FF RST # 38 Провести нормальный                                       прерывания процедуры C9 RET CB0C ЛИНИЯ RRC H CB0C RRC H CB0C RRC H HL: = кодированной позиции печати 011F00 LD BC, # 001F 09 ДОБАВИТЬ HL, BC Move позиция печати один                                       квадрат вниз и одна левая CB04 RLC H CB04 RLC H CB04 RLC H HL: = правильная позиция печати C9 RET CD4081 WIPE вызов H_WIPE Erase верхнюю половину спрайта CD2981 телефонную линию Точка HL для нижней половины                                       эльф CD4481 H_WIPE ЗВОНОК Q_WIPE Стереть один квадрат спрайта 23 INC HL Точка HL для оставшейся площади E5 Q_WIPE PUSH HL 0608 LD B, # 08 В: = число строк на                                       квадрат 3600 WP_LOOP LD (HL), # 00 Erase следующий ряд 24 INC H Точка HL на следующую строку 10FB DJNZ WP_LOOP E1 POP HL C9 RET AF TEST XOR: = 00 CD5581 ЗВОНОК H_TEST Тест верхняя половина спрайта                                       положение CD2981 извещатель ЛИНИЯ HL для нижней половины CD5981 H_TEST ЗВОНОК Q_TEST Тест один квадрат спрайта                                       положение 23 INC HL Точка HL для оставшейся площади E5 Q_TEST PUSH HL 0608 LD B, # 08 B6 TS_LOOP ИЛИ (HL) Если какой-либо пиксель установлен, то                                       становится отличной от нуля 24 INC H HL указывает на следующую строку 10FC DJNZ TS_LOOP E1 POP HL C9 RET 78 FIND_ADDR LD A, B Эта подпрограмма, вычисляемых E618 И # 18 в HL печатные поз из F640 ИЛИ # 40 квадратных (на экране), который 67 LD H, имеет PRINT-AT Coords данные 78 LD A, B регистрами B, C 0F RRCA 0F RRCA 0F RRCA E6E0 И # E0 B1 ИЛИ С 6F LD L, C9 RET DD7E07 NXT_SPRT LD, (IX + # 07): = флаг активации FE40 CP # 40 D8 RET C Возврат если спрайт неактивным DD3501 DEC (IX + # 01) графа кадры между                                       движения C0 RET NZ Вернуться если спрайт делает                                       не требуют перемещения DD7E02 LD, (IX + # 02): = интервал кадров между                                       движения DD7701 LD (IX + # 01), инициализация счетчика кадров DD4603 LD B, (IX + # 03) B: = у координат DD4E04 LD C, (IX + # 04) C: = х координат CD6281 ЗВОНОК FIND_ADDR HL: = печати поз из спрайта CD3A81 ЗВОНОК WIPE Стереть спрайт DD7E03 LD, (IX + # 03) A: = координату DD8605 ADD A, (IX + # 05) A: = предназначено координату FE17 CP # 17 301F JR NC, NS_EXIT Перейти если предназначено у коорд                                       вне диапазона 47 LD B, AB: = предназначено координату DD7E04 LD, (IX + # 04) A: = х координат DD8606 ADD A, (IX + # 06): = предназначено координаты х FE1F CP # 1F 3014 JR NC, NS_EXIT Перейти если предназначен х коорд                                       вне диапазона 4F LD C, AC: = предназначено координаты х C5 PUSH BC CD6281 ЗВОНОК FIND_ADDR HL: = предназначены для печати поз CD4E81 тестовый звонок ТЕСТ для столкновения C1 POP BC BC: = предназначенные координаты A7 И 2008 JR NZ, NS_EXIT Перейти если спрайт ударил                                       что-то DD7003 LD (IX + # 03), B-магазин новый координату DD7104 LD (IX + # 04), C Хранить новый координаты х 180A JR NS_DRAW DD360700 NS_EXIT LD (IX + # 07), # 00 Отключение спрайт DD4603 LD B, (IX + # 03) B: = старый координату DD4E04 LD C, (IX + # 04) С: = старые координаты х DD6E00 NS_DRAW LD L, (IX + # 00) L: = номер типа спрайт 2D декабря LL сейчас в диапазоне от 0 до 4 2600 LD H, # 00 HL теперь в диапазоне от 0 до 4

29 ДОБАВИТЬ HL, HL
29 ДОБАВИТЬ HL, HL
29 ДОБАВИТЬ HL, HL
29 ДОБАВИТЬ HL, HL
29 ДОБАВИТЬ HL, HL умножить на 32d

ED5B7B5C LD DE, (УДГ) Точка DE для графического А 19 ДОБАВИТЬ HL, DE точки HL для необходимости                                       спрайтовая графика E5 PUSH HL CD6281 ЗВОНОК FIND_ADDR HL: = печати поз из спрайта D1 POP DE DE: = адрес пикселя                                       информация CDDB81 рисовать ВЫЗОВ H_DRAW Нарисуйте верхнюю половину спрайта CD2981 извещатель ЛИНИЯ HL для нижней половины CDDF81 H_DRAW ЗВОНОК Q_DRAW Нарисуйте следующий квадрат спрайта 23 INC HL Точка HL к следующему площади E5 Q_DRAW PUSH HL 0608 LD B, # 08 1А DR_LOOP LD, (DE) 77 LD (HL), для печати следующей строки 13 INC DE 24 INC H Точка HL на следующую строку 10FA DJNZ DR_LOOP E1 POP HL C9 RET ! 1 ^ ^ ^ ^

! B – с Вашего Spectrum # 10 (декабрь / Jan.1984 / 85) – $

?

Краткая информация о Sprite Designer [1]

Игра Sprite Designer [1] запускается прямо на сайте. Программа для визуализации, которую подарил миру Toni Baker, была опубликована командой Your Spectrum в 1984 году в Великобритании.

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

Subscribe
Уведомлять об
guest
0 комментариев
Inline Feedbacks
View all comments

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

  

Справка[X]

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

  • x1
  • x2
  • x3

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

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

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

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

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

Поделиться
Close
0
Would love your thoughts, please comment.x