Onde está o erro neste script de animação para o mainactor?

 
   3D Game Builder - Índice » Programação
Onde está o erro neste script de animação para o mainactor?
Autor Mensagem
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 802
Localização: Rio de Janeiro - RJ

Onde está o erro neste script de animação para o mainactor?
O huntergamer me pediu uma ajuda não script que eu achava que era simples, mas estou dando cabeçada: fazer o Player executar uma animação de ataque. O personagem é o samurai com espada MD2.
Após alguns testes, cheguei a isso:

No evento ON Create:


WriteGlobalVar('Movimento', 0);
WriteGlobalVar('Trava', 0);


No evento Mainloop:

SetLabelText('Label0', 'Movimento:' + IntToStr(ReadGlobalVar('Movimento')));
SetLabelText('Label1', 'Trava:' + IntToStr(ReadGlobalVar('Trava')));
//---Alterar a Variável Movimento por meio da tecla 90 Z ---//
if (IsKeyPress(90)) and (ReadGlobalVar('Movimento') <= 0) then
begin
WriteGlobalVar('Movimento', 0.1);
SetWaitKeyUp(90);
end;
if (ReadGlobalVar('Movimento') >= 0.1) and (ReadGlobalVar('Movimento') < 1) then
begin
WriteGlobalVar('Movimento', ReadGlobalVar('Movimento') + 0.05);
end;
//---End Script Builder---//
//---Controlar a animação do Jogador por meio da Variável Movimento e da tecla 90 Z ---//

if (ReadGlobalVar('Movimento') = 0) and (ReadGlobalVar('Trava') = 0) then
begin
EnablePlayerMove;
SetObjectAnimation('MainActor', 'stand');
SetObjectAnimation('MainActorWeapon', 'stand');
WriteGlobalVar('Trava', 1);
end;
if (ReadGlobalVar('Movimento') >= 0.1) and (ReadGlobalVar('Movimento') <= 0.9) and (GetObjectAnimation('MainActor') <> 'Attack') and (GetObjectAnimation('MainActorWeapon') <> 'Attack') and (ReadGlobalVar('Trava') = 1) then
begin
DisablePlayerMove;
SetObjectAnimation('MainActor', 'Attack');
SetObjectAnimationMode('MainActor', 'PlayOnce');
SetObjectAnimation('MainActorWeapon', 'Attack');
SetObjectAnimationMode('MainActorWeapon', 'PlayOnce');
WriteGlobalVar('Trava', 0);
end
else if (ReadGlobalVar('Movimento') > 0.9) and (ReadGlobalVar('Movimento') <= 1) then
begin
WriteGlobalVar('Movimento', 0);
end;
//---End Script Builder---//

Com esse script, ao clicar na tecla Z uma única vez, o personagem executa perfeitamente toda a animação de atacar 1 vez e pára. Depois, se a gente tenta mover ele, tudo normal. O defeito estpá no seguinte:
Ao iniciar, ele fica na animação stand, se for movido, parar, etc, sempre volta ao stand.
Se eu teclo em Z, ele executa a animação e depois fica congelado, o tempo todo. Basta apertar a seta para cima, fazer qque coisa com ele com as teclas padrão e parar, que ele volta ao stand normalmente.

Resumindo:
1 - começa em stand e se move normalmente.
2 - teclando em z ele pára e ataca 1 vez perfeitamente.
3 - congela para sempre, sem animação, até ser movido novamente por uma tecla direcional (o z faz ele atacar de novo e congelar depois). Após esta ação, fica em stand de novo o tempo todo.

Abraço!



_________________
Lemos
http://alemdanimacao.zip.net/
Dom Mar 07, 2010 6:11 pm Exibir perfil de usuários
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 802
Localização: Rio de Janeiro - RJ

Re: Onde está o erro neste script de animação para o mainact
Ainda não fiz nenhum projeto que usasse isso, mas meu próximo vai usar muitas animações chamadas por teclas e esse script que eu fiz permite expansões infinitas, mas preciso entender bem para isso... Ou seja, entender esse script é algo fundamental.

Abraço!



_________________
Lemos
http://alemdanimacao.zip.net/
Dom Mar 07, 2010 6:14 pm Exibir perfil de usuários
huntergamer
Usuário
Usuário


Registrado: 02/05/09
Mensagens: 415

VIM AQUI DEIXAR UM RECADO INVOCADO......
LEMBRO QUE QUANDO ENTREI NO FORUM, APESAR DE NAO SABER NADA AINDA TENTAVA AJUDAR....
OS ANTIGOS SE LEMBRAM... NAO DEIXAVA PRA DEPOIS... ATE OS NOVATOS JA VIRAM QUE QUANDO TO AQUI EU AJUDO NA HORA....

NAO VOU CITAR NOMES NO MOMENTO... MAS TEM ALGUNS AQUI...UM EM ESPECIAL QUE ME TIROU DO SERIO RECENTEMENTE....
PARA AQUELES QUE NUNCA ME FIZERAM NADA CONTINUAREI AJUDANDO A MEDIDA DO POSSIVEL... POREM ESSE TOPICO FOI CRIADO POR UM BOM AMIGO DE TODOS(PAU PRA TODA OBRA AQUI NESSE FORUM) E PARA ME AJUDAR TBM.....


NINGUEM(NINGUEM MESMO AQUI TENTOU AJUDAR)

PORTANTO APARTIR DE AGORA EU ME JULGO FORA DO FORUM POR VARIAS RAZOES PARECIDAS COMO ESTA( INCLUSIVE 1 ESTA NA MINHA MIRA PRA DEIXAR DE SER MERCENARIO E NAO PEDIR NADA EM TROCA PARA PODER AJUDAR.....)

EDIRLEI DESCULPE O DESABAFO... MAS TEM GENTE QUE MERECE.....

_________________
Não mais tão novato
Sex Mar 19, 2010 8:46 pm Exibir perfil de usuários
Mililo
Usuário
Usuário


Registrado: 05/12/08
Mensagens: 366
Localização: Santo Antônio de Pádua / RJ

Esse é izi.. é pque você esqueceu de voltar pro modo 'Loop' depois de ir pro modo 'PlayOnce', é só adicionar nessa parte:
Citação:

//---Controlar a animação do Jogador por meio da Variável Movimento e da tecla 90 Z ---//
if (ReadGlobalVar('Movimento') = 0) and (ReadGlobalVar('Trava') = 0) then
begin
EnablePlayerMove;
SetObjectAnimation('MainActor', 'stand');
SetObjectAnimationMode('MainActor', 'Loop');
SetObjectAnimation('MainActorWeapon', 'stand');
SetObjectAnimationMode('MainActor', 'Loop');
WriteGlobalVar('Trava', 1);
end;

Lembrando que desse jeito que você fez, para atirar varias vezes teria que soltar o botao e apertar denovo.
Sex Mar 19, 2010 11:50 pm Exibir perfil de usuários
Mililo
Usuário
Usuário


Registrado: 05/12/08
Mensagens: 366
Localização: Santo Antônio de Pádua / RJ

Ops.. corrigindo, o segundo ali é:
SetObjectAnimationMode('MainActorWeapon', 'Loop');

Aliás até hj não entendi o porque de não ter edit no fórum Surprised
Sex Mar 19, 2010 11:52 pm Exibir perfil de usuários
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 802
Localização: Rio de Janeiro - RJ

Mililo escreveu:
Ops.. corrigindo, o segundo ali é:
SetObjectAnimationMode('MainActorWeapon', 'Loop');

Aliás até hj não entendi o porque de não ter edit no fórum Surprised


Valeu a dica, Mililo, vou experimentar aqui!

_________________
Lemos
http://alemdanimacao.zip.net/
Sáb Mar 20, 2010 12:01 am Exibir perfil de usuários
Lemos
Usuário
Usuário


Registrado: 14/04/09
Mensagens: 802
Localização: Rio de Janeiro - RJ

Putz grilo, Mililo, funcionou!!! Valeu mesmo a dica, não acredito que dei esse mole!
Com esse script dá para fazer muita coisa!

Abraço! Very Happy



_________________
Lemos
http://alemdanimacao.zip.net/
Sáb Mar 20, 2010 3:12 pm Exibir perfil de usuários
huntergamer
Usuário
Usuário


Registrado: 02/05/09
Mensagens: 415

VALEU MILILO
CARA NAO FOI PRA VOCÊ ISSO.... JAMAIS VOCÊ SEMPRE FOI PRESENTE AQUI

COMO DISSE TEM UM QUE ME PAGA

obrigado mesmo

abraço

_________________
Não mais tão novato
Seg Mar 22, 2010 8:11 pm Exibir perfil de usuários
   3D Game Builder - Índice » Programação
Página 1 de 1