forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Расстановка физических обьектов. (http://forum.boolean.name/showthread.php?t=5416)

Черный крыс 24.12.2007 21:10

Расстановка физических обьектов.
 
Вобщем такой у меня вопрос.
Как лучше организовать расстановку физ. обьектов на игровом уровне?
Мои мысли сводятся к тому что надо писать свой расстановщик обьектов и все данные каждого обьекта (позиция\ориентация\скейл) сохранять в отдельный файл, после чего, загружать это дело при загрузке игры....может у кого есть мысли получше?

dector 24.12.2007 22:03

Re: Расстановка физических обьектов.
 
так наверное тоже хорошо -не писать же все в коде. можно сделать загрузку функцией...

Черный крыс 24.12.2007 22:09

Re: Расстановка физических обьектов.
 
"не писать же все в коде" - эта мысль точно не будет лучше....

dector 24.12.2007 22:13

Re: Расстановка физических обьектов.
 
можно сохранять в базе) как вариант. зато никто в запароленой базе не изменит.

Или шифровать файл. Но расшифровывать все, долговато)

HolyDel 24.12.2007 22:18

Re: Расстановка физических обьектов.
 
игра свеч не стоит

HolyDel 24.12.2007 22:57

Re: Расстановка физических обьектов.
 
Цитата:

???
это кому?

если мне - то шифровка карт - ето вобще нонсенс. никто кроме аффтара и сможето прочитать ети карты - и уж тем более изменить.

FrankH 24.12.2007 23:11

Re: Расстановка физических обьектов.
 
Если уровень делается в максе, то я пробовал расстанавливать через пивоты, но IMHO лучше сохранять в свой формат данные обьектов + всегда можно добавить доп. инфу (например в редакторе ставишь на столе 5 предметов типа "посуда", а двиг уже насыпет 5 штук из этой категории). Лучше метода не знаю.
Да, если уровень большой, можно разбить его на зоны (коридор, первая комната, ангар, улица) и сохранять обьекты с принадлежностью к зоне, а грузить при необходимости.

dector 25.12.2007 00:03

Re: Расстановка физических обьектов.
 
Оно -то так, холи. но всеже это убережет юзеров подалее от греха;)

да и если понять логику - можно вообще уровень перестроить;)

Igorr 25.12.2007 00:12

Re: Расстановка физических обьектов.
 
Вряд ли найдутся мысли получше. Как бы ты не делал, всё в любом случае сведётся именно к твоему варианту. ;) Если конечно нет каких-то особенностей внутренней логики.

Horror 25.12.2007 00:22

Re: Расстановка физических обьектов.
 
ну то что в файлах- это да!
Но я бы еще посоветавал
сохраять все в xml формат
он очень удобен для чтения и оч понятный
поищи в библах там есть исходник
работы с хмл

HolyDel 25.12.2007 01:09

Re: Расстановка физических обьектов.
 
я бы пооветовал хаписывать в файл четверками float-ов. фиг тогда кто его прочитает. + скоростьч чтения, обработки карты будет вразы выше чем, если парсить ето дело, да еще и читать со строчек.

DarkKnight 06.01.2008 00:33

Ответ: Расстановка физических обьектов.
 
расставь в сцене думмисы и по ним ставь объекты=)в большинстве игр так,и в гта и в нфс.

IGR 06.01.2008 17:07

Ответ: Расстановка физических обьектов.
 
Цитата:

я бы пооветовал хаписывать в файл четверками float-ов. фиг тогда кто его прочитает.
да, без редака загр\сохр, т.е. ручкими этот файлик переделать практически невозможно !!
юзать МАКСовские пивоты для растановки обьектов в игре это не то !! лучше свой редак написать для растановки в котоорый кроме собственно растановки можно засунуть еще много чего полезного для игры !! что в свою очередь упростит жизнь разработчику !!

Taugeshtu 06.01.2008 17:38

Ответ: Расстановка физических обьектов.
 
Интересный, актуальный вопрос... Поддерживаю способ "4 флоата"... Хотя не совсем поддерживаю... Потому как чтобы получить искомые 4 флоата из:
x,y,z
Pitch,Yaw,Roll
нужно малех помудриться, объединяя значения углов вот таким волшебным образом:
Код:

Pitch = 100
Yaw = 128
Roll = 256

Result = Pitch*1000000 + Yaw*1000 + Roll

Поскольку при 360-тиградусной целочисленной форме представления углов (а, ИМХО, это оптимальное) для каждого угла _всегда_ будет достаточно 3-х знаков. Особенно прихоливым можно модифицировать код, получив доступ еще и к одному знаку после запятой, но ИМХО это лишнее...

Как вытаскивать значения, думаю, догадаетесь (;

P.S.
Решил вас не мучать, и заодно подсказать начинающим и тем, кто не знает, как их вытащить:
Код:

Result = 100128256
; все данные углов просто _обязаны_ быть целочисленными. Иначе напроситесь... На совсем небольшое смещение
Pitch = Result*0.000001
Yaw = Result*0.001 - Pitch*1000
Roll = Result - Pitch*1000000 - Yaw*1000


HolyDel 06.01.2008 17:57

Ответ: Расстановка физических обьектов.
 
Ize'g0re, если нужно сохранить еще и поворот объекта - то будет 6 флоатов, а если еще и скейл - то еще три флоата, а если и цвет то еще три байта.
я вообще ето все веду к тому, что нефиг писать в файл текстовую информацию для карт. очень дорого обойдется такой сэвер / лоадер.

и вообще - если можешь не персложнять - не пересложняй

Taugeshtu 06.01.2008 18:00

Ответ: Расстановка физических обьектов.
 
Del, а куда же тогда еще?
---
Added
---
Кстати, я именно про "загон" поворотов в одну переменную и говорил...

HolyDel 06.01.2008 18:22

Ответ: Расстановка физических обьектов.
 
я понял, но в современных условиях, лучше потратить пару float-ов, чем проводить лишнии операции (умножение - не самая дешовая).
хотя конечно ети 4 байта еще надо считать с файла...
такчто хз, в определенных условиях твоя система может быть очень полезной ;)

Taugeshtu 06.01.2008 18:57

Ответ: Расстановка физических обьектов.
 
А если вместо итогового float использовать result типа Int? (;
Впрочем, не могу не согласиться: считать еще два лишних флоата гораздо проще.
А еще можно и Scale (даже если он float) домножить на два-три знака (для точности) и опять же внести в одну переменную.
И с цветом то же самое...

Тут уж нужно сделать тестик (: Что быстрее...
Кто возьмется?


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot