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

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

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

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

Ответ
 
Опции темы
Старый 21.08.2007, 17:53   #1
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
DDD Карта Таилами

Всем привет !
вот делаю игровое "поле"

в самой реализации вопросов не возникло ,что то вроде этого
(облегченный вариант)

 
Type TSquare
 Field ent
 Field typ%
End Type
Const MSize=16
Dim Map.TSquare(MSize,MSize)
...
СОЗДАНИЕ КАРТЫ: 
 
For y=0 To MSize
 For x=0 To MSize
  Map.TSquare(x,y)=New TSquare
  Map(x,y)\ent=ДЕЛАЕМ КВАД :ScaleEntity Map(x,y)\ent,1.92,1.92,1.92
        Map(x,y)\typ% = ЧИТАЕМ ФАИЛ ДЛЯ ТИПА
  PositionEntity  Map(x,y)\ent,x*12,0,y*12
  MoveEntity  Map(x,y)\ent,0,Rnd(-2,2),0
....
 Next
Next
в чем вопрсос : У Меня при карте 16-16 все нормально ,а вот при 32-32 уже подтормаживает ( : Вообщем как мне ОБЪЕДЕНИТЬ ВСЕ ТАИЛЫ в один меш НО ЧТоб я попрежнему мог обращаться к
каждому объекту по отдельности (чтобы к примеры перекрасить таил в другой цвет) что вроде АддМешь? и сильно ли меня это спасет от лагов ?

и вопрос номер ТУ (он проще):
вот сейчас высота таилов у меня определяется так: MoveEntity Map(x,y)\ent,0,Rnd(-2,2),0
но разброс между таилами по высоте не равномерный!
как мне написать функцию чтобы высота соседних таилов была не значительно (выше\ниже) соседних но разбрасывалсь в диапозоне

чтото вроде этого (пс код ошибок не дает ну чтто особенно ничего не происходит):
(Offline)
 
Ответить с цитированием
Старый 21.08.2007, 18:03   #2
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: DDD Карта Таилами

задай в типе высоту , а потом делай так:
tile(i,j)\visota = tile(i-1,j-1)\visota+rnd(-5,5) ;так вроде!!
хотя эту строчку можно переделать по удобней !!
(Offline)
 
Ответить с цитированием
Старый 21.08.2007, 19:37   #3
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: DDD Карта Таилами

)) вопроса ты не понял!
вот при РНД будет у меня так (к примеру : )
1 -5 4 -2
-4 4 1 3
5 2 5 2
1 -2 -1 -5

т.е. эти цифры это высота и как видно соседние не рядом (по высоте!!! )
а мне надо примерно так
0 1 2 1
1 2 3 2
1 1 2 2
2 1 1 1
т.е нет скачка больше че 1! типо плавно!
ну этот вопрос для меня не важен! )
темболее я придумал как это сделать!
потом у меня появилась другая идейка кидать чб бмп фаил 32-32
и читать каждый пиксель чем чернее тем выше (типо карты высот! )

___________

Ктонить на первый вопрос ответит? как мне склеить все объекты чтоб потом я попрежнему мог бы обращаться к каждому по отдельности
И сильно ли это спасет пою производительность
(Offline)
 
Ответить с цитированием
Старый 21.08.2007, 19:41   #4
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: DDD Карта Таилами

А яж не написал чем твои пример ко мне не подойде
1) он идет только по диагонали)
2) а если сравнивать со всеми соседними вокруг каждого это заимет время ну так вот поэтому я придумал сделать карту высот из бмп фаила

жду ответик на 1-й вопросиг
(Offline)
 
Ответить с цитированием
Старый 21.08.2007, 19:42   #5
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: DDD Карта Таилами

кидать чб бмп фаил
лучше .raw там нет лишней инфы, кроме цвета пикселя.
(Offline)
 
Ответить с цитированием
Старый 21.08.2007, 20:17   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: DDD Карта Таилами

Horror, он тебе подкинул идею, а не реализацию.
По диагонали? А кто мешает складывать все вокруг?:
For x=-1 to 1
   For y=-1 to 1
   Next
Next
Хм, а ты не пробовал изначально создавать вручную платформы в одном меше?
(Offline)
 
Ответить с цитированием
Старый 21.08.2007, 21:05   #7
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: DDD Карта Таилами

Изначально так и было! но щас у меня не квады а модельки
вот код
 
groundmesh=CreateMesh() 
...
For x=0 To MSize
 For y=0 To MSize
  Map.TSquare(x,y)=New TSquare
  Map(x,y)\ent=CopyEntity(TILE_MDL) :ScaleEntity Map(x,y)\ent,1.92,1.92,1.92
     AddMesh groundmesh ,Map(x,y)\ent
...
ну и вот чтото я не заметил прирост производительности что обидно

и наверника я делаю чтото не так! лечите меня)
(Offline)
 
Ответить с цитированием
Старый 22.08.2007, 17:51   #8
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: DDD Карта Таилами

У Меня при карте 16-16 все нормально ,а вот при 32-32 уже подтормаживает
какая производительность ??
между 16 и 32 разница в 4 раза !! так и должно в принципе подтормозить !!
(Offline)
 
Ответить с цитированием
Старый 22.08.2007, 18:08   #9
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: DDD Карта Таилами

Не не в этом смысе! я прекрасно понимаю разницу между 16 и 32
просто если делать квадами(два треугольника) то карта 32-32 этоже всегоже 1024 полигона, ну в принципе если я зугружу модель
которая будет в кадре и весить стоко же таких тормазов не будет (проверял)
это видимо из за того что каждый квад это свои мешь
и их надо объединиить !!
вот я их и при создание и создавал вместе (просто к одному мешу все квады приделывал, как МоКа написал !) ну и тормаза исчезли!! я был рад!

но потом я решил что квады не рулят и решил загружать модельку
вот я ее загрузил
и при создание создал пустои мешь и все копии моделек
присоединял командой АддМеш
но тормаза ушли не значительно (
вот и типо спрашивал может я не так АддМешь пишу (кстати никто не оветил, что обидно Ж( .... )

Ну лады у меня щас как я сделал 40-60 фпс думую пока хватит
потом ченить придумаю...
(Offline)
 
Ответить с цитированием
Старый 22.08.2007, 18:13   #10
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: DDD Карта Таилами

40-60 фпс с 1024 поликами (если я не ошибаюс) - жость !!
здесь действительно что-то не так !!
(Offline)
 
Ответить с цитированием
Старый 22.08.2007, 23:49   #11
ЛысыЙ_Чук-Иванчук
Дэвелопер
 
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений
(для 17 пользователей)
Re: DDD Карта Таилами

Дааа,
Выход-
Пополегонка
(Offline)
 
Ответить с цитированием
Старый 23.08.2007, 00:50   #12
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: DDD Карта Таилами

Дааа,
Выход-
Пополегонка
Чето непоняло?

Все вообщем я дотыкался! у меня терь 70-80 фпс это норм!
приладил дельта таимниг терь всегда 60 и не тормозит
я счаслиФ!

терь новенький вопрос!
Как правельно тыкать в сетку!
т.е не так)
тыкаю я через Пикед ентити
вот я тыкнул по объекты мне терь надо вернуть хандел
чтобы я мог глумиться над этим объектом!
т.е. не так)
сейчас у меня перебор по типу и возращаю пикнутого
но както не катит так ведь перебирать более 1000
елементов в типе - не хорошо (
вот типо как это сделать через Объект-Хандел
исключая полный перебор!
т.е. как то так ..)

Вообщем суть :
При наваодки на объект элемету типу присвоить статус=1
если наводки нет то статус=0

Мне от перебора не уйти? чтоб обратно статус в 0 ? так?

Кто понял этот набор слов жду ответа)
так и знал пить не стоит...
(Offline)
 
Ответить с цитированием
Старый 23.08.2007, 11:11   #13
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Re: DDD Карта Таилами

Поятитал тут и не понял после AddMesh используешь FreeMesh? (при AddMesh моделька не просто добавляется, а добавляется с копированием)
(Offline)
 
Ответить с цитированием
Старый 23.08.2007, 11:40   #14
Horror
Бывалый
 
Регистрация: 09.09.2006
Сообщений: 656
Написано 54 полезных сообщений
(для 110 пользователей)
Re: DDD Карта Таилами

А ты уверен?
1) Команды ФрииМеш чета не нашел (тока фриентити)
ну и вот пример
создаем 3 куба и добовляем их к мешу
ну и при удаление изначальных 3-х кубов
ни где не видно что чтото осталось у меша?
может че не так делаю?

Graphics3D 640,480,16,2

cam=CreateCamera()
l=CreateLight()
c1=CreateCube() : PaintEntity c1,CreateBrush(128,1,1) : MoveEntity c1,-2,0,6
c2=CreateCube() : PaintEntity c2,CreateBrush(1,128,1) : MoveEntity c2,0,0,6
c3=CreateCube() : PaintEntity c3,CreateBrush(1,1,12 : MoveEntity c3,2,0,6
mesh=CreateMesh()
AddMesh mesh,c1
AddMesh mesh,c2
AddMesh mesh,c3
Repeat

If KeyHit(1) End
If MouseHit(1) And c1<>0 FreeEntity c1 : c1=0
If MouseHit(2) And c2<>0 FreeEntity c2 :c2=0
If MouseHit(3) And c3<>0 FreeEntity c3 :c3=0

UpdateWorld
RenderWorld
Flip
Forever
ПС ПРЕДИДУЩИЙ ВОПРОС ЕЩЕ НЕ РЕШЕН (НЕ БОЛЬНО СТАРАЛСО ))
(Offline)
 
Ответить с цитированием
Старый 23.08.2007, 11:58   #15
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Re: DDD Карта Таилами

ВОт так будет правильнее:
ЗЫ выдрал из тутора Scavena

Global Player=CreateSphere()

 

Plac=CreateCone(8)

RotateMesh Plac,-90,0,0

ScaleMesh Plac,1,1,1.2

PositionMesh Plac,0,0,-1.5

AddMesh Plac,Player

EntityType Player, TypePlayer

EntityColor Player,0,255,0

 

FreeEntity Plac
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как работать с файлами в MidletPascal?? artemff MidletPascal 3 30.12.2009 21:20
как работать с тхт файлами? uairat Основной форум 32 27.06.2009 15:39
Работа с файлами smersh Blitz3D 5 04.07.2007 12:56
Работа с файлами Lexa 2D-программирование 2 29.03.2006 21:54


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


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