Пятница, 22 Ноября 2024, 18:31

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Уроки по Blitz 3D. Часть 1.
QWER56Дата: Суббота, 08 Мая 2010, 09:40 | Сообщение # 1
старожил
Сейчас нет на сайте
Постить разрешается.
На форуме буду выкладывать не большие уроки по Blitz3D. Уроки пишутся по моему, не большому опыту, поэтому надеюсь спроса большого с них не будет. Всё, что знаю напишу.Надеюсь вы уже установили движок и знаете куда писать код и как компилировать. Статья

Начало.
Начнём с создания 3D окна в мир игры:

Теперь попытаюсь объяснить, что мы написали.

Graphics3D 640,480,16,1 это строка открывает окно в 3D мир
Устанавливает 3D Графический способ. Эта команда должна быть выполнена перед
любой другой 3D командой, иначе программы возвратят ошибку.
Синтакс: Graphics3D ширина, высота, глубина цвета, режим
Ширина, высота – размер создаваемого экрана (в пикселях)
Глубина – глубина цвета – 16, 24 или 32 бита на пиксель.
Цветовой способ с 16 частицами показывает наименьшее количество количества
цветов, 65536. И с 32 частицами цветовые способы с 24 частицами показывают более
чем 16 миллионов Цвета и в результате предлагают лучшую картину качества, хотя
могут кончаться более медленными программами, чем с 16 частицами.
Режимы:
0 – оконный во время разработки (если возможно), полноэкранный в .exe формате;
1 – всегда полноэкранный
2 – всегда оконный
3 – всегда оконный, с возможностью изменения размеров окна.
SetBuffer BackBuffer() – Установить поток, буфер.
Repeat
Until KeyHit(1) – Между этими двумя командами будет происходить основной цикл игры. При нажатии кнопки ESC начинает читать следующую команду.
End – Завешает программу

Продолжим.

cam=CreateCamera() – это самая основная команда в 3D программах. Это камера, наши глаза.
Lit=CreateLight() – эта команда создает источник света. Можно изменять тип света, в
скобки можно вписать следующие значения:
1:направленный
2:точка
3: пятно

Свет – это объект, а это значит, что им тоже можно управлять, как и всеми
объектами.

cub=CreateCube()–3D объект куб. Кроме куда можно ещё создать объекты:
CreateSphere ( [segments][,parent] )
CreateCylinder ( [segments][,parent][,solid] )
CreateCone ( [segments][,parent][,solid] )

PositionEntity cub,0,0,5– эта команда помещает объект в позицию.

Объекты помещены, используя X, Y, Z системы координат. X, Y и Z каждый имеет
собственную ось. Определяя ценность для каждой оси, Вы можете помещать объект где-нибудь в 3D пространстве. 0,0,0 – центр. Положительный Z находиться
перед камерой, а отрицательный позади камеры. Изменение X это наклон в бок.
Y будет изменять положение лево право.

ScaleEntity cub,1,0.3,1 – Изменяет размер объекта
RotateEntity cub,0,40,0 – Вращение объекта.
TurnEntity cub,.6,.2,.3 - TurnEntity entity,pitch#,yaw#,roll#,[,global]
Tpitch# - наклон вперед / назад.
Yaw#- переворот налево / вправо.
Roll# - наклон налево / вправо.
UpdateWorld – UpdateWorld [anim_speed#]
anim_speed# (необязательный) – скорость мультипликации. Установлен по
умолчанию в 1.
RenderWorld [tween#]Показывает все объекты в мире.

Ура!Вот , что получилось:

Управление объектами.
EntityColor cub,0,255,0– Устанавливает цвет объекта.
Зеленые, красные и синие (R,G,B) в диапазоне 0-255. Default цвет – 255,255,255.

If KeyDown(208) MoveEntity cub,0,0,-.1- При нажатие кнопки в верх объект начинает двигатся вперёд, сканкод 200. При нажатие кнопки вниз объект начинает двигаться назад, сканкод 208. Чтобы узнать сканкод каждой кнопки в справке есть раздел Scancodes, там можно узнать номер каждой кнопки. Команда MoveEntity перемещает объект в пространстве.

If KeyDown(203) TurnEntity cub,0,1,0- поворот куба.

Вот теперь у нас получилась маленькая игра.

Столкновение с объектами.

Вы уже заметили, что кубик проходит сквозь стены. Исправим, сделаем стены твёрдыми.

Const TypeCub=1,TypeStolb=2 – И так сначала мы создали две константы – TypeCub, равная единице и TypeStolb Равная двойке .
EntityType – присваивает данному объекту данный тип. В нашем случае, тип – это просто цифры. Здесь мы вместо цифр использовали константы – чтобы не запутаться, да и чтобы легко можно было прочитать – к какому типу этот объект относится, и с чем соприкасается.
Collision -Первый тип для столкновений.
Второй тип должен столкнуть.

Типы столкновений.
1: столкновения « сфера к сфере «
2: столкновения « сфера к многоугольнику»
3: столкновения « сфера к box»

Действия объекта при столкновении.
1: Стоп, остановка.
2: полное столкновение со скольжением

EntityRadius cub,2 – Радиус столкновения объекта.

Ну вот теперь в нашей маленькой игре кубик врезается в стены:


В дальнейшем буду добавлять ещё уроки. Если я где то ошибся, то пожалуйста сообщите.


ConsMark - поисковик по интернет магазинам.

Сообщение отредактировал QWER56 - Суббота, 08 Мая 2010, 19:35
nikolas-zДата: Вторник, 01 Июня 2010, 00:16 | Сообщение # 2
был не раз
Сейчас нет на сайте
[Цензура]? Зачем писать то, что в справке и так описано? Есть же справка на русском! Или вы думаете, что Blitz3D - архиредкая программа, по которой не хватает документации? http://www.boolean.name Там все расскажут. Зайди в Яндекс- найдешь с полсотни сайтов с такими уроками. Если не в моготу: www.blitz-school.info

Под лежачий камень... мы всегда успеем.
HagraelДата: Четверг, 09 Июня 2011, 20:44 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Хороший урок, но хотелось бы больше объяснений, чтобы в справке не пришлось копаться вообще, и чтобы код был покачественнее.

vknw123Дата: Четверг, 09 Июня 2011, 21:44 | Сообщение # 4
старожил
Сейчас нет на сайте
Скажите, а вот экзешник этой маленькой игры сколько будет весить, и где он?, очень хочется посмотреть как этот простой код будет работать?
JerichoДата: Четверг, 09 Июня 2011, 22:30 | Сообщение # 5
Ubuntu 11.10 user
Сейчас нет на сайте
Может мне закинуть сюда норм уроки от blitz-school а то ето копирувание справки уже достало

Уютненькая страничка Ерихона

xxx: Так вы представляете, у него там фрагмент кода в 15 строк повторяется 37 раз. Если вынести в функцию можно сэкономить полтыщи строк!
yyy: это припев.
© Антон Антоненко
vovchikДата: Пятница, 10 Июня 2011, 21:56 | Сообщение # 6
частый гость
Сейчас нет на сайте
QWER56 похоже трудится на повышение статуса в форуме! Давай ещё больше ненужных постов! Загаживай форум хламом!
Уже не писал бы "На форуме буду выкладывать не большие уроки по Blitz3D. Уроки пишутся по моему, не большому опыту, поэтому надеюсь спроса большого с них не будет."
Прошел год и уроки больше не написались biggrin biggrin biggrin (Правка ->Выделить все; Правка ->Вставить и можно стопицот уроков нахалтурить biggrin biggrin biggrin !).


Запоминание прочитанного - рождает знание.
Размышление над прочитанным и прожитым - рождает мудрость. А. Турчинов
К сожалению, умных людей куда больше, чем благородных. Борис Парамонов
vknw123Дата: Пятница, 10 Июня 2011, 22:12 | Сообщение # 7
старожил
Сейчас нет на сайте
Так я и знал, экзешник непоказали, а значит или экзешник большой или всё это одни понты, т.е. ничего не работает.
vovchikДата: Пятница, 10 Июня 2011, 22:17 | Сообщение # 8
частый гость
Сейчас нет на сайте
У него просто Блитц Демо версии наверное, а он экзешников не делает biggrin biggrin biggrin !

Запоминание прочитанного - рождает знание.
Размышление над прочитанным и прожитым - рождает мудрость. А. Турчинов
К сожалению, умных людей куда больше, чем благородных. Борис Парамонов
Sttt912Дата: Среда, 05 Июня 2013, 20:44 | Сообщение # 9
был не раз
Сейчас нет на сайте
Здраствуйте такой вопрос насчет столкновений. Смоделировал простенький левел (асфальт и домик) и такой вот код :


Но есть такой момент что если направит мишкой взгляд вниз то камера провалитса под модель уровня. Скажите как ето исправить ?


Сообщение отредактировал Sttt912 - Среда, 05 Июня 2013, 20:45
Gaydar1996Дата: Среда, 05 Июня 2013, 21:03 | Сообщение # 10
участник
Сейчас нет на сайте
Sttt912, если я правильно понял из твоего сумбурного (не в обиду) объяснения, то тебе надо создать столкновение с плоскостью

Sttt912Дата: Среда, 05 Июня 2013, 21:13 | Сообщение # 11
был не раз
Сейчас нет на сайте
Gaydar1996, да надо создать столкновения.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг