forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   collision при условии (http://forum.boolean.name/showthread.php?t=3233)

comicsserg 26.04.2007 19:30

collision при условии
 
Вопрос как сделать чтоб при нажатии на кнопку и столеноывении выполняласть анимация:dontknow:
вот мой код но он не действует

player-мой игрок ,typetrap-лестница
repeat

TranslateEntity player,0,-1.1,0

If KeyDown(200) and EntityCollided(player,typetrap) Then
TranslateEntity player,0,1.2,0
If AnimSeq(player)=1 Then Animate player,2,.5,2,0
Else

If (Not EntityCollided(player,typetrap)) Then
If AnimSeq(player)=2 Then Animate player, 1,.5,0,10
EndIf
EndIf

mr.DIMAS 26.04.2007 20:31

Re: collision при условии
 
Знач так сначала присваиваешь каждому объекту тип коллизии
Цитата:

EntityType Enity, col_number
затем устанавливаешь коллизию командой
Цитата:

Collisions тип_первой_энтити, тип_второй_энтити, true_для анимированной_модели
а уж затем проверяешь в цикле коллизию командой
Цитата:

EntityCollided(ентити, тип_коллизии_ентити)
в общем если что-то не понято вот пример:-) :-) :-) :-) :-)

comicsserg 26.04.2007 22:27

Re: collision при условии
 
спасибо только вопрос как совместить нажатие клавиши
т.е если объект соприкосается с лестницей то ничего нет а если соприкосается и я кнопку нажму тогда анимация сработает

HolyDel 27.04.2007 01:19

Re: collision при условии
 
and

условие1 and условие2 - выполняется тогда, и только тогда, когда истинны оба условия.

comicsserg 27.04.2007 02:31

Re: collision при условии
 
repeat

TranslateEntity player,0,-1.1,0

If KeyDown(200) and EntityCollided(player,typetrap) Then
TranslateEntity player,0,1.2,0
If AnimSeq(player)=1 Then Animate player,2,.5,2,0
Else

If (Not EntityCollided(player,typetrap)) Then
If AnimSeq(player)=2 Then Animate player, 1,.5,0,10
EndIf
EndIf

cтранно условие1= If KeyDown(200) and условие2 =EntityCollided(player,typetrap)- выполняется тогда, и только тогда, когда истинны оба условия. Почему не работает кто знает помогите пожалуйста

HolyDel 27.04.2007 02:43

Re: collision при условии
 
ну здесь не сложно.
допустим игрок стоит на полу и кто-то нажал кнопку (нажал, а не кликнул) игрок перемещается вверх, и, естественно перестает коллидится, условие тут же, (на следующем тике) переходит в ветку else, а там уже выполняется следующий код:
If (Not EntityCollided(player,typetrap)) Then
If AnimSeq(player)=2 Then Animate player, 1,.5,0,10
EndIf
, естественно, что модель не коллидится, поетому идем дальше и выполняем участок
If AnimSeq(player)=2 Then Animate player, 1,.5,0,10
наверняка он выполнеястся и модель по новой анимируется, но так как прошол только один цикл (1/fps) секунд была та анимация, что была нужна, и затем сразу меняется на другую.

СОВЕТ: попробуй KeyHit, заместо KeyDown.

comicsserg 27.04.2007 14:23

Re: collision при условии
 
что то не то не работает мож кто нибудь действущий код даст с передвижениями

mr.DIMAS 27.04.2007 16:48

Re: collision при условии
 
Вот код тут есть передвижение, с помощью клавиш и при коллизии выполняется анишмация. Если че еще надо спрашивай отвечу:-) :-) :-)


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

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