ZX Spectrum
Game

Laser Basic

Ocean Software Ltd (Великобритания),

Авторы: ,

Жанр: Программирование: BASIC


Язык

  • Русский
  • English

Управление

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

Игроков

  • Один

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

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

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

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

ЛАЗЕР BASIC

по OASIS ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

СОДЕРЖАНИЕ

ЛЕНТА MAP 2

ВВЕДЕНИЕ 3

С помощью лазерного основной с Microdrives 3

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

РЕДАКТИРОВАНИЕ И запущенные программы 7

Начало работы с первого лазера основной программы 7

Загрузка Laser BASIC Загрузка ВАРИАНТ 2 спрайты

ЛАЗЕР BASIC 8

Набор инструментов средства 8 Графические переменные 11 Назначение переменных 12 Допрашивать переменные 13 Sprite утилиты 14 Горизонтальный экран прокручивается 16 Вертикальные экран прокручивается 17 Атрибутов экрана прокручивается 18 Горизонтальные спрайт свитки 19 Вертикальные спрайт свитки 20 Атрибутов Sprite свитки 21 Группа 1 ПОЛУЧАЕТ и ставит 21 Группа 2 ПОЛУЧАЕТ и ставит 24 Группа 3 ПОЛУЧАЕТ и ставит 25 MOVE 25 Преобразования 27 Разное слова 30 Расширенные функции в деталях 32 Дополнительные команды 35

ПРОЦЕДУРЫ 35

Локальные и глобальные переменные 35 Вызов процедуры 36 Вложенные процедуры 37

ПРОГРАММИРОВАНИЕ МЕТОДЫ 38

Перемещение программных спрайты 38 Экран прокрутки под управление с клавиатуры 38 Простой ввод 38 Логические операции 40 MOVE 42 Привет разрешением положить 42 Обнаружение столкновений 43 Прокрутка пейзажи 44 Переосмысление наборы символов и UDGs 44 Переменная устанавливает 45 Загрузка и сохранение программы Лазерная ОСНОВНЫЕ 45

++ 1

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

SPRITE ГЕНЕРАТОР ПРОГРАММА 48

Введение 48 Загрузка 48 Начало работы 48 Словарь терминов 48 Генератор Sprite резюме ключевой функцией 51 Лазерная BASIC генератор спрайтов пример сессия 56 Создание спрайтов в Sprite генератора 61 (Резюме)

ПРИЛОЖЕНИЕ 1 ЛАЗЕР основные команды 62

ПРИЛОЖЕНИЕ 2 SPRITE1A И SPRITE2A спрайты 67

ПРИЛОЖЕНИЕ 3 SPRITE1B И SPRITE2B спрайты 68

ПРИЛОЖЕНИЕ 4 ЛАЗЕР BASIC DEMO ОБЪЯСНЯЕТСЯ 70

ЛАЗЕР BASIC ЛЕНТА MAP

ЛЕНТА 1 SIDE 1

я) “ЛАЗЕР” ЛАЗЕР основной программы. Нагрузка при помощи LOAD “ЛАЗЕР” или LOAD “” б) “SPRITE2A” файл опция2 спас спрайты для использования в лазерной BASIC (Приложение 2) III) “SPRITE2B” файл опция2 спас спрайты для использования в лазерной BASIC (Приложение 3)

ЛЕНТА 1 SIDE 2

я) Программа “SPTGEN” Sprite генератор, используемый для создания и редактирования Ваши спрайты для использования в лазерных BASIC.

Чтобы загрузить тип RANDOMIZE USR 0: Load “” б) “SPRITE1A” файл OPTION1 спас спрайты для использования с Sprite Программа Генератор (Приложение 2) III) “SPRITE1B” файл OPTION1 спас спрайты для использования с Sprite Программа Генератор (см Приложение 3) ЛЕНТА 2 SIDE 1 я) “DEMO” ЛАЗЕР BASIC DEMO нагрузки с помощью НАГРУЗКИ “DEMO” или загрузить “”

ЛЕНТА 2 SIDE 2

я) “ИГРА” ЛАЗЕР основной игре. Нагрузка при помощи LOAD “ИГРА” или LOAD “”

++ 2

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

ЛАЗЕР РАСПРОСТРАНЕНИЯ BASIC

Кевин Хэмблтон

ВВЕДЕНИЕ

Лазерная Extended BASIC является расширением существующей BASIC переводчика в ROM ZX-Spectrum. Хотя Sinclair BASIC является мощным и гибким Реализация времени честь языке, необходимо было на ее создания, чтобы сделать своих возможностей как можно более общий. BASIC имеет многочисленные приложения, но удельная нашего интереса является графика и анимация. Лазерная BASIC был разработан для повышения легкость, и, в частности Скорость, с которой сложные анимированные графики могут быть произведены и в течение 100 команды и функции включены, чтобы сделать это. Техника сродни полу-компиляция используется для дальнейшего увеличения скорости выполнения дополнительные команды.

Те пользователи, уже знакомые с серией Lightning будет признать наиболее из набора команд, хотя для ясности ряд имен команд есть был изменен. На данном этапе, лазерный BASIC не производит автономное программы (вам нужен расширенный переводчика резидентом), но компилятор Кроме того, разрабатывается которая сделает ваши основные программы работать быстрее и не требует интерпретатор резидентом. Это будет означать, что вы можете продать свои программы на коммерческой основе.

Лазерный BASIC также могут быть использованы в коммерческих программиста, уже знакомы

с серии Lightning, как быстро и просто в использовании инструмент развития.

Команда устанавливает очень похожи и поэтому лазерный BASIC может быть использован для получения Быстрый чувство для анимированного последовательности до преобразования в Белом Lightning или Машина Молния. Интерпретировать характер BASIC делает его абсолютно идеальным для такого рода упражнений.

С помощью лазерного основной с Microdrives Лазерная BASIC может быть автоматически сохранены в Микродиск картридж с помощью одного из опций в меню загрузчика. После лазерной BASIC загружен перемотка лента и выберите опцию 5. различные файлы, которые составляют Лазерная BASIC будет загружается в, а затем сохранить в Microdrive картриджа в Microdrive 1, один файл за один раз. Вам нужно будет остановить и запустить магнитофон, как указано в инструкции.

Лазерная BASIC затем могут быть загружены из Microdrive картриджа, набрав:

НАГРУЗКИ * “М”; 1; “ЛАЗЕР”

После лазерной BASIC была передана Microdrive он может быть загружен и беги так же, как и программа на основе ленты.

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

микродрайвы. Если Микродиск ошибка, такие как “Файл не найден” или любой Другая ошибка, связанная с Microdrive, то управление будет выйти из лазера переводчик и повторно введите название интерпретатора Sinclair. Вы будете знать, если это имеет произошло потому, что любые попытки вводите расширенный команду приведет к мигать “?” Симптоматично синтаксической ошибки, или, если вы попытаетесь запустить программу содержащий расширенные команды, то “Чепуха в BASIC” будет выдан. К вернуть управление расширенной переводчика просто введите хеш (“#”), а затем по ENTER. Если “#” сама генерирует синтаксическую ошибку (“?”), То удалить “#” и введите:

RANDOMIZE USR 58830 с последующим ENTER.

Приносим свои извинения за неизбежного, раздражающих неудобств.

В крайне маловероятном случае, что интерпретатор основе ленты возбужденное, использовать:

RANDOMIZE USR 58820.

++ 3

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

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

Спрайты

Спрайт это программный управляемый графический символ. Лазерная BASIC позволяет до 255 спрайты T0 определяется, каждый со своей собственной выбору пользователя размеры. Ограничение на размер и количество спрайтов, доступной Пользователь устанавливается количеством доступной памяти.

Поставляется с лазерной BASIC является программа, известная как Программа Sprite Generator который используется для создания программного обеспечения спрайтов. После того, как спрайты были созданы в эта программа, вы можете сохранить их в ленты или Microdrive картридж с помощью одного из два “Опции”.

“Опция1” спрайты используются исключительно с Программой Sprite Generator в то время “Вариант 2” спрайты используются исключительно с лазерной BASIC.

Два комплекта опция2 спрайтов были предоставлены на ленту готов для загрузки

в лазерной BASIC, это быть “SPRITE2A” и “SPRITE2B” (см Приложения 2 и 3).

ЭКРАН WINDOWS

Окно экран часть экрана, определяемой четырех переменных COL, ROW, HGT и LEN. COL находится в диапазоне от 0 до 31, строка в диапазоне от 0 до 23, Тушка находится в диапазоне от 1 до 24 и LEN находится в диапазоне от 1 до 32. Блок для каждый из выше является характер. COL и ROW указать столбец и строку Положение на экране в верхнем левом углу окна, с отвода 0 в верхней части экрана и COL 0 на дальнем левом стороне. Тушка и LEN определить размер окна.

Чтобы увидеть пример окна от типа экрана в следующей строке и

хит ENTER.

.ROW = 5: .col = 6: .hgt = 4: .LEN = 3: .INVV

SPRITE WINDOWS

Окно спрайт раздел спрайт, определяемой переменными SPN, SCL, ТРО, Тушка и LEN. SPN определяет спрайт, SCL и ТРО указать столбец и грести в спрайт и ХГТ и LEN определить размер окна. Если окно определяется этими переменными лежит вне спрайта или перекрытий ее границы, то команда не будет выполняться, но сообщение об ошибке не будет выдано.

SPRITE ПРОСТРАНСТВО

Sprite пространство является областью памяти, содержащий все ранее определенные спрайты. В верхней части спрайта пространстве 56575 десятичной (DCFF HEX) и нижняя Конец растет вниз от этой точки. Осторожные пользователи могут пожелать, чтобы выяснить, как далеко вниз их спрайтов выросли, используя один из следующих подпрограмм:

PRINT PEEK (62464) + 256 * PEEK (62465)

ИЛИ Пусть X = Пек (62464):? PRINT X

++ 4

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

RAMTOP

Обратите внимание, что это очень важно, что ваши спрайты никогда не должны расти вниз по RAMTOP. Чтобы прочитать значение для использования RAMTOP:

PRINT PEEK (23730) + 256 * PEEK (23731)

ИЛИ Пусть X = Пек (23730):? PRINT X

Каждый раз, когда спрайт определяется его использует 9 х спрайт ХаГа х спрайт LEN + 5 байт.

В большинстве случаев пользователь не нужно будет беспокоиться о спрайты движется вниз по

RAMTOP если спрайты не создаются во время выполнения с помощью .ISPR или .SPRT. Здесь Можно проверить, что спрайт создан во время выполнения будет соответствовать выполняя Приведенные выше расчеты. Не рекомендуется, что новички определить спрайты изнутри Лазерная BASIC; вместо спрайтов должны быть определены изнутри спрайт программа генератор и загружается в спрайт пространства с помощью одного из следующие процедуры.

Метод я) С помощью одного из трех вариантов, представленный Лазерная BASIC

погрузчик меню.

Метод II) Загрузка спрайты вручную, используя следующий метод.

После лазерной BASIC был загружен тип: CLEAR (SPRITE START АДРЕС) – 1 НАГРУЗКИ “(имя файла)” КОД (SPRITE START АДРЕС) POKE 62464, (SPRITE START АДРЕС) Примечание: “имя файла” это имя, данное в файле спрайта, когда его сохраняется программой генератора спрайт. Начало спрайт адрес является самым низким байт, используемый в файле спрайтов и Также дается программы генератора спрайт.

PIXEL DATA

Для тех, кто не знаком с работой на экране дисплея Spectrum, каждый символ на экране производится следующим образом: каждая ячейка характер массив 64 (8 на 8 пикселей), представленное битами в памяти. Пиксель “Точка”, которая может быть цвет чернилами или бумага цвета. Биты, которые определяют конкретный символ или блок символов, называются пиксельных данных.

Данные атрибутов

Цвет чернил и бумаги в каждой конкретной ячейке, вместе с яркость и проблесковые атрибуты управляются отдельным байта.

байт, которые определяют атрибуты блока символов называются как данных атрибутов. Пиксельные данные и атрибут данных часто рассматривается как отдельные объекты в лазерной BASIC.

Операции на экране

Это операции, которые осуществляются на определенной области Экран. Площадь экрана для работы на называется окно экрана и определено выше. Сами операции включают свитки, инверсии, отражения и т.д., и все команды в категории фиксировали с помощью ‘V’, например .SR1V, .INVV, .MIRV Т.д. Если окно перекрывает край экрана то окно будет автоматически регулировать лежать “на экране”.

++ 5

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

ЭКРАН / SPRITE ОПЕРАЦИИ

Это операции между экраном и спрайт. Размеры Sprite используются в качестве размеров окна экрана и COL и ROW являются используется, чтобы дать координаты верхнем левом углу окна, Таким образом, операции определяются с помощью переменных SPN, COL и ROW. Если Окно лежит с экрана или спрайт перекрывает границу экрана то только часть спрайта будет “PUT” или “ПОЛУЧИЛ”. Команды в этом категория начинаются с ‘PT’ или ‘GT’, например .GTBL, .PTXR, .PTND Т.д.

SPRITE ОПЕРАЦИИ

Они охватывают более или менее те же операции, команды оконных экран но на этот раз полное спрайт работает на память, а не части экрана. Единственная переменная используется SPN и все команды в этой категории фиксировали с ‘M’.

ЭКРАН / SPRITE ОКНО ОПЕРАЦИИ

Это операции между окном экраном и окна спрайта. Как и прежде, Строка, столбец, Тушка и LEN определить экран окно, но на этот раз SCL и ТРО используются для определения положения окна в спрайт. SCL и ТРО измеряются в знаках, SCL слева и ТРО сверху. Если ТРО + Тушка больше, чем высота спрайта, или если SCL + LEN больше, чем ширина спрайта, или, если LEN + COL больше 32, или, если Тушка + ROW больше чем 24, то команды не будут выполняться. Команды этой группы с префиксом ‘GW’ или ‘PW “.

SPRITE / SPRITE ОКНО ОПЕРАЦИИ

Это операции между целой спрайта и окна в секунду спрайт. Два числа спрайт проводятся в SP1 (спрайт, не содержащий Окно) и SP2 (Sprite, содержащий окно). Размеры Окно которые размеры спрайта не содержащий окно и позиция окна в спрайт, номер которого состоится в SP2 является указано SCL и ТРО. Если спрайт номер которого состоится в SP1 перекрытий граница спрайта, номер которого состоится в SP2, то нет исполнение воли состоится. Команды этой группы начинаются с ‘PM’ или ‘GM’.

SPRITE / SPRITE ОПЕРАЦИИ

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

МАНЕКЕН SPRITE

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

++ 6

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Программы для редактирования и работает

Редактор Спектр был продлен так, чтобы дополнительные команды Лазерная ОСНОВНЫЕ

пройдет синтаксис проверки этап ввода программы. Все Лазерная Basic команды начать с полной остановки ”. и за этим следует 4 символов которые должны быть напечатаны в верхнем регистре. Все команды Sinclair BASIC вводятся в обычном порядке. Задания, такие как COL или отвода не должны содержать каких-либо Пробелы между именем переменной и ‘=’, например, Col = 4 даст синтаксис Ошибка. Все команды Лазерная ОСНОВНЫЕ будет выполняться в непосредственном режиме.

Расширенные функции состоят из вопросительным знаком “?” 3 с последующим

символы, например ? COL,? ROW и т.д. Они могут быть использованы только для возврата значения переменной и не может быть использован как часть выражения или PRINT строку.

Пусть X = COL:? Пусть у = KBF:? Пусть Z = SET бы юридическое

Пусть X =? COL * 3 + Y будет незаконным ПЕЧАТЬ? COL будет незаконным

Если лазерный BASIC используется с интерфейсом 1 подключен то Microdrive Ошибки вызовет ДУ для выхода из расширенного переводчика. При этом не бывает редактор больше не принимает расширенные команды и синтаксис ошибки будет происходить каждый раз, когда делается попытка ввести один из тех, команды. Чтобы вновь войти в расширенный переводчика, удалите строку вы пытаются ввести и просто ввести хэш ‘#’, за которой следует ENTER. Вы должны сейчас быть в состоянии продолжать, как и прежде. Если нет, обратитесь в подразделе – «Использование Лазерная BASIC с микродрайвы “.

Для выполнения основной программы просто наберите RUN ключевое слово последующим ENTER.

Там будет пауза в то время как дополнительные команды tokenised а затем выполнение начнется в первой строке программы. Если вы хотите, чтобы выполнить с определенной строке программы, то вы можете сделать это, используя RUN за которым следует номер строки; например RUN 1000 будет запустить программу от линии 1000. Там будет также пауза в конце выполнения программы, или на нажав перерыва, в то время как дополнительные команды де-tokenised. Учтите, что программы также могут быть выполнены с использованием GOTO, GOSUB или продолжить.

Начало работы с основной программе первого лазера

На данном этапе это было бы хорошей идеей, чтобы загрузить в программу Laser BASIC и некоторые спрайты, если вы еще не сделали этого. Большая часть текста, охватывающего Команды Лазерная ОСНОВНЫЕ включают примеры списки, которые, как мы надеемся, если набрано, просветит новичка на их использование. Поэтому мы настоятельно рекомендуем Вы должны работать медленно через эту ручной набрав в примерах, как вы идете.

ЗАГРУЗКА ЛАЗЕР BASIC

Во-первых загрузить в лазерной BASIC, набрав нагрузку “”. Остановите ленту при поручено. Лазерная BASIC будет готов к использованию сразу меню появилась на экране.

Теперь вы должны загрузить в файле “SPRITE2A”.

ЗАГРУЗКА ВАРИАНТ 2 спрайтов

Опция 2 спрайтов – “SPRITE2A” – загружаются выбрав опцию 3 из Меню, а затем нажмите PLAY, на магнитофон. После того, как спрайты загружен выполнить Laser BASIC, выбрав опцию 1 меню.

Помните, мы используем только самые примерные спрайтов, так как например списки

были написаны их использовать. Когда вы пишете ваши собственные программы вы бы нагрузка в ваших спрайтов, созданных в программе Sprite Generator. Вы Теперь можно использовать лазерный BASIC.

++ 7

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

ЛАЗЕР BASIC

Как уже говорилось ранее, все стандартные ключевые слова Sinclair вводятся в обычном режиме. например. тип 10 REM это ваш первый ЛАЗЕР основной программы.

Это напечатано в, в точности так же, как при работе с обычной Sinclair BASIC, ключ REM производится нажатием клавиши E. Теперь введите в Следующая строка, которая содержит команду Лазерная BASIC.

20.COL = 1 Конечно нет .col ключевое слово = так что вы должны ввести. (Символ сдвиг M) COL = 1, символ за один раз. Помните, что не должно быть пробелов между любой из персонажей, включая ‘.’ или “=”. Не вводите .col =

Продлен Лазерная BASIC интерпретатор будет принимать эту линию, когда вы нажмете

войти. Если вы набрали в неверную, ошибочную ошибки будет отображаться как с нормальный редактор Синклер.

Теперь наберите остальную часть программы.

30.ROW = 1 40.HGT = 20 50.LEN = 30 60.INVV Теперь вы можете ввести RUN или GOTO 10 для выполнения программы.

Теперь мы будем вдаваться в подробности объяснения команды Laser BASIC. Лучший способ чтобы понять их работу, это ввести в примеры и запускать их.

Инструментарий СРЕДСТВА

Четыре новые команды, которые были добавлены для облегчения разработки программы, это .RNUM, .REMK, TRON и TROF.

.RNUM

Это довольно стандартный нумерации утилита и пронумеровать программу Текст и любые номера строк следующие GOTO, GOSUB или восстановить. Он выполняет очень медленно по сравнению со многими из своих современников, но не использует табличного пространства вообще. Это не будет, однако, изменить нумерацию расчетные GOTOS, т.е. GOTO 10 * X или GOTO 100 * 5, так как значение выражения не не вычисляется, пока среда. Синтаксис: .RNUM FIRST LINE, новое значение для ПЕРВОЙ ЛИНИИ, INCREMENT

Так, набрав .RNUM 102,1000,5 бы оставить линий с номерами менее 102 (и

ссылки на них) не влияет, изменение линии 102, чтобы иметь номер 1000, и все последующие строки, чтобы иметь номера увеличивается с шагом в 5, например,

  10.COL = 1: .ROW = 1: .hgt = 9: .LEN = 9   32 DEF FN $ (Y, X): ПЕЧАТЬ НА Y, X; “. INVV”: RETN.

 102 GO SUB 50  118 СТОП 7000.INVV 7520.PROCFN A $ (11,11) 8000 ВОЗВРАЩЕНИЕ

станет

++ 8

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

  10.COL = 1: .ROW = 1: .hgt = 9: .LEN = 9   32 DEF FN $ (Y, X): ПЕЧАТЬ НА Y, X; “. INVV”: RETN.

1000 GO SUB 50 1005 СТОП 1010.INVV 1015.PROCFN A $ (11,11) 1020 ВОЗВРАЩЕНИЕ

Прирост линия умолчанию 10, так что если вы указываете только первую строку и

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

Так, набрав .RNUM 102,1000 будет производить следующее:

  10.COL = 1: .ROW = 1: .hgt = 9: .LEN = 9   32 DEF FN $ (Y, X): ПЕЧАТЬ НА Y, X; “. INVV”: RETN.

1000 GO SUB 50 1010 СТОП 1020.INVV 1030.PROCFN A $ (11,11) 1040 ВОЗВРАЩЕНИЕ

По умолчанию “новый номер строки” для нумерации для начала на это “старый

. Номер строки “Так набрав .RNUM 32 будет производить следующее:

  10.COL = 1: .ROW = 1: .hgt = 9: .LEN = 9   32 DEF FN $ (Y, X): ПЕЧАТЬ НА Y, X; “. INVV”: RETN.

  42 GO SUB 42   52 СТОП   62.INVV   72.PROCFN A $ (11,11)   82 ВОЗВРАЩЕНИЕ

По умолчанию “первый номер строки” является первой линией программы (за исключением

линия 0). Так, набрав .RNUM без каких-либо следующих параметров будет производить следующее:

  10.COL = 1: .ROW = 1: .hgt = 9: .LEN = 9   20 DEF FN $ (Y, X): ПЕЧАТЬ НА Y, X; “. INVV”: RETN.

  30 GO SUB 30   40 СТОП   50.INVV   60.PROCFN A $ (11,11)   70 ВОЗВРАЩЕНИЕ

Ошибки будут генерироваться, если:

а) новое значение для линии старта ниже старого значения для предыдущей строке. Это предотвращает линии становятся из из последовательности.

б) Изменение нумерации бы вызвать номера строк превысит 10000.

++ 9

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

.REMK

Эта команда используется просто раздеться программу всех ее РЗМ отчетности и Таким образом, сохранить память, когда программа становится большой. Он не имеет какой-либо параметры и удаляет заявления REM протяжении всей программы.

Если сейчас вы выполните следующую команду:

10 REM Это пример 20 PRINT “HELLO”: REM Эта линия РАСПЕЧ ПРИВЕТ 30 REM Эта линия НЕ ПЕЧАТАЕТ GOODBYE: PRINT “до свидания”

Теперь введите .REMK, отметив, что происходит с линиями 20 и 30; у вас остается

20 PRINT “HELLO”

.TRON И .TROF

Одна из трудностей, с отладке программ базового зная, насколько Программа на самом деле течет. Объект трассировки программы (.TRON) позволяет на один шаг через ваш основной линии программы по линии. Каждая строка в списке перед выполнением и интерпретатор ждет, пока вы не нажмете клавишу на выполнить линию, или CAPS SHIFT прорваться к выходу с возможностью повторного выполнения используя ПРОДОЛЖИТЬ. Выполнение .TRON установит утилиту трассировки работает на Следующий основной линии выполнены и должны быть включены в программу (она отключена по RUN). След автоматически выключается, когда .TROF выполняется или когда программа закончит работу.

++ 10

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Графика переменные

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

Есть на самом деле 16 комплектов 10 переменных, и они могут быть индивидуально

выбраны с помощью SET =<ехр>где<ехр>находится в диапазоне от 0 до 15, и может быть любой BASIC выражение, например .set = 5 * X + PEEK (58471)

В 10 переменные:

ПЕРЕМЕННОЙ ОБЩЕГО НАЗНАЧЕНИЯ

ROW Используется для сохранения на строку (Y совместно ORD) в символах, измеренная от в верхней части экрана (0-23). В верхней части экрана есть строка 0.

COL Используется для сохранения на столбец (X совместно ORD) в символах, измеренная от левой части экрана (0-31). Верхняя левая часть экрана имеет COL 0.

Тушка Используется для сохранения на высоту в характерах текущем окне экрана (1-24).

LEN Используется для сохранения на длину в символах текущем окне экрана (1-32).

ТРО Используется для сохранения на строку (Y совместно ORD) в одном шприце, измеренной от Верхняя (от 0 до высоты-1) и в единицах символов.

SCL Используется для сохранения на столбец (X совместно ORD) в одном шприце, измеренной от влево (от 0 до длины-1) и в единицах символов.

NPX Используется, чтобы определить размер и направление вертикальных свитков. Положительный свитки вверх и отрицательные свитки вниз. Единицы пикселей, а не символов, и должна быть в пределах 127 до -128.

SPN Используется для сохранения на количество спрайтов для тех команд, которые работают на только один спрайт. SPN должно быть в диапазоне от 1 до 255.

SP1 Где операции связаны спрайт и окно спрайт, SP1 содержит число спрайта, который не содержит окно (1-255).

SP2 Где операции связаны спрайт и окно спрайт, SP2 содержит число спрайта, который действительно содержит окно (1-255).

++ 11

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Порядок объявления переменных

.col = .ROW = .LEN = .hgt = .SP1 = .SP2 = .SPN = .NPX = .SCL = .SRW = .set = Используя эти функции, графические переменные могут быть присвоены значения. например .col = 5: .ROW = 2: .SPN = 2 Теперь наберите в следующий пример программы, которая операцию XOR спрайт по Экран, изменив значение переменной COL помощью ПО-следующем цикле.

 1 REM Пример 1

 5 REM с использованием одного набора графических ПЕРЕМЕННЫХ 10. Установите = 0: .SPN = 4: .ROW = 0: .col = -4 20 ГРАНИЦА 1: BRIGHT 1: INK 6: ДОКУМЕНТ 1: CLS: .ATOF 30 Я = -4 до 32 40.PTXR: .col = I + 1: .PTXR 50 PAUSE 4 60 NEXT I 70 СТОП

Чтобы выполнить типа RUN или GOTO 1, затем нажмите ENTER.

Линия 10 Графика переменная набор 0 выбран, количество спрайт установлен в 4,

ROW установлен на 0 (верхний ряд), и COL установлен до -4 Строка 20 атрибуты экрана установлены, экран очищается и атрибутов установлен флаг выключен.

Строка 30 является простая петля для перемещения спрайта 4 (утка) с позиций столбцов От -4 до +32.

Линия 40 операцию XOR из старого спрайта, (см .PTXR) увеличивает переменную COL а затем операцию XOR в новом спрайта.

Линия 50 паузы во время спрайт на экране.

Теперь мы можем продлить эту простую процедуру, чтобы переместить два спрайта (на самом деле зеркало

Изображения того же спрайт) в противоположных направлениях снова меняется Значения в COL, за исключением в этом случае две переменные наборы используются. (Обратите внимание, что если вы намерены использовать только один набор переменных в программе слово set-= не делает должны быть использованы).

 1 REM Пример 2

10 REM использованием двух наборов графических ПЕРЕМЕННЫХ 20 DEF FN # (X, Y) :. SET = X: .SPN = 4: .ROW = Y 30.RETN 35 INK 6: PAPER 0: ГРАНИЦА 0: BRIGHT 1: CLS: .ATOF 40.PROCFN # (0,0) :. PROCFN # (1,1) 50.COL = 32: .set = 0: .col = -4 60 Ибо я = -4 до 32 65.SET = 0: .PTXR: .col = я + 1: .PTXR 70.SET = 1: .MIRM: .PTXR: .col = 28-я: .PTXR: .MIRM 75 PAUSE2 80 NEXT I 90 GO TO 40

Примечание FN часть .PROCFN в строке 40 является ключевым словом FN (символ сдвиг 2).

Эта программа будет двигаться через два уток друг друга по обе стороны от

Экран. Для запуска этой программы просто наберите RUN или GOTO 1 и нажмите клавишу ВВОД.

++ 12

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Линии 20 и 30 определяют процедуру, которая инициализирует необходимые переменные

из соответствующих наборов. В первый раз она выполняется SET 0 и Строка 0 и во второй раз SET 1 и строка также 1 .Это средство что два переменных наборы идентичны для стоимости отвода исключением.

Линия 35 устанавливает значения атрибутов до очистки экрана и переключение от потока атрибута.

Линия 40 выполняет процедуру # дважды.

Линия 50 инициализирует столбцы для наборов 1 и 0 соответственно.

Линия 60 представляет собой простой цикл.

Line 65 движется спрайт слева направо, используя переменные из набора 0.

Линия 70 отражает шприце и перемещает его в направлении справа налево, используя переменные из набора 1. спрайта повторно отражается.

Линия 75 является пауза, пока оба спрайты на экране.

Допрашивать VARIABLES

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

SP2? COL? ROW? LEN? ХаГа? SP1?

SET? SPN? NPX? SCL? ТРО?

Используя эти функции, текущие значения могут быть отнесены к нормальным

Sinclair переменной, например: Пусть X = COL:? ПУСТЬ ROW = ROW: ПУСТЬ ST = SET?

Обратите внимание, что полосы отвода =? ROW разрешено, но не запутаться между нормальным Переменная строка и графический переменная подряд.

Вышеуказанные функции одиннадцать не может быть использован как часть нормальной экспрессии, то есть:

Пусть X =? COL * 3 +? Отвода / 8 не будет законным и они не могут быть включены в качестве параметров печати либо, то есть: PRINT X, Y,? ROW также будет незаконным.

Тем не менее, те же самые результаты могут быть достигнуты с помощью: ПУСТЬ COL = COL:? Пусть у = ROW:? Пусть X = COL * 3 + Y / 8 в первом случае и Пусть R = Row:? PRINT X, Y, R во втором случае

Вы можете вставить следующие строки в приведенном выше примере 2 распечатать

два значения COL как спрайты перемещаются.

75.SET = 0:? Пусть x0 = COL: .set = 1:? Пусть X1 = COL 76 PRINT AT 10,16; “”; AT 11,16; “” 77 PRINT AT 10,12; “COL =”; X0; AT 11,12; “COL =”; X1

Линия 75 позволяет переменная X0 соответствовать значению, COL из набора 0 и X1 равны

Значение набора 1 COL.

Линия 76 заготовок из старых значений на экране.

Линия 77 печатает новые значения.

++ 13

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Расширенной ГРАФИКА КОМАНДЫ В ДЕТАЛЯХ

SPRITE КОММУНАЛЬНЫЕ

Все утилиты спрайт, описанные в этом разделе, доступны во время выполнения

но следует использовать с осторожностью. Мы настоятельно рекомендуем не знаком Пользователь создает все свои спрайты в пакете Sprite Generator.

.SPRT Используется для установки нового спрайта. Sprite пространство расширяется вверх так, Начало спрайтов остается неподвижной, но конец спрайтов увеличивается по 9xHGTxLEN + 5 байт. Если число спрайт был ранее выделено то “старый эльф” сначала удаляется (с нижней части спрайт пространство остающиеся неподвижными и вершина спрайта пространстве бытия уменьшается) до нового спрайта выделяется. Когда спрайт первый настроить это, вероятно, содержат мусор, и данные должны быть “ПОЛУЧИЛ” в него с помощью команды, такие как .GTBL.

Параметр Использовать

SPN Количество спрайта, которая будет создана. (1-255) LEN Длина спрайта в символах. (1-255) Тушка Высота спрайта в символах. (1-255)

Примечание: Так как эта команда расширяет спрайт пространство вверх он будет очень

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

.ISPR Используется для установки нового спрайта. Sprite пространство расширяется вниз так, верхняя спрайтов остается неподвижной, но начало спрайтов ходов вниз по 9xHGTxLEN + 5 байт. Если спрайт был ранее выделено то генерируется ошибка. Если выполнение .ISPR вызывает Начало спрайта пространства для перемещения ниже RAMTOP система рухнет.

Помните, как с .SPRT спрайт может изначально содержать мусор и данные должны быть “ПОЛУЧИЛ” в нее, используя такие команды, как .GTBL.

Параметр Использовать

SPN Количество спрайта, которая будет создана. (1-255) LEN Длина спрайта в символах. (1-255) Тушка Высота спрайта в символах. (1-255)

.WSPR Используется для удаления настоящее время существующий спрайт. Sprite пространство сжимается так что начало спрайтов остается неизменным, но конец спрайтов уменьшается. Опять эта команда используется только в расширенный приложения и спрайты обычно удаляются с помощью .DSPR. Ошибка Вопрос возникает, если делается попытка удалить несуществующую спрайт.

например удалить спрайт 1 вы должны ввести

.SPN = 1: .WSPR

Параметр Использовать

SPN Количество спрайта должны быть удалены. (1-255)

.DSPR Используется для удаления настоящее время существующий спрайт. Sprite пространство сжимается так, чтобы верхняя часть спрайтов остается неподвижной, но начало спрайтов является перешел в памяти. Ошибка Q генерируется, если делается попытка удалить несуществующую спрайт. Эта команда, как правило, используется для удалить спрайт, и .WSPR будет использоваться только в расширенный приложения.

например удалить спрайт 2 вы должны ввести

.SPN = 2: .DSPR

Параметр Использовать

SPN Количество спрайта должны быть удалены. (1-255)

++ 14

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

В примере 3 ниже, проверяется память, чтобы увидеть, если достаточно памяти доступно

для .ISPR.

 5 REM Пример 3

10 REM ПРОЦЕДУРА, чтобы проверить, достаточно места ДЛЯ .ISPR 20 REM X = длина, Y = ВЫСОТА 30 DEF FN T # (X, Y) 40 LET SIZE = 9 * X * Y + 5 50 LET ПРОСТРАНСТВО = PEEK (62464) -PEEK (23730) + 256 * (PEEK (23731) -PEEK (62465)) 60 ЕСЛИ РАЗМЕР>пространство, то не ПРИНТ “никакого доступного номера” 70 ЕСЛИ РАЗМЕР<= пространство, то ПРИНТ "Специальные номера для аллергиков" 80.RETN

Порядок вводится с X и Y длины холдинга и высоты, например тип

.PROCFN T # (5,5) для 5 по 5 спрайта. Размер спрайте вычисляется и по сравнению с длиной свободного пространства (SPST-RAMTOP) и соответствующая Сообщение генерируется.

 5 REM Пример 4

10 REM ПРОЦЕДУРА, чтобы проверить, достаточно места 20 REM ДОСТУПНЫ И УСТАНОВКА SPRITE N, если это возможно 30 DEF FN S # (N, X, Y) 40 LET SIZE = 9 * X * Y + 5 50 LET ПРОСТРАНСТВО = PEEK (62464) -PEEK (23730) + 256 * (PEEK (23731) -PEEK (62465)) 60 ЕСЛИ РАЗМЕР<= пространство, то .SPN = N: .LEN = X: .hgt = Y: .ISPR 70 ЕСЛИ РАЗМЕР>пространство, то не ПРИНТ “Никакой номер” 80.RETN

Описанная выше процедура в примере 4 будет проверять, если достаточно номеров;

если да, то выполнить .ISPR и если нет, то соответствующее сообщение, например, Вы можете набрать .PROCFN S # (1,2,3), чтобы создать спрайт 1 из 2 в 3 символов.

 5 REM Пример 5

10 REM процедуру для удаления спрайта, если он существует 20 REM и распечатать количество байтов мелиорированных

Ты должен

 

 

например

вокруг.

 

 

50 GO TO 20

В Использование

  

                 

 

Список

 

Если

спрайты.

 

Это

Так

Вы

Теперь наберите

 

Ожидается.

  

   

экрана.

спрайт.

генерируется.

  

 

Движение.

автоматически.

  

                 

  

                 

   

                 

ПРЕОБРАЗОВАНИЯ

  

                 

окна.

 

Эта команда

 

 

 

 

До

НАЗНАЧЕНИЯ

например

  

                 

 

  

                 

Если это не так

 

Y

ПРОЦЕДУРЫ

По этой причине

эквивалентны.

Это очень

программа.

Так

 

 

 

 

ПРЕДУПРЕЖДЕНИЕ

Невыполнение этого требования может

Мы будем

 

Так введите:

  

                 

Ниже

после каждого хода.

  

                 

Положение.

  

                 

команды.

  

                 

если

достигнуты.

Экран.

Если какой-либо

есть).

рассчитывается.

  

                 

Часто

Процедура

спрайт.

если

Тест.

прокручивается.

Если

 

   

Программа.

выполнение.

например

Это значит

как обычно.

с последующим

программы.

Режим.

Программа.

и работает.

ПРОГРАММА SPRITE ГЕНЕРАТОР

ВВЕДЕНИЕ

программы.

ЗАГРУЗКА

Начинаем

Глоссарий терминов

Если вы делаете

Ты будешь

Это

Они используются для

программы.

Варианты:

Ты

ниже.

KEY

(-)

Q

Существующий

Пакет.

Время.

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

Однако эти

   

   

   

   

   

   

   

   ключи.

   

получены.

   Имя.

   

                            

                            

                            

                            

                            

                            

                            

                            ниже.

                            спрайт.

                            

                            

                            

                            

                            

                            

                            

                            Экран.

                            

                            

                            

                            

                            

                            

                            

                            

                            

                            

                            

                            

                            

                            

                            

                            

                            

                            спрайт.

                            

                            

                            

                            

Для загрузки

Его цель заключается в оказании помощи

     

 

 

 

     

Вы не можете видеть

В порядке

 

 

     

 

спрайт.

 

 

               

 

Этот процесс

 

 

     

   

    4    

     

 

             

       

  RN

Экран.

    Телевидение   Телевидение  

  Телевидение   Телевидение    

 

 

   

 

Через секунду

 

   

 

       

   

 

     

позиции.

                            Телевидение  

   

 

 

               

                             

вокруг.

 

           

   

Ландшафт

   

     

   

 

 

         

 

           N  

горизонтально.

Окно.

 

 

 

     

 

     

  URN

К

мультфильм.

 

 

 

   

 

Использование

 

 

      T N     T N  

   

 

   

   

   

 

     

       

   

Команда.

 

 

   

         

       

После того, как все

Это

экран.

 

 

 

         

 

     

           

Это

 

   

 

     

 

 

         

 

     

обратный путь.

Краткая информация о Laser Basic

Играйте в Laser Basic онлайн. Это утилита для разработчиков на BASIC, которую создали Oasis Software и Kevin Hambleton, была выпущена командой Ocean Software Ltd в 1986 году в Великобритании.

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

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

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

  

Справка[X]

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

  • x1
  • x2
  • x3

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

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

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

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

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

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