Вітаю Вас ГостьП'ятниця, 17.05.2024, 12:35

CreateGames
Створення комп'ютерних ігор


Статті

Главная » Статьи » Программирование современных игр на Blitz3D и Dark » Создание игр с помощью DarkBasic

HUD (Dark Basic)
РУКОВОДСТВО ПО СОЗДАНИЮ 3D-ИГР
III. ИГРА

12. HUD
Цель урока: создание "вида сверху" и простого экрана радара.

В этом уроке мы покажем, как создать "вид сверху", также известный как HUD (heads up display). Чтобы упростить задачу поиска монстра, мы создадим экран радара на нашем виде сверху и прозрачный задний план для отображения счета игры.

rem Создаем HUD
Make object Plain 200,1,1
position object 200,-2.7,1.9,4
Lock object on 200
ghost object on 200

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

Make object Plain 201,1,1
position object 201,2.7,1.9,4
Lock object on 201
ghost object on 201

Эта часть кода также вводится до основного цикла. Плоский объект будет использоваться в качестве заднего плана для экрана отображения счета игры.

rem Загружаем и создаем растровые изображения hud
Load Bitmap "Radar.bmp",2
Create Bitmap 1,50,50

В этой части кода мы загружаем изображение радара и сохраняем его как изображение под номером 2. Растровое изображение отличается от текстуры. На нем можно рисовать и оно может быть изменено в самой программе. Особенно важным является растровое изображение под номером 0. Это изображение становится вашим экраном, на котором вы видите 3D-сцену. При вызове команды "Sync" именно это изображение перерисовывается и отображается. Мы загружаем изображение "Radar.bmp" в изображение под номером 2 и создаем новое пустое изображение, присваивая ему номер 1. Имейте в виду, что в DarkBASIC можно загрузить или создать не более 32 изображений. Команда "Load Bitmap" аналогична команде "Load Image". Первый параметр - имя загружаемого растрового изображения. Второй параметр - присвоенный ему номер - уникальный идентификатор изображения. Команда "Create Bitmap" создает в памяти пустое изображение указанного размера. Первый параметр - номер, присваиваемый изображению. Второй и третий параметры - это ширина и высота создаваемого растрового изображения. Параметры ширины и высоты представляют собой размеры изображения в пикселах.

 Rem Создаем радар
 Copy Bitmap 2,1
 set current bitmap 1
 ink rgb(0,0,255),rgb(0,0,0)
 PRX#=X#/200
 PRZ#=50-(Z#/200)
 Circle PRX#,PRZ#,1
 ink rgb(255,0,0),rgb(0,0,0)
 MRX#=mX#/200
 MRZ#=50-(mZ#/200)
 Circle MRX#,MRZ#,1
 Get image 200,0,0,50,50
 set current bitmap 0
 texture object 200,200
 ink rgb(255,128,128),rgb(0,0,0)
 

Этот код помещается ближе к концу основного цикла. Так создается, прорисовывается и накладывается на плоскость экран радара.

 Copy Bitmap 2,1

Команда "Copy Bitmap" копирует одно растровое изображение из памяти в другое, также находящееся в памяти. Первый параметр этой команды - номер копируемого изображения. Второй параметр - номер изображения, в которое вы хотите скопировать первое. Здесь мы копируем изображение, загруженное для заднего плана экрана радара в изображение, которое мы будем использовать в качестве экрана радара.

 set current bitmap 1

С помощью команды "Set Current Bitmap", вы указываете программе, что определенное изображение будет изображением для рисования по умолчанию. Чтобы вновь увидеть 3D-сцену, вы должны установить номер текущего изображения снова равным 0. Текущим мы делаем изображение радара. Оно содержит скопированное изображение, которое мы загрузили для заднего плана радара.

 ink rgb(0,0,255),rgb(0,0,0)

Команда "Ink" применяется для установки значения цвета переднего и заднего плана для любой команды рисования или текста. Первый параметр команды "Ink" - это цвет, используемый для рисования на переднем плане. Чтобы указать голубой цвет, мы применяем команду "RGB". Второй параметр - цвет заднего плана, или фона. При помощи команды "RGB" мы устанавливаем для него черный цвет.

 PRX#=X#/200
 PRZ#=50-(Z#/200)
 Circle PRX#,PRZ#,1

С помощью этих трех строк кода рисуется голубая окружность на изображении радара, представляющая игрока. Переменные "PRX#" и "PRZ#" используются для хранения координат игрока. Так как наша матрица - квадрат со стороной 100000 единиц, а растровое изображение радара - квадрат со стороной 50 пикселов, то мы делим 100000 на 50 и получаем 200. 200 - это переменная масштабирования. Мы делим значение координаты X игрока на 200, чтобы получить примерное значение координаты X на экране радара, и сохраняем эту величину в переменной "PRX#". Те же вычисления повторяем и для координаты по оси Z. Так как отсчет координат растрового изображения начинается в левом верхнем углу, а координат матрицы - в левом нижнем, мы берем масштабированное значение Z и вычитаем его из 50 для того, чтобы получить обращенное значение для экрана радара. Если этого не сделать, то экран радара будет отображать обращенные координаты.

 Circle PRX#,PRZ#,1

Мы используем координаты X и Z игрока на радаре, чтобы с помощью команды "Circle" нарисовать окружность по этим координатам на изображении радара. Первые два параметра этой команды - это координаты X и Y центра окружности на изображении. Третий параметр - радиус окружности. Мы установили этот параметр равным 1, чтобы нарисовать очень маленький кружок.

 ink rgb(255,0,0),rgb(0,0,0)
 MRX#=mX#/200
 MRZ#=50-(mZ#/200)
 Circle MRX#,MRZ#,1

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

 Get image 200,0,0,50,50

Команда "Get Image" копирует изображение или его часть для использования в качестве текстуры. Первый параметр этой команды - это номер создаваемого изображения. Второй и третий параметры - координаты X и Y левого верхнего угла прямоугольной области, которую мы желаем скопировать. Четвертый и пятый параметры - координаты правого нижнего угла этой прямоугольной области. Так как наше изображение имеет размеры 50х50 пикселов, мы копируем изображение целиком. Наше основное изображение - это по-прежнему изображение под номером 1, откуда и копируется изображение для текстуры.

 set current bitmap 0
 texture object 200,200
 ink rgb(255,128,128),rgb(0,0,0)

Последняя часть кода радара снова устанавливает в качестве текущего изображение под номером 0, в котором и происходит прорисовка нашей 3D-сцены. Затем мы накладываем на плоский объект текстуру из только что созданного изображения. Оно содержит картинку радара с нарисованными на ней двумя кружками, соответствующими игроку и монстру. Меняем цвет из красного на матовый красный. Этот цвет будет использоваться до обновления изображения на экране радара. Отметим, что значения счета в игре выводятся тем же цветом.

Категория: Создание игр с помощью DarkBasic | Добавил: Hacker_xaker (13.05.2009) | Автор: Эдик E W
Просмотров: 5875 | Комментарии: 2 | Рейтинг: 3.0/1
Всего комментариев: 1
1 Baifomala  
0
After getting more than 10000 visitors/day to my website I thought your creategames.do.am website also need unstoppable flow of traffic...

Use this BRAND NEW software and get all the traffic for your website you will ever need ...

= = > > http://massive-traffic-to-your-site.com

In testing phase it generated 867,981 visitors and $540,340.

Then another $86,299.13 in 90 days to be exact. That's $958.88 a
day!!

And all it took was 10 minutes to set up and run.

But how does it work??

You just configure the system, click the mouse button a few
times, activate the software, copy and paste a few links and
you're done!!

Click the link BELOW as you're about to witness a software that
could be a MAJOR turning point to your success.

= = > > http://massive-traffic-to-your-site.com

Имя *:
Email *:
Код *:
Категорія розділу
Создание игр с помощью Blitz3D [8]
В этой категории хранятся лекции по созданию игр с помощью Blitz3D
Создание игр с помощью DarkBasic [6]

Бесплатный Хостинг

EG Blocking 1.0 EG Blocking
Форма входу
Пошук
Наше опитування
Яку мову ви бажаєте вчити?
Всього відповідей: 110
Статистика

Онлайн всього: 1
Гостей: 1
Користувачів: 0

Створення комп'ютерних ігор доступно кожному. Всі щоденні новини ІТ технологій лише у нас.
Створи свою комп'ютерну ігру сам, разом із сайтом "Створення ігор" - "CreateGames.do.am". Щоденні новини ІТ технологій лише у нас і лише для вас.

CreateGames.do.am - Створення комп'ютерних ігор. Новини ІТ © 2009 - 2024 р.