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

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

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

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

Ответ
 
Опции темы
Старый 25.09.2007, 08:28   #1
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Смена локаций

Допустим у меня есть 2 функции. Каждая создаёт свою камеру свой свет свою плоскость. Тобиш 2 функции это 1 и 2 локации. Есть у меня например переменная location изменяя которую я заставляю работать функции. например если переменная равна одному работает первая функция, если двум то работает вторая.
А вот суть вопроса.
Например заработала у меня эта первая функция создались в ней камера свет плоскоать, и я вдруг меняю переменную функция перестаёт работать включается другая функция где грузятся новые камера свет плоскость.
Вопрос в том если я перестал выполнять первую функцию исчезнут ли объяекты которые она создавала? тобиш камера свет плоскость первой локации. Или мне их придётся при смене переменной удалять командой фри ентити?
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 08:38   #2
jimon
 
Сообщений: n/a
Re: Смена локаций

прийдется удалять ручками
у тебя же в памяти хранятся только ссылки на обьекты (указатели)
поетому даже если ты их затрешь то из памяти они никуда не денутся
 
Ответить с цитированием
Старый 25.09.2007, 08:54   #3
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Смена локаций

Посмотри так пойдёт? Вроди всё работает как надо на Q грузится первая локация, на W вторая локация. Ток чёто медленно грузится почемуто.

;--------------------------------------------------------------------------------------- WORLD:
Graphics3D 1024, 768, 32
SetBuffer BackBuffer()
HidePointer

Global Location=0
Global Camera1
Global Svet
Global Ploskost
Global Zemla
Global Camera2
Global Svet2
Global Ploskost2
Global Zemla2

Function Location1()
Camera1 = CreateCamera()
PositionEntity Camera1,0,20,0
RotateEntity Camera1, 0, 0, 0
CameraRange Camera1,0.01,100000000

Svet = CreateLight()
TurnEntity Svet,30,20,0

Ploskost= CreatePlane() 
Zemla=LoadTexture("Data\textures\15820652.jpg") 
ScaleTexture Zemla,150,150
EntityTexture Ploskost,Zemla 
End Function

Function Location2()
Camera2 = CreateCamera()
PositionEntity Camera2,0,20,0
RotateEntity Camera2, 0, 0, 0
CameraRange Camera2,0.01,100000000

Svet2 = CreateLight()
TurnEntity Svet2,30,20,0

Ploskost2= CreatePlane() 
Zemla2=LoadTexture("Data\textures\SAND.JPG") 
ScaleTexture Zemla2,150,150
EntityTexture Ploskost2,Zemla2
End Function

While Not KeyDown(1)

If KeyHit(16) Then Location=1
If Location=1 Then
Location1()
End If

If KeyHit(17) Then 
Location=2
End If

If Location=<1>1 Then
FreeEntity Camera1
FreeEntity Svet
FreeEntity Ploskost
FreeEntity Zemla
End If

If Location=<2>2 Then
FreeEntity Camera2
FreeEntity Svet2
FreeEntity Ploskost2
FreeEntity Zemla2
End If

If Location=2 Then
Location2()
End If

UpdateWorld

RenderWorld

Flip

Wend

End
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 08:59   #4
jimon
 
Сообщений: n/a
Re: Смена локаций

oiiii
zdelay prosto cthobi bilo :
function CreateLocation1()
...
end function
function FreeLocation1()
...
end function


ps. ya v fluxbox v linux'e , tut poka russkogo netu
 
Ответить с цитированием
Старый 25.09.2007, 09:08   #5
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Смена локаций

Чёт я смысла непонял. ты имееш ввиду так? :

function CreateLocation1()
Camera1 = CreateCamera()
PositionEntity Camera1,0,20,0
RotateEntity Camera1, 0, 0, 0
CameraRange Camera1,0.01,100000000
Svet = CreateLight()
TurnEntity Svet,30,20,0
Ploskost= CreatePlane() 
Zemla=LoadTexture("Data\textures\15820652.jpg") 
ScaleTexture Zemla,150,150
EntityTexture Ploskost,Zemla 
end function

function FreeLocation1()
FreeEntity Camera1
FreeEntity Svet
FreeEntity Ploskost
FreeEntity Zemla
end function

While Not KeyDown(1)

If Location=<1>1 Then
FreeLocation1()
End If
Зачем удаление в функцию пихать? Так работать быстрее будет?
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 09:16   #6
Damp
Знающий
 
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений
(для 133 пользователей)
Re: Смена локаций

Кажется не совсем пойдет...
Походу какмера у тебя оздается в цикле и есть возможность создавать одну и ту же много раз.
Сколько раз нажмешь KeyHit(16) столько камер будет...
Эти инициализации имхо лучше делать перед циклом образно говоря типа так:

InitGraphicMode
InitGlobalVar&Constant

.start
Select level
Case 1
InitCamera1
CreateWorld1
Case 2
InitCamera2
CreateWorld1
...
End Select

цикл
While Not KeyDown(1)

if KeyHit(16)
level=level+1;на следующий левел
free_all_world; там прописать убой всех энтити, света и камеры
Goto start
End If
...
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 09:18   #7
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Смена локаций

Чёто я загрузив мир вообще долговато не могу закрыть окно программы.
Моя система с 3 поста случаем не плодит триллион миров??? Вроди ток по 1 каждого элемента загрузиться должно.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 09:25   #8
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Смена локаций

Сообщение от Damp
Кажется не совсем пойдет...
Походу какмера у тебя оздается в цикле и есть возможность создавать одну и ту же много раз.
Сколько раз нажмешь KeyHit(16) столько камер будет...
Эти инициализации имхо лучше делать перед циклом образно говоря типа так:

InitGraphicMode
InitGlobalVar&Constant

.start
Select level
Case 1
InitCamera1
CreateWorld1
Case 2
InitCamera2
CreateWorld1
...
End Select

цикл
While Not KeyDown(1)

if KeyHit(16)
level=level+1;на следующий левел
free_all_world; там прописать убой всех энтити, света и камеры
Goto start
End If
...
Хз. Если я W нажму второй раз переменная же всё равно равная 1 останется. Да а может и создастся второй мирок с второй камерой. Но я же в игре не буду себе локации грузить клавишами )
Я пока примерную систему загрузки уровней делаю, а дальше будет грузиться новая локация при коллизии юзера с концом локации, а старая сразуже удаляться. Там я уже не смогу второй раз проколлизиться ибо буду уже во второй локации.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 09:27   #9
Damp
Знающий
 
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений
(для 133 пользователей)
Re: Смена локаций

так не ставь создание мира в цикл.
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 09:36   #10
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Смена локаций

Я не понял что значит не ставить создание мира в цикл.
Ты мне скопируй с моего кода то что я не должен ставить и скажи куда недолжен и почему?
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 09:51   #11
Damp
Знающий
 
Регистрация: 12.07.2007
Сообщений: 297
Написано 50 полезных сообщений
(для 133 пользователей)
Re: Смена локаций

Функции Location1, Location2 лучше вызывать ДО While Not KeyDown(1) (тоесть цикла).
Можно еще посоветовать юзать стандартную функцию FreeWorld , почитай в хэлпе она облегчит удаление.
---
Незнаю поможет ли, там есть смена локации (какраз с Goto), но пример не самый простой.
http://damp.ucoz.ru/GAME.rar - 500Кб
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 09:56   #12
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Смена локаций

Если я

If KeyHit(16) Then Location=1
If Location=1 Then
Location1()
End If

If KeyHit(17) Then Location=2
If Location=2 Then
Location2()
End If
пропишу до While Not KeyDown(1)
то у меня нихрена работать не будет

А вот шо есть Goto понятия не имею ) Свою же систему загрузки делаю.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 10:01   #13
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Смена локаций

эк, Вы, батенька жжоте.
If Location=<1>1 Then ....
If Location=<2>2 Then .....
сие что означает, сэр?
а всего лиеш это
if location <=(2>2)
или
if location<=(false)
оно же
if location<=(0)

собсно с еденицетй таже проблема.
ЗЫ. Чо то ненравится мне твоя идея, Crystal, таким макаром грузить локации. Имхо надо выделить общую часть (камера, свет, скайбокс, оружие, враги, деревья) / которые ниезменны от уровня к уровню и нетрогать при загрузке локации их вообще.
а в ф-ию передавать параметр, например LoadLocation(2)
а в самой функции уже парсить это select - ом и загружать локацию в зависимости от значения.
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 10:11   #14
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: Смена локаций

эк, Вы, батенька жжоте.
Гы )
Да хрен его знает я решил что смогу обозначить этим то что если переменная меньше или больше единици то удаляем мир нахрен.

ЗЫ.
Так в новой локации новые мобы новые деревья.
Я вообще хочу в новой локации и юзера по новой создать, а всякое барахло что юзер с собой таскает всё равно в переменных храниться будет.
__________________
Проект "Deathbring World - Rangers" и его финансовая поддержка:
https://boosty.to/deathbringrangers

Я на - TWITCH
Канал на YouTube
(Offline)
 
Ответить с цитированием
Старый 25.09.2007, 10:14   #15
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Смена локаций

значит так if variable<>1 надо
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена Анимации. Ganociy Blitz3D 22 04.12.2009 19:10
Локации G.A.D Болтовня 38 20.05.2009 23:34
Как сделать переход с одной локации на другую? gost6681 MidletPascal 3 06.03.2009 00:41
Смена локаций Crystal 3D-программирование 2 30.07.2007 17:12
Смена дня и ночи haedim 3D-программирование 18 30.10.2006 22:23


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


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