[Resolvido] Ataque e salto do personagem

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 21 Jan 2015, 15:23

Olá a todos..

Vou tentar detalhar o meu problema da melhor forma possível, e quando der vou por os códigos aqui para ficar mais claro..

Primeiro problema

É o seguinte, estou usando MEFs para criar os movimentos do meu personagem, até o momento tenho os estados para andar e ficar parado funcionais, e já tenho os estados pulando e atacando programados.

Porém nos estados pulando e atacando existe uma grande diferença para os outros estados.
Enquanto no estado andando tudo que preciso fazer é rodar um sprite quantas vezes for preciso do personagem caminhando, no estado atacando eu preciso fazer apenas um ciclo deste ataque, preciso que cada vez que clique no botão de ataque ele anime apenas uma vez a sequencia do sprite, o mesmo serve para o pulo.

E ai entra o segundo problema.

Segundo problema

No segundo problema é que quando pulo e durante o salto aperto para atacar a ação do pulo acaba e ele cai exatamente na posição que estava durante o pulo, eu preciso que ele vá até o fim do pulo atacando, isso acontece provavelmente por que quando clico para atacar durante o estado do pulo ele encontra o if no estado pulando que diz que, quando atacar vá para o estado pulando, e neste estado não tem nada sobre o pulo então saindo do estado pulando ele vai obviamente cair.

Bem estes são os dois problemas, acho bem complexo de resolver, mas provavelmente existem engines ou alguém que já tenha tido estes problemas e possa me ajudar.

Obrigado

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por Mateus O de Andrade em Qua 21 Jan 2015, 15:38

Boa tarde Colega,
Bom, quanto as suas dúvidas:

Para a primeira é bem simples: Crie uma variável Ex: Atacando e para efetuar o ataque,

Código:

If atacanto=false
{
atacando=true
//Coloque seu código
}


No evento de termino do ataque basta acrescentar um "atacando=false" para liberar o ataque novamente.

O segundo você mesmo já respondeu: Quando ele vai para o estado atacando ele executa tal estado.
Basta reler seu código e achar o que está interrompendo a ação de pulo.

Está meio vago pois não tenho muito tempo agora.
Espero ter ajudado.

Boa sorte carinha.

Mateus O de Andrade

Ranking : Nota D
Número de Mensagens : 399
Idade : 31
Data de inscrição : 25/03/2014
Reputação : 37
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 21 Jan 2015, 15:47

Sobre as respostas..

A primeira não soluciona meu problema.. Quando eu clico no botão de ataque, ele entra no estado atacando, e então neste estado eu seto o sprite atacando.

Porém ele tem que fazer a animação do ataque apenas uma vez, mas o que acontece é que ele fica repetindo a animação até sair do estado, queria uma maneira de executar a animeção do sprite uma vez apenas.

E sobre a segunda resposta, eu sei o que causa o problema, como eu disse no estado ataque não tem nada que diga "continue no ar" até por que se não eu teria que ter dois estados atacando um para quando ele estiver no ar e um para quando não estiver..
Preciso saber se tem uma outra forma mais simples de fazer esse ataque que seja tanto para quando estiver no ar quanto para quando estiver no chão

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por Sewer Crawler em Qua 21 Jan 2015, 16:00

Já tentou diminuir a image_speed ou usar o evento Animation end?

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 21 Jan 2015, 16:13

image_speed só diminuiria o tempo de animação do meu sprite mas continuaria a rodar sem parar eu preciso que rode apenas uma vez.. E Animation end nunca vi, não sei como funciona..

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por Sewer Crawler em Qua 21 Jan 2015, 16:32

Tenta assim
Código:
//Other >> Animation End
image_speed=0//ou muda pro outro estado

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 21 Jan 2015, 16:52

Como verificar se é "Animation End"? (Isso tu quis dizer como sendo a última imagem do sprite certo?)

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por WellingtonBecker em Qua 21 Jan 2015, 18:34

No evento Animation End do player:

Código:

if sprite_index=spr_atacando
{
sprite_index=sprite_que_deseja//coloque aqui a sprite que deseja quando terminar a animação de ataque
}

WellingtonBecker

Ranking : Nota D
Número de Mensagens : 820
Idade : 35
Data de inscrição : 09/05/2013
Notas recebidas : D
Reputação : 105
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 21 Jan 2015, 19:29

Essa solução faz travar na primeira imagem do step animado, eu preciso que seja executado um ciclo inteiro..


Última edição por fernando.munizerthal em Qua 21 Jan 2015, 20:20, editado 2 vez(es)

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por WellingtonBecker em Qua 21 Jan 2015, 19:42

Humm, modifique assim então:
Código:

if sprite_index=spr_atacando && image_index=sprite_get_number(sprite_index)-1
{
sprite_index=sprite_que_deseja
}

WellingtonBecker

Ranking : Nota D
Número de Mensagens : 820
Idade : 35
Data de inscrição : 09/05/2013
Notas recebidas : D
Reputação : 105
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 21 Jan 2015, 20:19

Descobri o que tenho que fazer para o primeiro problema \o
É simples porém complicado hehe
Seguinte, o que preciso é parar o sprite quando ele terminar de executar a animação uma vez completa..

Eu preciso então fazer isso:
if(round(Player_Obj.image_index) == Player_Obj.image_number)

Ou melhor, quando a imagem atual for igual a última image, ai nesse if coloco o que preciso..

Porém ai vem o problema eu uso draw_sprite_ext no objeto do meu personagem.. E quando vou usar as variáveis image_index e image_number elas não retornam valores corretos apenas 0 ou -1.. provavelmente por eu usar draw, vocês sabem como rastreio a imagem atual do sprite (subimagem) neste caso?

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por SirLeccus em Qua 21 Jan 2015, 21:02

O Game Maker tem alguns probleminhas com números reais... Tente isso:

if(floor(Player_Obj.image_index) == floor(Player_Obj.image_number))

SirLeccus

Número de Mensagens : 26
Idade : 17
Data de inscrição : 05/01/2015
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 21 Jan 2015, 23:20

Não esta funcionando, por que o meu personagem é montado com draw e não com um sprite indexado..
Então sprite_index sempre retorna -1 ou 0 não lembro agora..

Tem que existir outra maneira de capturar a imagem atual do sprite quando é feito com draw..

Estou pesquisando aqui e pode ter algo a ver com a máscara do objeto, mas não entendo como usar ainda..

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por SirLeccus em Qua 21 Jan 2015, 23:44

Uma solução temporária, até você (ou alguém) descobrir alguma coisa, é utilizar alarms.

SirLeccus

Número de Mensagens : 26
Idade : 17
Data de inscrição : 05/01/2015
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 21 Jan 2015, 23:53

Sou péssimo com alarms Mad

Mas estou utilizando máquina de estados.. Já tentei fazer umas gambiarras que até funcionam mas bugam direto, precisaria ser assim..

Se caso não tenha ficado claro para alguém eu uso o draw_sprite_ext para criar o meu personagem e preciso conseguir o número da subImagem atual (Imagem x do sprite) e o número de subImagens do mesmo..

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 28 Jan 2015, 19:00

Pessoal desculpem o post duplo e desculpem reviver..
Mas é melhor que postar a mesma dúvida novamente..

Ainda não consegui resolver essa merda hehe e faz uma semana e ninguém mais visualizou o tópico.. Estou realmente sem mais ideias pra continuar já tentei muitas coisas.. o problema ainda é o mesmo..

Mas resumindo:

Uso o draw_sprite_ext para criar o meu personagem e preciso conseguir o número da subImagem atual (Imagem x do sprite) e o número de subImagens do mesmo..

Valeu galera, to desesperado aqui Razz  

computador

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por Sewer Crawler em Qua 28 Jan 2015, 20:39

Não aparece nenhum usuário mais experiente pra te ajudar com Game Maker e ainda querem falar de outras engines neste fórum...
Pra subimagem atual, não é só usar "image_index" como argumento?

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 28 Jan 2015, 21:02

Também pensei que era, porém não..

Acho que pelo fato de eu estar usando o método "draw_sprite_ext" para criar meus sprites ele não encontra o "image_index", estou usando uma máscara para colisões já pelo fato de não usar sprites e sim o método citado antes.. Deve existir alguma forma..

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por SirLeccus em Qua 28 Jan 2015, 22:10

Ajudaria bastante se você passasse os argumentos que usa no draw_sprite_ext. A gente precisa saber o que você está colocando no image_index, porque se há animação, deve ser uma variável.

SirLeccus

Número de Mensagens : 26
Idade : 17
Data de inscrição : 05/01/2015
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por Sewer Crawler em Qua 28 Jan 2015, 22:33

Pode dizer exatamente o que vc quer?
Tem como citar um jogo conhecido pra termos ideia?

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 28 Jan 2015, 22:59

Okay, vou detalhar o máximo possível.. Qualquer dúvida eu comento mais..

O jogo é em plataforma 2D..
No momento do ataque quero obter a sub imagem atual do sprite e verificar quando chegar na sub imagem X.

O meu objeto tem no evento draw o seguinte código:
Código:

    draw_sprite_ext(corpo_Personagem,sprite_index,x,y,xscale,1,0,real(global.cor_Personagem),1);
    draw_sprite_ext(get_IdSprite(cabelo_Personagem),sprite_index,x,y,xscale,1,0,real(global.cor_cabelo),1);
    draw_sprite_ext(get_IdSprite(camisa_Personagem),sprite_index,x,y,xscale,1,0,real(global.cor_camisa),1);
    draw_sprite_ext(get_IdSprite(calca_Personagem),sprite_index,x,y,xscale,1,0,real(global.cor_calca),1);
    draw_sprite_ext(get_IdSprite(olho_Personagem),sprite_index,x,y,xscale,1,0,real(global.cor_olhos),1);
    draw_sprite_ext(arma_personagem,sprite_index,x,y,xscale,1,0,-1,1);

Tenho um draw_sprite_ext para cada parte do corpo do meu personagem. E adiciono uma máscara no mesmo de um corpo inteiro..

E para a animação e movimentação utilizo máquinas de estado finito..

Sem ser isso acho que as demais informações não são muito importantes..

Objetivo:
O que quero é simples, preciso fazer o personagem no momento em que atacar executar um sprite animado, porém eu quero que execute apenas uma vez este sprite, da sub imagem 0 até a última e depois pare..
Para isso eu pretendo usar um if onde verifico a sub imagem atual e quando a última saio do estado atacano..

Exemplos:
O meu jogo é para ser similar ao MapleStory e Castle Crashers..

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por Sewer Crawler em Qua 28 Jan 2015, 23:10

Vc está usando "sprite_index". Ali não deveria ser "image_index"?


Última edição por Sewer Crawler em Qua 28 Jan 2015, 23:15, editado 1 vez(es)

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 28 Jan 2015, 23:13

Fiz a troca, mas deu no mesmo..

EDITADO:

Eu acho que o problema se da por eu não ter nenhum sprite definido para o objeto..

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por vinians em Qua 28 Jan 2015, 23:21

Amigo, para sua pergunta inicial:
imagem atual do sprite:
image_index,
numero de imagens:
image_number,
Para fazer o que voce descreveu:
quando mudar o sprite para a sequencia de movimentos coloque:
Código:

sprite_index = sprite_do_movimento; // substitua aqui
image_index = 0; //primeira imagem do movimento
image_speed = 0.5; // se ja nao estiver setado
depois coloque no Evento:
Other->Animation End
Código:

image_speed = 0;
sprite_index = sprite_anterior_ao_movimento;
Assim vc nao precisa de image_number.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 28 Jan 2015, 23:46

Isso funcionária se eu não estivesse usando máquinas de estados..

Na verdade funcionou, o problema é que o end step agora afeta todos os meus estados.. E deveria afetar apenas o estado ataque.

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por Sewer Crawler em Qui 29 Jan 2015, 00:01

Eu tinha essa engine, mas n sei se tem a ver com o que vc precisa.
https://app.box.com/s/kb42yuumpgcw047yk5q1ovho1r5kspzu

Sewer Crawler

Número de Mensagens : 236
Idade : 23
Data de inscrição : 08/10/2014
Reputação : 27
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por vinians em Qui 29 Jan 2015, 00:05

Verifique o estado no Animation End:
Código:

switch(state) {
case 0:
  // se for o estado zero faça outra coisa ou nada
  break;
case 1:
  image_speed = 0;
  sprite_index = sprite_anterior_ao_movimento;
  break;
}
Assim verificando a maquina de estados deve funcionar.
Flws!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qui 29 Jan 2015, 08:26

Sewer Crawler ainda não vi a engine assim que voltar para minha casa vou ver..

vinians eu estava pensando algo assim, não cheguei a implementar nada.. Fiz uns testes que não funcionaram, mas nada muito sério, hoje a noite vou tentar fazer algo mais completo desta maneira e posto os resultados..

-- EDITADO --

Esta terminando muito rápido! Mad
Executa apenas uma sub imagem agora e vai para o próximo estado..


Última edição por fernando.munizerthal em Qua 18 Fev 2015, 13:45, editado 1 vez(es)

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por fernando.munizerthal em Qua 18 Fev 2015, 13:50

Resolvido! formado

Galera descobri uma maneira de resolver o meu problema, infelizmente não vai poder ser de nenhuma maneira que foi colocada como sugestão aqui.. (Não sei por que as sugestões não funcionaram, ao meu ver estão corretas sim, mas por algum bug do GameMaker talvez não funcionou para mim da forma que o resto esta implementado)

Por esse fato, eu irei organizar meus códigos e assim que tiver um tempo vou postar o que tive que fazer pra tudo funcionar, vou postar aqui mesmo neste post, então ainda não tranquem o mesmo por favor..

Assim que for possível eu posto as gambiarras, serão muito úteis pra mais de um garanto.. hehe ;)

Cool

fernando.munizerthal

Número de Mensagens : 76
Idade : 22
Data de inscrição : 17/10/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Ataque e salto do personagem

Mensagem por Conteúdo patrocinado Hoje à(s) 20:04


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum