Культовая онлайн игра Рунета!   [ Проверь свои бойцовские качества! Стань участником Легендарного сражения! ]
Вид от третьего лица и перемещение на матрице (Dark Basic) - Dark Basic - Программинг - Каталог статей - Развлекательный сайт для программистов-игроделов



Категории каталога

Программинг [35]
Программинг, уроки, формулы, туториалы
Dark Basic [30]
Помощь начинающим в Dark Basic (Статьи,учебники,книги)
Blitz 3d [7]
Статьи и уроки по Blitz 3d
C/C++ [7]
Статьи по C/C++
Delphi [12]
книги, уроки, статьи, программирование в Delphi
Game Maker [12]
Статьи, помощь для программистов игроделов на Game Maker
Ассемблер (Assembler) [5]
Стати по Ассемблеру для начинающих и продвинутых программистов
ВЕБ-ПРОГРАММИРОВАНИЕ [5]
Уроки и статьи по ВЕБ-программированию

Форма входа

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

E-mail:
Пароль:

Поиск

Друзья сайта



    Случайное фото

    Счётчики



    Rambler's Top100 Seo анализ сайта оптимизация

    Статистика

    Онлайн всего: 3
    Гостей: 3
    Пользователей: 0

Поддержите наш проект

WebMoney:
R309699065243
U292079291240
Z373355457648

Наш опрос

Представьте что Вы разминируете взрывное устройство, у вас 5 секунд, какой провод будете резать?
Всего ответов: 43

Статистика

$COUNTERdiv>
Seven Quadrats of Hell

Каталог статей

Главная » Статьи » Программинг » Dark Basic

Вид от третьего лица и перемещение на матрице (Dark Basic)
РУКОВОДСТВО ПО СОЗДАНИЮ 3D-ИГР
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# и посмотрите, как это отражается на поведении камеры. 



Ресурсы к урокам на Dark Basic

Категория: Dark Basic | Добавил: quadrathell (29.10.2008)
Просмотров: 577 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email:
Код *:

Реклама




Новости от Radeant.com



Каталоги

Весь интернет в одном каталоге! Украинский портАл

Ещё

Весь интернет в одном каталоге!

Скрипт каталога ссылок

Партнёры Сайта

Все Партнёры

программирование:
LoBoSoFt Team - небольшая компания разрабатывающая разные игры и программки
игры софт mobile музыка:
Новости игр, новости hardware
разное - обо всём:
Сайт Эврика Моё смешное Огненный форум Phoenomix !!! Бесплатный софт - качать бесплатно Уроки фотошоп для начинающих Заработай с нами!

Стать Партнёром