[Resolvido] Ataques multiplos entre outros...

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

Resolvido [Resolvido] Ataques multiplos entre outros...

Mensagem por AndersonFG em Qua 16 Fev 2011, 00:06

Estava tentando fazer coisas como emendar ataques, ajustar sprites na tela, alterar sprite no ar ao usar a espada.
E não tive muito êxito, creio que seja por serem coisas novas pra mim, tirando a mudança de sprite, por algum motivo o draw não muda a minha nova adição.

Não faço ideia de como juntar um ataque no outro como os que o zero faz em mega manx4, sem contar que o som do ataque “1” é diferente do som do ataque “2” e do “3”.

Eu penso que seria “1” sprite pro ataque normal, o segundo ataque que já é o combo seria um único sprite já com o ataque normal + o segundo ataque, e o terceiro seria também um único sprite com o primeiro ataque + o segundo + o terceiro... BAhhh...

Resumindo minhas dúvidas são:
1: Criar ataque combo, como aquela sequencia de cortes que o zero faz com a espada em mega man x4
2: Arrumar o Sprite de ataque com espada, ele está saindo fora da tela e eu já tentei muito pontos de origem, (talvez tenha uma técnica para achar ponto certo)
3: Verificar por que o draw não está alterando o Sprite de ataque com espada no ar.
4: Gostaria de saber por que o movimento do meu personagem da uma certa travadinha, eu tentei vários image_speed diferentes e nada, tive melhora mas não 100%.


Vou postar meu .GMK, caso alguém com maior entendimento que o meu queira me ajudar

Mediafire: http://www.mediafire.com/?yaaa22ic3jcd8n2

Megaupload: http://www.megaupload.com/?d=JIZFLF9T

Rapidshare: http://rapidshare.com/files/448141446/plataforma_02_testes.gmk


Última edição por AndersonFG em Qua 16 Fev 2011, 15:04, editado 1 vez(es)

AndersonFG

Número de Mensagens : 22
Data de inscrição : 12/02/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por MatheusReis em Qua 16 Fev 2011, 10:54

Em meus jogos eu sempre faço o seguinte para combos:
No create:
Código:
status="neutro";
Essa variável vai definir o personagem está fazendo.

No step eu englobo todas as ações normais do personagem se o valor da variavel for neutro e ainda dou o inicio à checagem de ataque.

Código:
if status="neutro"{

//codigos normais

if keyboard_check_pressed(tATAQUE) {status="combo1" alarm[0]=2}};

O alarm[0] vai servir de "cooldown time" para poder atacar novamente(e assim poder avançar de combo).
Ponha apenas um "//" no codigo dentro da ação do alarm[0](se não o GM agira como se nada tivesse ocorrido ao alarm[0])
Agora vamos especificar o que vai acontecer quando o status for "combo1"

Código:
if status="combo1"{

sprite_index=spr_ataquecombo1;

//aproveite para mudar a velocidade da animação e outros aki

//Se a tecla de ataque for precionada e o tempo de recarga tiver terminado, avançar para o proximo combo.

if keyboard_check_pressed(tATAQUE) and !alarm[0]{

status="combo2"

alarm[0]=2};

//esse aqui retorna o status a neutro se a animaçao terminar e a tecla de ataque nao for pressionada

if image_index=sprite_get_number(sprite_index)-1 status="neutro"}

Daí pra frente eh so repetir o padrão nos combos 2,3,... até quantos quizer.
Quando chegar no golpe final, é so apagar a parte de checar a tecla de ataque, pois não havera mais sequencia.(Afinal, é o ultimo golpe, certo? =D)

Ontem eu postei uma engine de plataforma simples, lá tem a forma pratica do código acima.
Se quizer ver:Link

Quanto a sprite, basta alinhar a origem da sprite de ataque a um ponto similar do sprite de andar ou parado. Editando o seu jogo eu consegui *-*, mt simples. =D



No draw apenas ponha para desenhar a sprite_index, que tudo fika facil.[apenas lembre se de mudar ela de acordo com a situaçao (parado, correndo,...)]




MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por AndersonFG em Qua 16 Fev 2011, 12:17

Bom, parece que funciona... Mas, preciso saber onde estou errado está acontecendo que ele fica atacando sem parar e o som fica louco...

Código:
if status="neutro"{

if keyboard_check_pressed(ord('S')) && !atirando {status="combo1" alarm[0]=2}};

{
sound_play(snd_espada_atk)
atacando = 20
}

if atacando {
atacando -= 1
}
if status="combo1"{

sprite_index=spr_player_atk;

//aproveite para mudar a velocidade da animação e outros aki

//Se a tecla de ataque for precionada e o tempo de recarga tiver terminado, avançar para o proximo combo.

if keyboard_check_pressed(ord('S')) and !alarm[0]{

status="combo2"

alarm[0]=2};

//esse aqui retorna o status a neutro se a animaçao terminar e a tecla de ataque nao for pressionada

if image_index=sprite_get_number(sprite_index)-1 status="neutro"}

Quanto ao draw, todos estão funcionando, menos o player_jump_atk
Mas, está igual aos outros.. Era pra funcionar
if atacando && !noChao {
draw_sprite_ext(spr_player_jump_atk,image_index,x,y,direita,1,0,c_white,1)


Última edição por AndersonFG em Qua 16 Fev 2011, 12:54, editado 1 vez(es)

AndersonFG

Número de Mensagens : 22
Data de inscrição : 12/02/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por MatheusReis em Qua 16 Fev 2011, 12:50

Faça-o soltar o som apenas quando ele mudar:do status "neutro" para "combo1",do status"combo1" para "combo2". E ative a var atacando quando estiver em qualquer status de ataque, sendo que quando não for: atacando = -1.
Como mostrado a seguir.

Código:
if status="neutro"{

//desativa ataques
atacando=-1;

if keyboard_check_pressed(ord('S')) && !atirando {
status="combo1";
alarm[0]=2;
//assim o som vai tocar apenas uma vez(quando atacar)
sound_play(snd_espada_atk)}};

if status="combo1"{

sprite_index=spr_player_atk;

//ativa a variavel atacando
atacando=20

if keyboard_check_pressed(ord('S')) and !alarm[0]{

status="combo2";

//toca o som de ataque novamente
sound_play(snd_espada_atk);

alarm[0]=2};

if image_index=sprite_get_number(sprite_index)-1 status="neutro"}


MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por AndersonFG em Qua 16 Fev 2011, 13:06

Mathaeuz escreveu:Faça-o soltar o som apenas quando ele mudar:do status "neutro" para "combo1",do status"combo1" para "combo2". E ative a var atacando quando estiver em qualquer status de ataque, sendo que quando não for: atacando = -1.
Como mostrado a seguir.

Isso ai cara... Obrigado!

só uma ultima coisa..

Sobre o draw
Quanto ao draw, todos estão funcionando, menos o player_jump_atk
Mas, está igual aos outros.. Era pra funcionar
if atacando && !noChao {
draw_sprite_ext(spr_player_jump_atk,image_index,x,y,direita,1,0,c_white,1).

Eu sou inciante em GM, mas já peguei algumas coisas do código... Com toda certeza aprendi um pouco com o que vc postou!

AndersonFG

Número de Mensagens : 22
Data de inscrição : 12/02/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por MatheusReis em Qua 16 Fev 2011, 13:20

Acho que o problema nao é ao trocar de sprite:
O problema deve ser que algum código cancela o ataque no meio do ar, por que eu vi a animaçao de Air attack começar mas ser interrompida.

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por AndersonFG em Qua 16 Fev 2011, 13:32

Como você disse, bastava repetir o padrão do combo 1, nos outro... Mas o segundo combo não esta acontecendo.

Código:
if status="neutro"{
atacando=-1;

if keyboard_check_pressed(ord('S')) && !atirando {
status="combo1";
alarm[0]=2;
sound_play(snd_espada_atk)}}

if status="combo1"{
sprite_index=spr_player_atk;

//ativa a variavel atacando
atacando=20

if keyboard_check_pressed(ord('S')) and !alarm[0]{
status="combo2";
alarm[0]=2;
sound_play(snd_espada_atk_duplo)}

if status="combo2"{
sprite_index=spr_player_atk_duplo

atacando=30

alarm[0]=2};

if image_index=sprite_get_number(sprite_index)-1 status="neutro"}

Quanto ao draw, tentar alterar pra ver o que acontece. Se conseguir eu posto aqui o que tava errado.

AndersonFG

Número de Mensagens : 22
Data de inscrição : 12/02/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por MatheusReis em Qua 16 Fev 2011, 13:38

Você apenas cometeu um erro na ordem das {} e esqueceu que o codigo de retornar ao neutro tem que valer para qualquer status de ataque.

Aí esta o códico concertado:
Código:
if status="neutro"{
atacando=-1;

if keyboard_check_pressed(ord('S')) && !atirando {
status="combo1";
alarm[0]=2;
sound_play(snd_espada_atk)}};

if status="combo1"{
sprite_index=spr_player_atk;

//ativa a variavel atacando
atacando=20

if keyboard_check_pressed(ord('S')) and !alarm[0]{
status="combo2";
alarm[0]=2;
sound_play(snd_espada_atk_duplo)}
if image_index=sprite_get_number(sprite_index)-1 status="neutro"};

if status="combo2"{
sprite_index=spr_player_atk_duplo

atacando=30

if image_index=sprite_get_number(sprite_index)-1 status="neutro"};

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por AndersonFG em Qua 16 Fev 2011, 13:49

Continua dando apenas o atk 1, não segue para o atk 2.

AndersonFG

Número de Mensagens : 22
Data de inscrição : 12/02/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por MatheusReis em Qua 16 Fev 2011, 13:52

Pode me mandar um novo link com o .gmk atual?
Preciso olhar como ficou o código agora.

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por AndersonFG em Qua 16 Fev 2011, 13:58

Mathaeuz escreveu:Pode me mandar um novo link com o .gmk atual?
Preciso olhar como ficou o código agora.

http://www.mediafire.com/?7ja3mpxvi1zoy83

ou

http://rapidshare.com/files/448265566/plataforma_02_testes.gmk

ou

http://www.megaupload.com/?d=7CESI9CA

AndersonFG

Número de Mensagens : 22
Data de inscrição : 12/02/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por MatheusReis em Qua 16 Fev 2011, 14:14

Entendi.
1- Você não ativou o Action Alarm[0]



2-Quando você muda de sprite, o game maker mantém a image index antiga.
Mas para um combo, a animaçao tem que ser sempre mostrada desde o inicio.
Para isso, vamos resetar a image_index para 0 sempre que necessitarmos.
Codigo:
Código:
if status="neutro"{
atacando=-1;

if keyboard_check_pressed(ord('S')) && !atirando {
image_index=0;
status="combo1";
alarm[0]=2;
sound_play(snd_espada_atk)}};

if status="combo1"{
sprite_index=spr_player_atk;
image_speed=1;
//ativa a variavel atacando
atacando=20

//
if image_index=sprite_get_number(sprite_index)-1 status="neutro"
//
if keyboard_check_pressed(ord('S')) and !alarm[0]{
image_index=0;
alarm[0]=2;
status="combo2";
sound_play(snd_espada_atk_duplo)}};

if status="combo2"{
image_speed=1;
sprite_index=spr_player_atk_duplo;
atacando=30
if image_index=sprite_get_number(sprite_index)-1 status="neutro"};
3-No draw, você pos:
Código:
(...)} else if atacando {
draw_sprite_ext(spr_player_atk,image_index,x,y,direita,1,0,c_white,1)
}(...)
.
Você nao disse nada para ele desenhar o spr_player_atk_duplo XD
Entao use isso no lugar:
Código:
 else if atacando {
if status="combo1" draw_sprite_ext(spr_player_atk,image_index,x,y,direita,1,0,c_white,1)
if status="combo2" draw_sprite_ext(spr_player_atk_duplo,image_index,x,y,direita,1,0,c_white,1)
}
Isso resolve.

Ainda acho que você deveria estudar mais engines e tentar mais vezes,
a game play ainda está meio...travadissa.


Última edição por Mathaeuz em Qua 16 Fev 2011, 14:24, editado 1 vez(es)

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por AndersonFG em Qua 16 Fev 2011, 14:23

Não ativei, vc não tinha mencionado esse action alarm. E também nunca usei esse comando.

Alias, até hoje eu só sabia fazer dar um atk...

Agora esse Action alarm eu coloco ele como uma variavel ou no lugar do alarm do combo 2?

Você tem me ajudado bastante... Sou grato.

AndersonFG

Número de Mensagens : 22
Data de inscrição : 12/02/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por MatheusReis em Qua 16 Fev 2011, 14:27

Sim eu falei:
O alarm[0] vai servir de "cooldown time" para poder atacar novamente(e assim poder avançar de combo).
Ponha apenas um "//" no codigo dentro da ação do alarm[0](se não o GM agira como se nada tivesse ocorrido ao alarm[0])
No primeiro post kkkk

E... tá no screen shot do meu post anterior o "Event Alarm"(Não é Action, meu erro =x).

E de nada quanto à ajuda Happy

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por AndersonFG em Qua 16 Fev 2011, 14:43

Sim, eu estou apenas estudando as engines.
Ao andar o Zero da uma travadinha, mas isso eu já tentei tudo que é numero no imagem speed o numero atual é o que deu melhor resultado.

Seguinte... Aquele alarm = 2 fica rapido e vc nem chega a ver o sprite do atk2, só o som.

Mas, eu tentei alterar e apenas o atk 1 acontece.

AndersonFG

Número de Mensagens : 22
Data de inscrição : 12/02/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por MatheusReis em Qua 16 Fev 2011, 14:53

Acho que vc sabe que você nao pois todas as frames do combo2 do zero.
Eu mesmo já fiz um megaman com o Zero e sei que está faltando e esta mal alinhado.

Pegue essa versão alterada que o ataque funciona:
Link-MathEdit

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por AndersonFG em Qua 16 Fev 2011, 15:03

Hmmmm
O fato de estar rápido e por não ter todas as imagens que compoe o frame?

Bom, se é isso entao ta certo... bem o caso foi resolvido... Obrigado!

AndersonFG

Número de Mensagens : 22
Data de inscrição : 12/02/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por MatheusReis em Qua 16 Fev 2011, 15:04

U're welcome, dude =D

MatheusReis

Ranking : Nota A
Número de Mensagens : 1087
Idade : 23
Data de inscrição : 13/01/2010
Notas recebidas : B-A-A
Reputação : 30
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 0

http://www.mathaeuz.deviantart.com

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido] Ataques multiplos entre outros...

Mensagem por Conteúdo patrocinado Hoje à(s) 14:38


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