Blitz BASIC

24-09-2023

Blitz3D — коммерческий игровой движок, разработанный Марком Сибли, а также среда разработки с языком Blitz BASIC и скриптовый язык для создания игр. Оригинальная разработка компилятора Blitz BASIC велась для ПК Amiga, но на сегодняшний день он поддерживает уже несколько платформ, в том числе Microsoft Windows, Mac OS X и Linux. В версии для Microsoft Windows поддерживается DirectX 7.

Язык содержит 588 конструкций, позволяющих создать двух- и трёхмерное игровое пространство. С помощью него можно создавать небольшие игры, используя большое количество библиотек, написанных членами сообществ по программированию на Blitz3D.

Содержание

BlitzMax

BlitzMax — язык программирования, разработанный Марком Сибли. BlitzMax использует расширеную версию языка basic. Благодаря модулям функционал BlitzMax можно расширять до бесконечности. Из графических API может использовать и DirectX и OpenGL. Несколько встроеных звуковых API (DirectSound, FreeAudio, OpenAL) Имеет удобный модуль GNet для быстрого создания сетевых приложений.

Основные возможности

  • 2 режима интерпретирования кода Strict и SuperStrict
  • Многопроходный компилятор
  • Транслятор в язык Flat Assembler
  • Поддержка платформ : Win32, Linux, MacOS
  • Указатели на функции
  • Наследование и полиморфизм
  • Полностью динамические массивы
  • Внешняя поддержка языков для взаимодействия с C# , C++ или Assembler
  • Совместим с MinGW

Типы данных

Описание Название Мин. значение Макс. значение
8 битное числовое Byte 0 255
16 битное числовое Short 0 65535
32 битное числовое Int −2^31 +2^31-1
64 битное числовое Long −2^63 +2^63-1
32 битное вещественное Float (+/-)10^-38 (+/-)10^38
64 битное вещественное Double (+/-)10^-308 (+/-)10^308
16 бит юникод полнотекстовое String - -
Объект (Тип) obj:TObject - -
Массив array{:type}[..] - -
Функция Function:{return type}(Parameters) - -
Указатель Pointer ValueType Ptr - -

Примеры программ

Нello world

Graphics 800,600                 ' - Графический режим 800x600
While Not KeyDown(1)                          ' - Начало главного цикла
 Cls()                           ' - Чистим экран
  Text 10, 20, "Hello, World!" ' - Пишем текст "Hello world" в точке 10,20
 Flip()                          ' - Выводим на экран
Wend ' прекращаем цикл при нажатии на Esc
End                              ' конец программы


Нello world с использованием переменных

 
Graphics 800,600 
Global a$="Hello"
Global b$="World"              
While Not KeyDown(1)                           
 Cls()                          
  Text 0,0,a$+b$
 Flip()                        
Wend
End


Работа с изображениями

 
Graphics 800,600  
Global Image = LoadImage("picture.bmp")
 
While Not KeyDown(1)                          
 Cls()                          
  DrawImage Image,100,100
 Flip()                        
Wend
End


Работа с трехмерной графикой

 
Graphics3D 800,600                     'Устанавливаем графический режим 
Global model = LoadMesh("helloworld.3ds")          'Загружаем трехмерную модель надписи "Hello, World"
PositionEntity model,0,0,0            'Устанавливаем модель в точке 0,0,0
Global camera = CreateCamera()             'Создаем камеру
PositionEntity camera,0,0,-10             'Устанавливаем камеру чуть позади обьекта
 
While Not KeyDown(1)                         'Начало цикла  
 Cls()                          ' Очищаем экран
 RenderWorld()                  ' Производим рендер изображения
 Flip()                        ' Выводим на экран
Wend                           'Конец цикла
End                             'Конец программы

Литература

  • Learn to Program 2D Games in Blitz Basic by John «Krylar» Logsdon, (2003)
  • Game Programming for Teens by Maneesh Sethi, (2003), ISBN 1-59200-068-1
  • Games Programming for the Absolute Beginner with BlitzMax by Sloan Kelly, ISBN 0-9553771-0-2
  • 3D Game Programming for Teens by Eric Grebler, (2006) ISBN 1-59200-900-X
  • 3D Game Programming for Teens, 2nd edition by Maneesh Sethi, (2009) ISBN 1-59863-843-2

См. также

Ссылки

  • Официальный сайт
  • Русскоязычный электронный журнал «Blitz Et Cetera» о программировании на языках семейства Blitz
  • Относящиеся к BlitzMax открытые проекты на Google Code


Blitz BASIC.

© 2011–2023 stamp-i-k.ru, Россия, Барнаул, ул. Анатолия 32, +7 (3852) 15-49-47