uCoz тулбар   [ Удобная работа с uCoz сайтами ]
Перемещение по матрице (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

Наш опрос

Ваш менеджер закачек - это:
Всего ответов: 42

Статистика

$COUNTERdiv>
Seven Quadrats of Hell

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

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

Перемещение по матрице (Dark Basic)
РУКОВОДСТВО ПО СОЗДАНИЮ 3D-ИГР
II. МАТРИЦА

3. Перемещение по матрице

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

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 Присваиваем координатам вершин матрицы случайные значения
randomize matrix 1,125
 

Rem Основной цикл
Do
set cursor 0,0
print X#
print Y#
print Z#
 Rem  Сохраняем угол объекта
 CameraAngleY# = Camera angle Y()

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

 If Leftkey()=1 then Yrotate Camera Wrapvalue(CameraAngleY#-5)
 If Rightkey()=1 then Yrotate Camera Wrapvalue(CameraAngleY#+5)

 X# = Camera position X()
   Z# = Camera position Z()

 Y# = Get ground height(1,X#,Z#)
 Position Camera X#,Y#+35,Z#

 Rem Обновляем экран
 Sync
Loop

Эта программа демонстрирует, как поместить камеру таким образом, чтобы она следовала рельефу местности на матрице.

set cursor 0,0
print X#
print Y#
print Z#

Мы начнем этот урок с объяснения двух полезных текстовых команд "Set Cursor" и "Print". Первая из них помещает курсор в точку на экране с координатами X и Y (параметры команды), с которой мы собираемся начать вывод текста, а вторая выводит текст на экран. Здесь мы используем переменные X#, Y# и Z#. На экран будут выведены значения каждой из них. Если вы хотите вывести на экран текстовую строку, вы должны заключить ее в кавычки.

   If Upkey()=1
  XTest# = Newxvalue(X#,CameraAngleY#,20)
  ZTest# = Newzvalue(Z#,CameraAngleY#,20)
  If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000
   Move camera 10
  Endif
 Endif

Эта часть кода ограничивает перемещение камеры для того, чтобы предотвратить выход игрока за пределы матрицы. Переменные Xtest# и Ytest# хранят координаты позиции, в которой мы собираемся установить камеру. Имейте в виду, что значение "20" на самом деле является расстоянием вдвое большим, чем то, на которое мы желаем переместить камеру. Такой прием не подпускает игрока к абсолютной границе матрицы. Выражение сравнения "If" проверяет, не вышли ли новые значения координат за границы матрицы. Матрица занимает площадь в координатах от 0 до 10000 в каждом направлении. Мы используем союз "and" для того, чтобы осуществить более одного сравнения в выражении "If". Если игрок не вышел за пределы указанных границ, то камера перемещается в новое место.

  X# = Camera position X()
  Z# = Camera position Z()

 Y# = Get ground height(1,X#,Z#)
 Position Camera X#,Y#+35,Z#

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



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

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

Реклама




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



Каталоги

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

Ещё

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

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

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

Все Партнёры

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

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