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

 
Responder tópico    3D Game Builder - Índice » Programação Exibir tópico anterior
Exibir próximo tópico
Onde está o erro neste script de animação para o mainactor?
Autor Mensagem
Lemos
Master User
Master User


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

Mensagem Onde está o erro neste script de animação para o mainactor? Responder com citação
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 Enviar mensagem privada Visitar o website do usuário
Lemos
Master User
Master User


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

Mensagem Re: Onde está o erro neste script de animação para o mainact Responder com citação
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 Enviar mensagem privada Visitar o website do usuário
huntergamer
Usuário
Usuário


Registrado: 02/05/09
Mensagens: 403

Mensagem Responder com citação
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 Enviar mensagem privada Enviar e-mail
Mililo
Usuário
Usuário


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

Mensagem Responder com citação
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 Enviar mensagem privada MSN Messenger
Mililo
Usuário
Usuário


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

Mensagem Responder com citação
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 Enviar mensagem privada MSN Messenger
Lemos
Master User
Master User


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

Mensagem Responder com citação
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 Enviar mensagem privada Visitar o website do usuário
Lemos
Master User
Master User


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

Mensagem Responder com citação
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 Enviar mensagem privada Visitar o website do usuário
huntergamer
Usuário
Usuário


Registrado: 02/05/09
Mensagens: 403

Mensagem Responder com citação
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 Enviar mensagem privada Enviar e-mail
Mostrar os tópicos anteriores:    
Responder tópico    3D Game Builder - Índice » Programação Todos os horários são GMT
Página 1 de 1

 
Ir para: 
Você não pode enviar mensagens novas neste fórum
Você não pode responder mensagens neste fórum
você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode votar em enquetes neste fórum


Powered by phpBB © 2001, 2008 phpBB Group
Design by Edirlei
Traduzido por phpBB Brasil