forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Как совместить несколько анимаций md2 (http://forum.boolean.name/showthread.php?t=12169)

TG 10.03.2010 22:28

Как совместить несколько анимаций md2
 
Здравствуйте.
Проблема в следующем:
При использовании конструкции типа
Код:

    wkey = KeyDown(17)                   
    skey = KeyDown(31)         
    akey = KeyDown(30)                   
    dkey = KeyDown(32)                   
    mouse1 = MouseHit(1)
    mouse2 = MouseDown(2)                       
    space = KeyHit(57)

If wkey And mouse2=False
        MoveEntity player,0,0,0.3
        moved = 1
        forward = 1
        jump = 0
      End If

If moved = True And mouse1=True And jump = False
    If forward = True   
            If MD2AnimTime(weapon1) < 47 Or MD2AnimTime(weapon1) > 53 Then
                AnimateMD2 weapon1,1,0.1,47,53
                AnimateMD2 GUN,1,0.1,46,47
            End If
        End If
    End If

И так далее...

не получается реализовать нормально прыжок или анимацию выстрела целиком.
Тоесть жмем к примеру кнопку "вперед", паралельно однократно нажимая кнопку "прыжок", модель на долю секунды начинает проигрывать прыжок (один-два кадра) а потом продолжает бежать.
Если выставить space = KeyDown(57), то при той же ситуации чтобы увидеть анимацию прыжка целиком, необходимо удерживать кнопку "прыжок" пока анимация не проиграется до конца... тоже криво как то.
Вобщем подскажите, как сделать чтобы во время бега после кратковременного нажатия кнопки "прыжок" однократно целиком проигрывалась анимация прыжка, а затем продолжался бег?
Я так понимаю что надо использовать таймер как то... как?

is.SarCasm 10.03.2010 22:37

Ответ: Как совместить несколько анимаций md2
 
Цитата:

Тоесть жмем к примеру кнопку "вперед", паралельно однократно нажимая кнопку "прыжок", модель на долю секунды начинает проигрывать прыжок (один-два кадра) а потом продолжает бежать.
у тебя space вообще не используется...

TG 10.03.2010 22:47

Re: Как совместить несколько анимаций md2
 
Я к примеру выложил часть кода. Space используется... просто не охота выкладывать кучу кода.
Часть с прыжком
Код:

If wkey And Space=True
        MoveEntity player,0,0,0.3
        moved = 1
        jump = 1
        forward = 1
        End If

If moved = True And jump = True
    If forward = True
        If MD2AnimTime(weapon1) < 64 Or MD2AnimTime(weapon1) > 70 Then
            AnimateMD2 weapon1,1,0.4,64,70
            AnimateMD2 GUN,1,0.4,64,70
        End If
    End If
    End If


is.SarCasm 10.03.2010 22:59

Ответ: Как совместить несколько анимаций md2
 
Очевидно что у тебя одна из этих
Цитата:

moved = 1
jump = 1
forward = 1
переменных в цикле приравнивается к 0

TG 10.03.2010 23:32

Re: Как совместить несколько анимаций md2
 
Логически вроде всё правильно:
moved = 1 - движемся
jump = 1 - совершая прыжок
forward = 1 - движение происходит вперед
Всё это может происходить одновременно :)
Вобщем я наверно неправильно вопрос сформулировал...
Как можно создать "залипание" кнопки? Это решит мою проблему.
Чтоб после кратковременного нажатия программа воспринимала кнопку нажатой некоторое время.

Dream 11.03.2010 00:33

Ответ: Как совместить несколько анимаций md2
 
вобщем так. когда нажимаешь прыжок, проигрывается анимация прыжка до конца( то есть одно движения, необходимое для прыжка) и останавливается, пока модель не касается чего либо. тогда проигрывается анимация бега.


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

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