[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Сектор жары или холода. (погодные эффекты.)
Сектор жары или холода.
DarkFoxДата: Вторник, 30.03.2010, 20:47 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 47
Награды: 0
Репутация: 1
Статус: Offline
В игре есть уровни или сектора, на которых у персонажа убывает тепло или начинается обезвоживание.
Сут вопроса не в том как создать эти эффекты, а в обработке.

Всю карту я понимаю как сделать, при загрузке карты я могу задать это условие.

в вот для секторов, я не понимаю.
Сектор это несуществующий квадрат, имеющий определенный размер. Низ которого заныкан в земле и верх там где игрок до него не достанет. То есть для задания сектора нужно задать четыре вершины(у каждой из который есть еще три своих+тип сектора+время+урон\восстановление)

При этом если на карте стоит тип 1(жара), то в нутри сектора с типом 0(нейтрал) эффект от первого(уровня) должен исчезать.

На данный момент код работает так:
Если персонаж по X<-10 и X>10(далее также для двух других осей)
если поглощение=1
если тип_поглощение=0
тут восстановления параметров
конец
(и так для жары и холода)
[приме приведен дыбы объяснить что эти два параметра (поглощения и тип_поглощения) должны участвовать в коде]

Вопрос.
Подскажите как сделать создание секторов и их обработку кодом(перебор всех секторов и взаимодействие)


"Стрельбу по движущимся мишеням, производить только с разрешения администрации
В случае попадания бое припаса в тело, обращаться к богу!!!"
 
deejexДата: Вторник, 30.03.2010, 22:42 | Сообщение # 2
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
только это называется не сетора, а триггеры

Code
Type TTrigger
Field ent%
End Type

Function CreateTrigger() ;Возвращает интити триггера, модифицируй как обычный объект. Удалять через FreeEntity
Trigger.TTrigger = New TTrigger
Trigger\ent = CreateCube()
HideEntity Trigger\ent
Return Trigger\ent
End Function

Function IsEntityInTrig(ent,trig=-1) ;Проверяет наличие интити внутри тригера. Если trig=-1, то проверяются все триг.
For Trigger.TTrigger = Each TTrigger
If EntityClass(Trigger\ent) = 0 Then ;Если не будет работать, замени на If EntityClass(Trigger\ent) = "" Then
Delete Trigger
Else
If Trigger\ent = trig Or trig=-1 Then
    If EntityX(ent)>=EntityX(Trigger\ent) And EntityX(ent)<=EntityX(Trigger\ent)+MeshWidth(Trigger\ent) Then
    If EntityY(ent)>=EntityY(Trigger\ent) And EntityY(ent)<=EntityY(Trigger\ent)+MeshHeight(Trigger\ent) Then
    If EntityZ(ent)>=EntityZ(Trigger\ent) And EntityZ(ent)<=EntityZ(Trigger\ent)+MeshDepth(Trigger\ent) Then
    Return 1
    End If
    End If
    End If
End If
End If
Next
End Function

фух... еле дописал...






Сообщение отредактировал deejex - Вторник, 30.03.2010, 22:52
 
DarkFoxДата: Вторник, 30.03.2010, 23:04 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 47
Награды: 0
Репутация: 1
Статус: Offline
Ээа как я понял, если мы вокнулист в тригер(EntityClass(Trigger\ent) = 0 ) он удалится?
то есть это и есть одно из мест(Delete Trigger) где как раз задается что происходит при входе в триггер?


"Стрельбу по движущимся мишеням, производить только с разрешения администрации
В случае попадания бое припаса в тело, обращаться к богу!!!"
 
deejexДата: Вторник, 30.03.2010, 23:24 | Сообщение # 4
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
Quote (DarkFox)
Ээа как я понял, если мы вокнулист в тригер(EntityClass(Trigger\ent) = 0 ) он удалится?
то есть это и есть одно из мест(Delete Trigger) где как раз задается что происходит при входе в триггер?

ты неправильно понял,
Quote (deejex)
If EntityClass(Trigger\ent) = 0 Then
Delete Trigger

это для удаления тригера в случае отсутствия интити
.
Quote (deejex)
IsEntityInTrig(ent,trig=-1) ;Проверяет наличие интити внутри тригера.

вот проверка наличия интити в триггере




 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Сектор жары или холода. (погодные эффекты.)
  • Страница 1 из 1
  • 1
Поиск: