Пятница, 22 сентября 2017, 07:29

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [306]
Статьи об общих понятиях связанных с созданием игр.
Программирование [68]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [123]
Статьи о программах для создания игр, уроки и описания.
Софт [27]
Различные программы, в том числе в помощь игроделам.
2D-графика [11]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [10]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [4]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [69]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [55]
Статьи, которые не вошли в определённые разделы.
Наш опрос
На какую платформу/систему создаёте игры?
Всего ответов: 10164
Главная » Статьи » Создание игр

Основы игрового программирования на Dark Basic Pro
Здравствуйте уважаемые участники и гости сайта Gcup.ru!
Если вы читаете эти строки, то возможно перед вами - остро стоит необходимость определиться с выбором языка программирования, или движка для реализации ваших идей!
Сегодня я хочу рассказать вам, о незаслуженно забытом языке Dark Basic. Не нужно сразу презрительно морщиться при слове Бэйсик! Это слово, показывает лишь то, что язык достаточно прост в изучении, и если вы изучали интерпретатор Бэйсика в школе, ну или самостоятельно, то вам не составит особого труда освоить ориентированный на 3D графику Dark Basic. Судите сами - язык поддерживает DirectX9, шейдеры, загрузку сложных моделей в форматах 3ds, Х, загрузку и проигрывание анимации и 3D звука, матричные и векторные преобразования, работу со спрайтами и многое другое!... Язык подходит для создания игр любого жанра. Скачать рабочую версию можете по ссылке с нашего сайта - на официальном сайте разработчиков:Dark Basic Pro
Вот примеры игр, от простеньких платформеров, до достаточно серьёзных проектов.


Ну, если я вас убедил - то прошу за мной, в увлекательный мир создания игр!
При дальнейшем изложении материала, предполагается что вы самостоятельно установили Dark Basic Pro. Обычно с этим не возникает никаких проблем, как и с любым софтом у которого есть инсталлятор. После запуска DBPro перед вами откроется рабочее окно приложения.

Давайте создадим новый проект, выбрав для этого File->New Project, ну или просто нажав на мини-иконку в виде чистого листа бумаги! В открывшемся меню напишем имя проекта и нажмём ОК. Я например выбрал для проекта название Star Gate. При этом, в рабочем окне с пронумерованными строками, добавится несколько записей... Ничего страшного, просто наш проект сохранился в директории, куда был установлен Dark Basic, в папку projects и система ожидает ввода нашей первой программы. Конечно, обычно самой первой программой делают вывод надписи "Привет Мир!", но мы пропустим этот этап и посвятим своё время созданию чего-то более существенного.
Попробуем создать вращающуюся планету, со спутником, который летает вокруг неё и всё это на фоне звёздного неба... Ну что-то вроде кусочка космических рейнджеров! Для начала - разобьём задачу на части... Нам нужно: сделать космический фон, создать планету, создать планету-спутник. Вот эти задачи и будем поэтапно решать!
Проведём некоторые подготовительные операции. Откроем директорию - куда установили Dark Basic, найдём в папке Projects наш проект - Star Gate. Создадим в папке с нашим проектом - ещё одну папку Image. Туда положим следующие нужные нам текстуры и изображения:


Просто скопируйте рисунки в вашу папку Image И назовите их соответственно, по порядку: dcsm-1024.jpg, mars.jpg, MOON.JPG. Для тех кому не понятно - я запаковал папку Image с нужными картинками в архив - просто распакуйте её в свой проект! Image.rar
Ну вот, теперь мы готовы к дальнейшим действиям! Начнём наконец-то писать программу.
Сначала напишем некоторые необходимые операторы, так сказать - прорубим окно в виртуальный 3D мир. Ставим курсор в первую свободную строчку и пишем
set display mode 1024,768,32 - установим разрешение экрана и глубину цвета
sync on : sync rate 100 : backdrop on
Нужно сказать, что в принципе, команды в DB пишутся по одной в каждой строке, но короткие команды можно записывать по несколько штук сразу, разделяя их двоеточием.
sync on - эта команда разрешает проводить обновление экрана вашей программе.
sync rate 100 - задаём частоту обновления экрана, если стоит ноль, то экран будет обновляться с максимально возможной частотой.
backdrop on - включаем задний фон, или задник как его ещё называют.
Теперь загрузим изображение звёздного неба и затекстурим им задник.
Пишем следующие строки:
load image "image\dcsm-1024.jpg",1
texture backdrop 1

load image "путь\имя картинки" присваиваемый номер - с помощью этой команды, загружаем картинку с таким-то именем в память и присваиваем ей собственный номер (от 1 до 65536)
texture backdrop 1 - накладываем загруженную картинку с номером 1 на задник.
Здесь сделаем небольшое отступление. Дело в том, что каждый обьект, каждая картинка, каждый спрайт и т.д. - должны иметь свой уникальный номер, по которому он опознаётся. Этот номер - как имя, которое даётся программистом обьекту при его создании!
Ну вот, мы создали задник и затекстурировали его звёздным небом. Добавим ещё обязательные команды и посмотрим что у нас получилось!
do
sync
loop
Команды между do и loop циклически повторяются, т.е у нас постоянно обновляется экран командой sync
Вот код который должен у вас получиться:

Code
set display mode 1024,768,32
sync on : sync rate 100 : backdrop on
load image "image\dcsm-1024.jpg",1
texture backdrop 1
do
sync
loop

Теперь смело жмём клавишу F5 и если всё нормально - то мы увидим следующую картину:

Займёмся теперь созданием планеты. Планету нам легко заменит сфера!
После texture backdrop 1 и перед do напишем следущее:
make object sphere 2,150 - команда переводится как - создать обьект сфера. Первая цифра - это уникальный номер обьекта, а вторая - это диаметр нашей сферы. Все обьекты создаются в точке с координатами х=0, у=0, z=0 Но дело в том, что и камера через которую мы смотрим на 3D мир - тоже находится в этой точке! Координата х - это горизонталь (- влево, а + вправо). Координата у - это вертикаль (- вниз, а + вверх) Координата z - это -ближе, или +дальше от камеры. Теперь немного отодвинем нашу сферу от экрана... Напишем
position object 2,0,0,800 - что переводится как поставить обьект в точку с координатами X, Y, Z. Где цифра 2 - номер обьекта (наша созданная сфера - планета), Х=0, Y=0, Z=800 (фактически на 800 единиц вдаль от камеры). Вот код который у вас должен получиться:

Code
set display mode 1024,768,32
sync on : sync rate 100 : backdrop on
load image "image\dcsm-1024.jpg",1
texture backdrop 1
make object sphere 2,150
position object 2,0,0,800
do
sync
loop

Снова жмём клавишу F5 - не правда ли, белая сфера как-то не смотрится на фоне звёздного неба! Давайте затекстурируем нашу планету. Для этого перед циклом do снова введём две команды. Сначала загрузим новую картинку в память под уникальным номером, а потом затекстурируем наш обьект - сферу!
load image "image\mars.jpg",2
texture object 2,2 - где первая цифра, номер обьекта который будем текстурировать, а вторая цифра номер картинки для текстурирования
Можете нажать F5 и посмотреть что получилось!
Настала очередь маленькой планеты - спутника. Продолжаем писать уже известные нам команды создания сферы, только меньше радиусом, загрузку в память новой картинки и текстурирование новой планеты.
make object sphere 3,50
position object 3,150,0,0 - немного сдвинем вправо
load image "image\MOON.JPG",3
texture object 3,3
Теперь давайте приклеим маленькую планету к большой.
glue object to limb 3,2,0,1 - что переводится как приклеить обьект к лимбу. Первая цифра - что приклеиваем (обьект номер три - маленькая сфера). Вторая цифра - к чему приклеиваем (обьект номер два - большая сфера). Третья цифра - номер лимба к которому приклеиваем маленькую сферу. А четвёртая цифра - вид склейки, но это пока не важно! Обратите внимание, что маленькая планета приклеилась к большой со своим смещением в координатах относительно начальной точки центра координат. Т. е. как она была немного смещена вправо по оси Х на 150 единиц, так она и приклеилась со смещением по оси Х, значит она будет находиться в точке с координатами 150,0,800. Правее большой планеты - которая находится в координатах 0,0,800. Можете нажать F5 и посмотреть. Давайте теперь заставим большую планету вращаться вокруг вертикальной оси (ось Y). Для этого введём переменную, которая будет обозначать угол поворота планеты относительно начального положения.Запишем несколько команд.
ro=0- ro это переменная, и мы её приравняли к нулю сначала.
Следующие команды пишем уже внутри цикла (после командыDo)
inc ro - увеличить переменную ro на единицу
yrotate object 2,ro - повернуть вокруг оси Y обьект номер 2, на угол ro
То, что мы приклеили маленький спутник к большой планете - позволит нам обойтись без расчёта орбиты спутника! Он будет вращаться как привязанный.
yrotate object 3,ro - ну и спутник тоже повернём вокруг Y
Вот код который у нас должен получиться в конце

Code
set display mode 1024,768,32
sync on : sync rate 100 : backdrop on
load image "image\dcsm-1024.jpg",1
texture backdrop 1
make object sphere 2,150
position object 2,0,0,800
load image "image\mars.jpg",2
texture object 2,2
make object sphere 3,50
position object 3,150,0,0
load image "image\MOON.JPG",3
texture object 3,3
glue object to limb 3,2,0,1
ro=0
do
inc ro
yrotate object 2,ro
yrotate object 3,ro
sync
loop

Ну а вот картинка из программы:

Ну, надеюсь начало положено! Поздравляю всех у кого получилось сделать собственную планету со спутником! Всем удачи!

Категория: Создание игр | Добавил: Serg1971 (05 сентября 2010) | Автор: Serg1971
Просмотров: 12250 | Комментарии: 2 | Рейтинг: 3.8/12 |
Теги: урок, бэйсик, Basic, среда разработки, Dark Basic Pro, язык программирования, DirectX9, Dark Basic, Программирование, DBPro
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Основы игрового программирования на Dark Basic Pro», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 2
+0-
1 Рыжая777   (08 сентября 2012 13:24)
Рыжая777cry А у меня прога не хочет задник текстурить. ошибку выдает "run time error 116 команда устарела at line 9" это как раз на эой строке "texture backdrop 1".

+0-
2 Timujin61   (13 октября 2012 19:10)
Timujin61блин, и у меня так-же

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • BasiEgaXorz
  • DarkPlaces
  • lifeEngine
  • RuneSword
  • Neobook
  • GDevelop
  • CryEngine V
  • Zelda Classic
  • Alternativa3D
  • ezRPG
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    GameDev, Уроки OpenGL, Программирование, Создать Minecraft
    Все права сохранены. GcUp.ru © 2008-2017 Рейтинг