Показать сообщение отдельно
Старый 24.01.2013, 20:49   #23
pepel
Мастер
 
Аватар для pepel
 
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений
(для 2,526 пользователей)
Ответ: Смена анимации с помощью KeyDown

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

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

Graphics3D 800,600,16,2
SetBuffer BackBuffer
()
cam=CreateCamera()
lite CreateLight(1
MoveEntity lite,5,0,0

;--------------------------------------
m=LoadAnimMesh("officer.b3d")
men=ExtractAnimSeq(m,212,232)
men2=ExtractAnimSeq(m,236,260)
men3=ExtractAnimSeq(m,301,319)

ScaleEntity m,0.1,0.1,0.1
PositionEntity m
,0,0,0,True

PointEntity cam
,m
PositionEntity cam
,0,3,-7

Animate m
,1,0.5,men

Global player_start_go=0
Global player_start_run=0
Global player_go=0
Global player_run=0
Global player_stop=
Global player_still=


Repeat
If KeyHit(1End
UpdateWorld

down_up
KeyDown(200)
hit_up=KeyHit(200)
down_shift=KeyDown(54)

player_start_go=0
player_start_run
=0

If hit_up player_start_go=1


If   down_up And down_shift
    player_run
=1
Else
    If   
player_run=And down_up=And player_go=And player_still=0 player_still=1:    player_stop=1:player_run=0
    
If   player_run=And down_up And player_still=0 player_start_go=1:    player_run=0
EndIf



If 
player_run=And player_still=And player_go=And  player_start_go=0 player_still=1:player_stop=1
If player_run=And (player_still=Or player_go=1player_start_run=1:player_go=0:player_still=0


If   down_up

    
If down_shift
        player_go
=0
        player_still
=0
    
Else
        
player_go=1
        player_still
=0
    
EndIf

Else
player_go=0
EndIf



If 
player_start_go Animate m,1,0.5,men2,6
If player_start_run Animate m,1,0.5,men3,5
If player_stop Animate m,1,0.5,men,10

player_stop
=0

RenderWorld tween
Text 0
,0,"player_run  "+player_run
Text 0
,10,"player_go  "+down_up
Flip

Forever 
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pepel за это полезное сообщение:
Arton (24.01.2013), Niburiec (24.01.2013)