Conectar-se
Quem está conectado
15 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 15 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 21/12/2008
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Animação de ações do Player

em Dom 10 Abr 2011, 20:45
Eu ainda sou iniciante no GM quanto a várias coisas...
E recentemente estou tendo problemas com animação de ações do player...

Um exemplo é um simples soco, digamos que o soco tenha 6 frames de animação (onde o player prepara e executa o soco), eu quero saber como fazer pro player executar essa animação de soco e termine mostrando o ultimo frame (player em posição de ataque) por X tempo, entendem? A forma que eu tento fazer faz o personagem ficar repetindo a animação e nao "trava" no ultimo frame.



Última edição por †Des† em Qua 20 Abr 2011, 12:47, editado 1 vez(es)
avatar
Ranking : Nota C
Notas recebidas : C-D-A-C
Data de inscrição : 28/01/2011
Número de Mensagens : 1003
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 18

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://sonicmaker.forumeiros.com/memberlist

Re: Animação de ações do Player

em Dom 10 Abr 2011, 20:55
no create desse objeto coloca
Código:

soco=false
no evento de executar o soco coloca :
Código:

if image_index=6
{soco=true}
no evento step coloca:
Código:

if soco=true
{image_index=6
alarm[0]=10}
no alarme 0 :
Código:

soco=false
sprite_index=spr_player_parado
isso deve resolver
avatar
Ranking : Nota C
Notas recebidas : C+C+C+C
Data de inscrição : 03/12/2010
Número de Mensagens : 470
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 28

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Animação de ações do Player

em Dom 10 Abr 2011, 21:12
vc pode fazer por troca de sprites ou por troca de objetos que eu particulamente acho mais facil tipo vc so prescisa criar um objeto chamado obj_player_batendo com o sprite do player batendo ae nesse objeto vc add um create e coloca
Código:
image_speed=0.25
ae vc add um event animation end e coloca assim
Código:
instance_destroy()
instance_create(x,y,obj_player_normal)
pronto nesse objeto é só, agora vc vai no objeto player normal ae add o event da tecla que faz o player bater e coloca assim
Código:
instance_destroy()
instance_create(x,y,objeto_player_batendo
ae pronto seu player executa toda a ação do soco. espero ter ajudado XD!!
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 10/06/2010
Número de Mensagens : 2704
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 10

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Animação de ações do Player

em Seg 11 Abr 2011, 08:56
Simples, é só fazer:
Código:
sprite_index=sprite do soco
sleep=100
{
sprite_index=sprite normal
}
Não testei, mas creio que funcionará, caso o Sleep saia errado, avise, creio que poderei ajudar.


Espero ter ajudado...
avatar
Data de inscrição : 21/12/2008
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Animação de ações do Player

em Ter 12 Abr 2011, 22:11
Obrigado pela ajuda pessoal, mas ainda não to conseguindo fazer funcionar =(
O soco é executado mas o sprite nao para no frame final, e continua dando loop na animação de soco.
avatar
Ranking : Nota D
Notas recebidas : C+D+D+D
Data de inscrição : 03/03/2011
Número de Mensagens : 252
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 10

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Animação de ações do Player

em Ter 12 Abr 2011, 22:37
Cara vc pode usar uma engine aki do kevin:
http://gmbr.forumeiros.com/t7924-combo-e-hits-basicos-iniciante?highlight=combo

Espero ter ajudado...

Té+ flw
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/11/2010
Número de Mensagens : 429
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 19

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Animação de ações do Player

em Ter 12 Abr 2011, 23:57
Adicona o evento animation end e coloca isso lá:
Código:
if floor = true{ //se ele estiver no chão
sprite_index = spr_parado; //quando a animação parar, volta pro estado inicial (parado)
}

No create do player:
Código:
floor = true; //indica que o player esta no chão
soco = false; //variavel de soco falsa até que seja dado um comando

E pro step você pode fazer mais ou menos assim:
Código:
if keyboard_chek(ord("A")){ //se a tecla A for pressionada
soco = true //a variavel soco se torna verdadeira
sprite_index = spr_soco; //o sprite de soco é exibido
}

Isso deve resolver seu problema.
avatar
Data de inscrição : 21/12/2008
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Animação de ações do Player

em Qua 13 Abr 2011, 11:21
@Utakata: vo da uma olhada no topico e na engine, vlw pela dica!

@Todos: o problema de executar o soco em si já esta OK, mas o que ainda não esta certo, é que o char nao para na posição do ultimo frame...ele da o loop da animação até que o tempo da ação acabe, o que falta é essa parada no ultimo frame para que o sprite fique na posição final do soco por x frames, e depois voltar ao normal...

mais uma vez obrigado pela ajuda pessoal.
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: Animação de ações do Player

em Qua 13 Abr 2011, 11:47
Coloca assim no animation end:
Código:
if sprite_index=spr_soco{
//Comandos para faze-lo voltar ao normal.
}
Recomendo que use uma variavel para saber se esta dando um soco ou não.

Espero que isso ajude. Qualquer coisa, eu posto uma engine que fiz a alguns dias aqui.
blz
avatar
Data de inscrição : 21/12/2008
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Animação de ações do Player

em Qua 13 Abr 2011, 12:49
Ainda não ta dando...vo posta a engine que eu to usando pra teste pra vocês darem uma olhada:

seque o link teste7.gmk
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 10/06/2010
Número de Mensagens : 2704
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 10

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Animação de ações do Player

em Qua 13 Abr 2011, 21:42
Bem colega, pelo que vejo em sua engine, seu caso é fácil, faz o seguinte, pesquise no fórum por Hold, você encontrará uma engine minha que faz está ação sem problemas, ok?


Espero ter ajudado...
avatar
Data de inscrição : 21/12/2008
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Animação de ações do Player

em Qui 14 Abr 2011, 11:54
Acho que vocês não estão entendendo exatamente o problema atual...
A parte de dar um soco e voltar ao normal está OK

O problema é o LOOP da animação de soco que fica ocorrendo até o tempo acabar, eu quero que esse LOOP não se repita e o sprite apenas execute a animação uma vez e trave no ultimo frame(posição de ataque), pra depois voltar ao normal(posição normal).
avatar
Ranking : Nota D
Notas recebidas : D+D
Data de inscrição : 05/10/2010
Número de Mensagens : 836
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 12

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Animação de ações do Player

em Qui 14 Abr 2011, 12:45
No sprite do soco, pega a última imagem e copia ela(e vai colando em frente a ela), o tanto de copias equivalerá ao tempo q vc quer q 'trave' a ultima imagem. Ou seja, as imagens 3,4,5,6 etc são uma cópia da imagem 2(no caso da sua engine ae). No objeto do player, bota no event 'Animation end'(que fica em 'Other') o code:
Código:
if sprite_index=spr_soco sprite_index=spr_parado
Tira aquele alarm e os outros codigos do step pq nao precisa, botando só esse no step:
Código:

if (keyboard_check_pressed(ord('Z'))) {
sprite_index=spr_ataque
}
Isso vai resolver como você quer.
Vc nao precisa nem da variavel global.ataque, podendo apagá-la.
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/09/2010
Número de Mensagens : 1400
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 21

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Animação de ações do Player

em Qui 14 Abr 2011, 15:46
Aff vamo esclarecer tudo. Primeiro, vamos dizer que a sprite do soco tenha 10 subimagens, contando com o 0, sendo a ultima a do soco? Certo.

Defina uma variável no Create:
Código:
imagem_soco=false

Crie um Alarm > Alarm 0 e defina uma condição:
Código:
image_index=9 //pois conta com a 1º, que é a de numero zero

Dps vá no Step e coloque esse código:
Código:
if keyboard_check(ord('A'))
{
sprite_index=spr_soco
}

if sprite_index=spr_soco
{
if image_index=9
{
alarm[0]=150
image_soco=true
}

Vê aí se funciona.
avatar
Data de inscrição : 21/12/2008
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Animação de ações do Player

em Qui 14 Abr 2011, 22:19
@Mannoroth: até ja pensei nessa forma, mas isso seria mais uma gambiarra doq uma solução...

@The Games Never Finish: Deu nao...ele repete a animação de qualquer forma, e nem para mais '-'

Poxa...uma coisa que parece simples ta tao complicada pra mim resolver =(
avatar
Ranking : Nota D
Notas recebidas : D+D
Data de inscrição : 05/10/2010
Número de Mensagens : 836
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 12

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Animação de ações do Player

em Qui 14 Abr 2011, 22:31
†Des† escreveu:@Mannoroth: até ja pensei nessa forma, mas isso seria mais uma gambiarra doq uma solução...
Do que que vc tá falando? q comentário sem sentido. acho q vc nao quer uma soluçao entao.
aqui a engine alterada como eu disse:
2shared.com/file/75pDUXuB/teste7consertado.html


Última edição por Mannoroth em Qui 14 Abr 2011, 22:42, editado 1 vez(es)
avatar
Ranking : Nota B
Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Número de Mensagens : 2490
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 1 Insignia 3x 0
Reputação : 52

Prêmios
   : 0
   : 2
   : 1
Ver perfil do usuáriohttp://xcreatorgames.weebly.com/

Re: Animação de ações do Player

em Qui 14 Abr 2011, 22:40
Amigão, dei um edit na sua engine. Ficou bem facil agora e está funcionando corretamente. Veja Engine
Pra aumentar o tempo de exposição, apenas adicione uma imagem ao final do sprite do soco.
Flws!
avatar
Data de inscrição : 21/12/2008
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

Re: Animação de ações do Player

em Qui 14 Abr 2011, 23:00
@Mannoroth: Realmente me desculpe pela minha ignorancia, eu não havia testado essa sua forma diretamente(so disse que tinha pensado nela tbm), mas antes de ver essa sua engine alterada eu tentei algo parecido e acabou por dar certo.

Ainda nao olhei sua engine, mas deve ser algo parecido:

teste7.gmk

Desculpe novamente, e todos...obrigado pela ajuda, acho que agora ta tudo OK
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum