Отправляет email-рассылки с помощью сервиса Sendsay

Новости сайта www.dyda.info

  Все выпуски  

DarkBASIC - легко создаем 3D миры и игры!


Информационный Канал Subscribe.Ru


DarkBASIC БЕСПЛАТНО! + примеры и "фенечки"


Номер 11/август 2002
От редактора

  Информация для новых подписчиков! Если вы "не врубаетесь" о чем идет речь в рассылке - посмотрите предыдущие номера рассылки. И вам станет интереснее! :-) Также советую посетить оффициальный русский сайт www.darkbasic.ru и darkbasic.narod.ru

  Замирая в глубоком пардоне, Илья Середа.


Содержание номера:

      1. Новости.

      2. Руководство по созданию 3D-игр.

      3. Это интересно...




Новости

  Вышел русский патч 1.13. Скачать его можно здесь (прямая ссылка). Документация по русски. Срок работы патча 30 дней. По сути, патч 1.13 является демонстрационной версией патча 1.10 входящий в комплект DarkMATTER-а. Кстати, DarkMATTER вы можете прямо сейчас купить здесь за 130 рублей! На будущее у меня запланирована большая обзорная статья по русскому DarkMATTER, так что, оставайтесь с нами! :-)

  Обновился раздел "Ссылки" на официальном русском сайте www.darkbasic.ru - появилась первая ссылка на русский ресурс. Надеюсь в будущем, данный раздел будет пополняться! :-)

  На американском сайте по DarkBASIC Professional в разделе Download (Скачать) доступны демки сделаные в профессиональной версии. Рекомендую ознакомиться с ними! Впечатляет.


  На сайте darkbasic.narod.ru вы можете бесплатно :-) взять информационные каналы по основным сайтам DarkBASIC-а: оффициальным сайтам на английском и русском языках, а также по русскому официальному форуму.




Руководство по созданию 3D-игр.

  В прошлом номере рассылки мы научились делать матрицу (Землю), "покрывать" ее текстурой травы и перемещаться по ней. Сегодня мы сделаем вид от третьего лица (вид "из глаз" главного персонажа нашей игры) и создадим туман. Поехали! :-)
  Для более детальной и полной информации - рекомендую обратиться к первоисточникам. А это компания "Медиахаус" и "Руководство пользователя", которое вы получаете в
коробке с лицензионным DarkBASIC-ом.

II. МАТРИЦА
4. Вид от третьего лица и перемещение на матрице

Цель урока: научиться перемещать объект на матрице, используя вид от третьего лица.

Sync On
Sync Rate 30

Rem Создаем матрицу
Make matrix 1,10000,10000,20,20

Rem Текстурируем матрицу
Load image "grass09.bmp",1
Prepare matrix texture 1,1,1,1
Fill matrix 1,0,1

Rem Создаем объект
Load image "barry.bmp",2
Make object sphere 10,25
Texture object 10,2
position object 10,100,0,100

rem Устанавливаем случайные значения для вершин матрицы
randomize matrix 1,125

Rem Основной цикл
Do
set cursor 0,0
print screen fps()

 Rem  Сохраняем угол объекта
 AngleY# = object angle Y(10)

 Rem  Управление перемещением камеры
 If Upkey()=1
  XTest# = Newxvalue(X#,AngleY#,20)
  ZTest# = Newzvalue(Z#,AngleY#,20)
  If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000
   Move object 10,10
  Endif
 Endif

 If Leftkey()=1 then Yrotate object 10,Wrapvalue(AngleY#-5)
 If Rightkey()=1 then Yrotate object 10,Wrapvalue(AngleY#+5)

 X# = Object position x(10)
 Z# = Object position z(10)
 Y# = Get Ground Height(1,X#,Z#)

 Position object 10,X#,Y#+12.5,Z#

 CameraZ# = Newzvalue(Z#,AngleY#-180,100)
 CameraX# = Newxvalue(X#,AngleY#-180,100)
 CameraY# = Get Ground Height(1,CameraX#,CameraZ#)
 Position camera CameraX#,CameraY#+50,CameraZ#

 Point camera X#,Y#+25,Z#
 Rem Обновляем экран
 Sync
Loop
 

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

 print screen fps()

"Screen Fps()" является полезной командой, с помощью которой можно узнать, с какой скоростью происходит обновление экрана. Попробуйте выставить значение синхронизации 0 и запустите программу. Вы увидите число на экране, показывающее, сколько раз в секунду происходит обновление экрана. Если частота обновления на вашей видеокарте привязана к частоте обновления монитора, вы не сможете узнать максимальную скорость обновления, которую способна выдавать ваша видеокарта. Некоторые видеокарты позволяют отключать синхронизацию ("VSync"), при этом экран обновляется с максимально возможной скоростью.

 X# = Object position x(10)
 Z# = Object position z(10)
 Y# = Get Ground Height(1,X#,Z#)

 Position object 10,X#,Y#+12.5,Z#

 CameraZ# = Newzvalue(Z#,AngleY#-180,100)
 CameraX# = Newxvalue(X#,AngleY#-180,100)
 CameraY# = Get Ground Height(1,CameraX#,CameraZ#)
 Position camera CameraX#,CameraY#+50,CameraZ#
 Point camera X#,Y#+25,Z#

Как и в предыдущем уроке, для нахождения высоты матрицы в определенном месте мы используем команду "Get Ground Height". Здесь мы используем эту команду дважды: один раз для того, чтобы определить высоту в месте, где располагается сфера, и второй раз для того, чтобы определить высоту в том месте, где располагается камера. Вы заметите, что оставшаяся часть кода такая же, как и в предыдущем уроке. Единственное, что мы здесь изменили - это добавили значение Y#.

Попробуйте использовать выражение "Rem", чтобы закомментировать следующую строку кода:

CameraY# = Get Ground Height(1,CameraX#,CameraZ#)

А в строке:

Position camera CameraX#,CameraY#+50,CameraZ#

замените переменную CameraY# на Y# и посмотрите, как это отражается на поведении камеры.

5.Туман и задник

Цель урока: объяснить применение основных команд для создания тумана и задника.

Команды тумана в основном применяются для создания тумана в 3D-сцене. Немного изменив параметры команды, можно создавать такие эффекты, как дым, подводное окружение, сумерки и т.д. Другое очень важное применение команды тумана состоит в том, чтобы использовать ее для создания эффекта "скрывающейся геометрии". В насыщенной 3D-среде с большим количеством полигонов можно использовать туман, чтобы скрыть геометрию сцены за пределами максимального расстояния видимости камеры. Этот метод может значительно увеличить скорость выполнения программ.

Sync On
Sync Rate 30

Backdrop on
Set camera range 1,5000

Fog on
Fog distance 4000
Fog color RGB(128,128,128)
Color Backdrop RGB(128,128,128)

Rem Создаем матрицу
Make matrix 1,10000,10000,20,20

Rem Текстурируем матрицу
Load image "grass09.bmp",1
Prepare matrix texture 1,1,1,1
Fill matrix 1,0,1

Rem Создаем простейший объект
Load image "barry.bmp",2
Make object sphere 10,25
Texture object 10,2
position object 10,100,0,100

rem Присваиваем случайные значения координатам вершин матрицы
randomize matrix 1,125

Rem Основной цикл
Do

 Rem  Сохраняем угол объекта
 AngleY# = object angle Y(10)

 Rem  Управление перемещением камеры
 If Upkey()=1
  XTest# = Newxvalue(X#,AngleY#,20)
  ZTest# = Newzvalue(Z#,AngleY#,20)
  If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000
   Move object 10,10
  Endif
 Endif

 If Leftkey()=1 then Yrotate object 10,Wrapvalue(AngleY#-5)
 If Rightkey()=1 then Yrotate object 10,Wrapvalue(AngleY#+5)

 X# = Object position x(10)
 Z# = Object position z(10)
 Y# = Get Ground Height(1,X#,Z#)

 Position object 10,X#,Y#+12.5,Z#

 CameraZ# = Newzvalue(Z#,AngleY#-180,100)
 CameraX# = Newxvalue(X#,AngleY#-180,100)

 Position camera CameraX#,Y#+50,CameraZ#

 Point camera X#,Y#+25,Z#
 Rem Обновляем экран
 Sync
Loop

Начнем объяснение с нескольких установочных команд.

 Backdrop on

Команда "Backdrop on" включает задник. Если он выключен, вы увидите эффект зеркального помещения, выражающийся в том, что можно перемещаться за пределами матрицы, но объект-игрок не сможет подбирать или удалять находившиеся там прежде предметы. Задник необходимо использовать в том случае, если вы знаете, что игроку будет виден задний план.

  Set camera range 1,5000

Команда "Set Camera Range" устанавливает дальность видимого пространства для камеры. Первый параметр определяет, на каком расстоянии от камеры DarkBASIC должен начать рендеринг 3D-сцены. Второй параметр определяет расстояние от камеры, на котором прекращается рендеринг сцены. При выборе значения последнего параметра необходимо принять во внимание то, насколько далеко будет "видеть" игрок, и какое число полигонов будет одновременно отображаться. Попробуйте изменить значение первого параметра на 1000, а второго - на 100000 или 1000 и посмотреть, как это повлияет на рендеринг сцены.

   Fog on

Команда "Fog On" указывает DarkBASIC, что на определенном расстоянии в сцене будет использоваться туман.

   Fog distance 4000

Команда "Fog Distance" устанавливает расстояние, с которого должен начинаться наиболее плотный туман. Советуем установить этот параметр равным или чуть меньшим, чем последний параметр в команде "Set Camera Range", в противном случае вам придется наблюдать неприятный эффект обрезанных полигонов.

   Fog color RGB(128,128,128)

Команда "Fog Color" устанавливает цвет тумана. Параметр после команды - цвет тумана. Здесь для установки цвета мы используем команду "RGB".

   Color Backdrop RGB(128,128,128)

Команда "Color Backdrop" устанавливает цвет задника. Параметр после команды - цвет задника. Так же, как и в предыдущей команде, для установки цвета задника мы используем команду "RGB". Чтобы туман выглядел более реалистичным, советуем окрасить задник в тот же цвет, что и туман. В этом случае туман сольется с задником. Для создания других эффектов можно установить различные значения этих цветов. Попробуйте задать расстояние для тумана равным 500, установить значение цвета тумана равным "0,0,0", а цвета задника равным "0,0,32". Это создаст эффект вырисовывающегося ландшафта на фоне почти черного неба.

  В конце концов у вас должно получиться следующее.




Это интересно...

  Продолжаю знакомить вас с лучшими ОТЕЧЕСТВЕННЫМИ разработками. На очереди программа, название которой, говорит само за себя - "Адресная книга"...

    Простая и интуитивно понятная программа для хранения контактной информации (адресов, телефонов, заметок и пр.). Позволяет быстро находить нужную информацию. Умеет набирать телефонные номера, запускать браузер и почтовую программу. Содержит встроенный планировщик/напоминальник. Умеет экспортировать и импортировать данные в наиболее распространенные форматы. Содержит средства резервного копирования, восстановления и синхронизации наборов данных. Ведет историю исходящих звонков, создания почтовых сообщений, переходов по ссылкам. В общем, достаточно простой, но удобный органайзер.

    Кратко и ясно. Больше добавить нечего. Ну разве скажу, что подобных программ я испробовал множество. Но лучше этой не нашел! В ней я веду и телефонную книжку (по совместительству она же и адресная + всякие web-странички и e-mail-ы), и пользуюсь напоминателем (дни рождения, праздники и все такое прочее), и запуском программ по расписанию (проверка диска, дефрагментация, резервное копирование и прочее). Вот такая она - маленькая, чуть больше 400 килобайт, да удаленькая! Кроме всего - она абсолютно бесплатная!


Выпуск закончил 20 августа 2002 года в 11:02 мск


(C) 2002 Илья Середа
http://darkbasic.narod.ru - это и так понятно :-)
    http://virland.narod.ru - "Домашняя киностудия"
     http://sereda.narod.ru - "ВАЗ 1111 ОКА"

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное