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=7886)

Dream 04.06.2010 17:13

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от EaNub (Сообщение 149004)
не знаю поможет ли(я не очень понял), а если
Код:


MoveEntity car,0,Vsvp,speed

If EntityCollided( koleso[1], SCENE ) Or EntityCollided( koleso[2], SCENE ) Or EntityCollided( koleso[3], SCENE ) Or EntityCollided( koleso[4], SCENE )
Vsvp=0.0
Else
Vsvp=Vsvp-9.8 ; увеличиваем скорость за счёт ускорения свободного падения
EndIf

Vsvp - скорость свободного падения
Если нужна обычная гравитация, то просто вместо Vsvp=Vsvp-9.8 ставим Vsvp=-9 ; или сколько там..
Надеюсь я тебя правильно понял:)
И еще надеюсь у тебя колёса дети машины?:-D

а если машинка будет ехать под гору, то эта твоя так называемая гравитация будет напрвлена перпендикулярно к плоскости на покотрой едет машинка, что не есть правильно, и если вдруг машинка захочет сделать сальто, то она улетит вверх дном в небо

RlexGm 04.06.2010 17:18

Ответ: Вопрос-Ответ (для новичков)
 
блин не доглядел, ну тогда MoveEntity car,0,0,speed
и твой код(точнее кусман :-D ) TranslateEntity:)

RlexGm 11.06.2010 12:52

Ответ: Вопрос-Ответ (для новичков)
 
а есть какой нибудь способ сталкивания пули с AnimMesh?

Hurrit 11.06.2010 13:22

Ответ: Вопрос-Ответ (для новичков)
 
PHP код:

If EntityCollidedkoleso[1], SCENE ) Or EntityCollidedkoleso[2], SCENE ) Or EntityCollidedkoleso[3], SCENE ) Or EntityCollidedkoleso[4], SCENE )
MoveEntity car,0,0,speed
EndIf

TranslateEntity car,0,-10,

Попробуй так.

is.SarCasm 12.06.2010 01:16

Ответ: Вопрос-Ответ (для новичков)
 
Пользуйтесь пиком, для шутеров самое оно

RlexGm 12.06.2010 12:46

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от EaNub (Сообщение 149937)
а есть какой нибудь способ сталкивания пули с AnimMesh?

сам решил свой вопрос, создал из кубиков модель(не аниммеш) и припарентил к аниммешу, конечно не точно( по рукам не попадает, ну и посрать:) )
еще один вопрос: сделал для бота угол зрения
If (180 - Abs( DeltaYaw(dcw\Pivot, player))) <100 , но бот видит сквозь стены:mad: и как сразу начинаешь уровень, условие выполняется, как можно решить эту проблему кроме EntityDistance,думал насчёт LinePick, но его нужно как то привзать на локальные координаты бота

RlexGm 14.06.2010 12:33

Ответ: Вопрос-Ответ (для новичков)
 
не много хелпа и я это решил сам=)
если кому нибудь интересно как это решаеться, то вот:
ставим пик мод на объекты, через которые он не должен видеть:
Код:

EntityPickMode wall,2,true
Последний параметр true обозначает что объект будет перекрывать другие объекты при EntityVisible.
Код:

If EntityVisible(dcw\pivot,player)=True Then
If (180 - Abs( DeltaYaw(dcw\Pivot, player))) >90 Then dcw\status=1
EndIf


Nex 15.06.2010 15:34

Ответ: Вопрос-Ответ (для новичков)
 
Подскажите как сделать радиус поражения от взрыва. :)

RlexGm 15.06.2010 16:02

Ответ: Вопрос-Ответ (для новичков)
 
не знай для каких целей тебе надо, но я юзаю EntityDistance

Nex 15.06.2010 17:41

Ответ: Вопрос-Ответ (для новичков)
 
Ну у взрыва одна цель - взорваться и все снести. :crazy:
Вообще у меня в игре есть бочки, в некоторых местах они кучкой стоят ну и я хочу что бы при взрыве одной бочки близлежащие тоже взорвались или загорелись.
Пробовал сделать так EntityDistance (b\ent,b\ent), но функция ничего не возвращает. :)

RlexGm 15.06.2010 18:13

Ответ: Вопрос-Ответ (для новичков)
 
гм а я думал взрыв от гранаты или бомбы например:)
может создать источник взрыва(пивот) в координатах бочки, когда например бочка загорается , создать переменную, которая возращает true или один в момент взрыва, и проверять дистанцию пивота с бочками и переменную, если оба условия выполняются то... бабах b\ent
З.Ы. для пивота лучше создать отдельный тип

FireOwl 15.06.2010 19:12

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Nex (Сообщение 150306)
Пробовал сделать так EntityDistance (b\ent,b\ent), но функция ничего не возвращает. :)

Конечно ничего не возвращает! Ты же в оба параметра один объект засунул!

Необходимо проверяемую бочку сохранить отдельно, а потом прокручивать остальные бочки в цикле и проверять.

А массовый взрыв, где одна бочка поражает все в своем радиусе, а затем взорванные бочки подрывают все бочки в своих собственных радиусах сделать рекурсией.

is.SarCasm 15.06.2010 19:47

Ответ: Вопрос-Ответ (для новичков)
 
Считаю что надо бочку и взрыв делать отдельно.

Nex 16.06.2010 11:35

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Необходимо проверяемую бочку сохранить отдельно
Типа через хендл? Если да, то я пробовал, но все равно не работает. И лучше дайте код простенький, а там я уже соображу. :)

FireOwl 16.06.2010 18:28

Ответ: Вопрос-Ответ (для новичков)
 
Warning! Псевдо-код!
Код:

Type barrel
   
Field mesh
   
Field life
End Type

pickmesh  ; допустим, это меш который был определен пиком

; определение в главном цикле бочки, в которую стреляли
For b.barrel=Each barrel
   
If b\mesh=pickmesh Then Explode(b)
Next

Function Explode(b.barrel)
    b\life=0   
           
    ; далее код взрыва или еще чего-нибудь
    ;  -
    ;  -

    For d.barrel=Each barrel
        If b<>d And d\life>0 Then
            If EntityDistance(b\mesh,d\mesh)<10 Then
                Explode(d)
            EndIf
        EndIf
    Next
    FreeEntity(b\mesh)
    Delete b
End Function

Эх.. Давно не писал на Blitz, может где ошибся.
Но идея была примерно такой.


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

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