Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 12.01.2025, 21:41   #1
scp_regalis4488
AnyKey`щик
 
Регистрация: 12.01.2025
Сообщений: 6
Написано одно полезное сообщение
Сообщение как добавить коллизию мешу с maplet

у меня есть квадратная комната и проблема в том что когда я двигаю камерой она проходит сквозь комнату как можно добавить коллизию мешу ? в интернете нашел только как добавлять коллизию примитивным предметам по типу маленькой бутылки и куба
(Offline)
 
Ответить с цитированием
Старый 16.01.2025, 16:58   #2
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,366
Написано 2,476 полезных сообщений
(для 6,864 пользователей)
Ответ: как добавить коллизию мешу с maplet

Сообщение от scp_regalis4488 Посмотреть сообщение
у меня есть квадратная комната и проблема в том что когда я двигаю камерой она проходит сквозь комнату как можно добавить коллизию мешу ? в интернете нашел только как добавлять коллизию примитивным предметам по типу маленькой бутылки и куба
Сто лет на блице не писал, но как-то вот так это делалось:
Graphics3D(1024768)
SetBuffer(BackBuffer())


Const 
TypePlayer 1TypeWorld 2

Local world 
LoadMesh("world.obj") ; тут твой мир/комната/etc...
EntityType worldTypeWorld


Local player
CreateSphere() ; допустим наш игрок будет шариком
PositionEntity
(player0700)
TurnEntity(player000)
EntityRadius(player60) ; радиус шарика (настрой на свой вкус)
EntityType(playerTypePlayer)

Local camera=CreateCamera(player


Collisions(TypePlayerTypeWorld23) ; тута активируются коллизии

далее основной цикл твоей игры... 
Не забудь в цикле, перед RenderWorld добавить UpdateWorld
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Arton (16.01.2025)
Старый 16.01.2025, 18:06   #3
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,030
Написано 2,316 полезных сообщений
(для 5,355 пользователей)
Ответ: как добавить коллизию мешу с maplet

Меня опередили, попытаюсь пояснить тогда.

Я делал как-то так:
;=======Коллизии=======
Const HeroType = 1			;Персонаж
Const FloorType = 2			;Любая поверхность по которой нужно ходить
Const AllObjectType = 3		;Стены и всё большое и статичное

...........какойтокод...........

Graphics3D 1920,1080,32,2

...........какойтокод...........

;=====================Игрок=============================

	player=CreateSphere()
		. . . . . .
		EntityRadius player,1.8,1.8
		EntityType player,HeroType

	map=LoadMesh()
		. . . . . .
		EntityType map,player,2,AllObjectType

;====================Коллизи============================
Collisions HeroType,FloorType,2,3	;Коллизия персонажа с полом,
Collisions HeroType,AllObjectType,2,2	;со стенами.
1) Надо задать каждому объекту с кем он может сталкиваться.
2) Определить тип (формы) столкновений, они фиксированные.
3) И реакция на столкновение: остановка, скольжение.

В твоём случае, твоя камера это мой HeroType, а комната AllObjectType.
Для стен и пола делал отдельно, что бы не было конфликта.
Если у тебя комната один меш, то её лучше разбить на части.

Я уже подзабыл, но вроде для простого столкновения со статичным достаточно камера—>стены.
А для сложного нужно в обе стороны (как у меня в коде). Например открытая дверь толкала персонажа (а может я напутал).

Справка на русском Blitz3D_help_русский.zip
Collisions src_type,dest_type,method,response
Параметры
src_type - тип объекта, который будет проверяться на столкновения.
dest_type - тип объекта, с которым будут обрабатываться столкновения.

method - метод определения столкновений.
1: столкновения типа эллипсоид-к-эллипсоиду
2: столкновения типа эллипсоид-к-полигону
3: столкновения типа эллипсоид-к-паралелепипеду

response - как будет вести себя объект при столкновении.
1: остановка
2: скольжение1 - столкновение с полным скольжением
3: скольжение2 - скольжение с предотвращением скатывания с наклонов
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (16.01.2025)
Старый 16.01.2025, 22:58   #4
scp_regalis4488
AnyKey`щик
 
Регистрация: 12.01.2025
Сообщений: 6
Написано одно полезное сообщение
Ответ: как добавить коллизию мешу с maplet

спасибо вам ребята вы действительно помогаете
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 20:30.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com