Avatar do usuário
DarlesLSF
Membro
Membro
Autor
Mensagens: 46
Registrado em: Qui Set 06, 2018 2:54 am
Localização: Humaitá - RS
Karma: 62

Re: Dúvida sobre animações de batalha

Ter Set 25, 2018 4:09 pm

Única coisa que eu achei chata por enquanto é esse tal de alarm. Deveria ter um comando tipo "wait" pra usar dentro da própria janela de códigos, porque algumas ações precisam esperar outras serem executadas pra dai entrar em ação, e isso de colocar uma parte do código no evento step e outra parte no alarm é ruim.

Tags:
 
Avatar do usuário
Zalliant
Programador
Programador
Mensagens: 52
Registrado em: Ter Ago 02, 2016 9:48 am
Karma: 25

Contato:

Re: Dúvida sobre animações de batalha

Ter Set 25, 2018 4:46 pm

Não entendi muito bem...
Você pode usar os Alarm's para controlar apenas as variáveis e todo o código ficaria no step, assim dando melhor visibilidade ao código no step, é assim que eu faço...
 
Avatar do usuário
None
Colaborador
Colaborador
Mensagens: 122
Registrado em: Sáb Abr 14, 2018 8:11 pm
Karma: 290

Re: Dúvida sobre animações de batalha

Qua Set 26, 2018 12:36 am

Você também pode criar variáveis que funcionam como alarme.
Ao invés de criar um alarme você pode criar espera = room_speed * 2
E no step colocar um espera--
If (espera == 0) ação desejada.
Cachorro-quente!!!

Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
 
Avatar do usuário
Zalliant
Programador
Programador
Mensagens: 52
Registrado em: Ter Ago 02, 2016 9:48 am
Karma: 25

Contato:

Re: Dúvida sobre animações de batalha

Qua Set 26, 2018 12:05 pm

Boa tarde,
Olá None realmente é uma outra forma de criar eventos, mas, eu não costumo e nem gosto de usar assim. Não sei se é o caso, mas eu acho que desta forma use mais memoria.

Exemplo:
evento1 = room_speed * 2; //Ou qualquer outra forma,
if (evento1 >= 50) { ação;  };
if (evento1 >= 100) { ação; evento1 = 0 }; ele retornara o evento assim como o Alarm;

Eu realmente não gosto muito de usar isso, pois temos o alarm para isso, mas cada uma com a sua maneira de programar.
Abraços.
 
Avatar do usuário
DarlesLSF
Membro
Membro
Autor
Mensagens: 46
Registrado em: Qui Set 06, 2018 2:54 am
Localização: Humaitá - RS
Karma: 62

Re: Dúvida sobre animações de batalha

Qua Set 26, 2018 5:53 pm

Alguém me explica pq algumas vezes a animação não sai como deveria? O primeiro gif é como é para ser, já no segundo, percebam a sprite do jogador quando ele vai atacar:
Imagem

Imagem

Sem contar que as vezes ele salta uns frames da animação. É pq o GM executa os comandos muito rápido?
 
Avatar do usuário
Midgard
Novato
Novato
Mensagens: 15
Registrado em: Dom Jan 03, 2016 8:43 pm
Karma: 5

Re: Dúvida sobre animações de batalha

Qua Set 26, 2018 9:34 pm

Identificou se tem um padrão na ocorrência, por exemplo:
inicia fazendo o movimento corretamente e no próximo ataque a movimentação muda, ou a cada dois corretos uma movimentação sai errada, talvez até faz a primeira correta e as demais erradas.

Só pelas imagens identifica-se na segunda imagem que a Sprite da espada vai para frente na metade do caminho e antes do personagem saltar de volta a sua posição inicial, a espada volta para trás. O mais provável é que esteja entrando em algum evento no step no momento que não deveria.
 
Avatar do usuário
Zalliant
Programador
Programador
Mensagens: 52
Registrado em: Ter Ago 02, 2016 9:48 am
Karma: 25

Contato:

Re: Dúvida sobre animações de batalha

Qua Set 26, 2018 9:49 pm

Qual código você usa para o ataque?
Caso queira, isso é para poder analisar melhor. Responda aqui com o código.
 
Avatar do usuário
None
Colaborador
Colaborador
Mensagens: 122
Registrado em: Sáb Abr 14, 2018 8:11 pm
Karma: 290

Re: Dúvida sobre animações de batalha

Qui Set 27, 2018 12:31 am

Zalliant, isso depende do nível de controle que você deseja.
Se eu quero controlar mais detalhadamente um evento eu faço daquela maneira, caso eu queria simplesmente criar um flag ou uma checagem eu uso o alarm.

Em relação ao uso de memória eu honestamente não acho que haja diferença, a não ser que você permita que sua variável de contagem se torne muito negativa.

Sobre a animação, creio que você pode fazer uma checagem em relação às distância.
Por exemplo
If (inimigo_atual.x - x <= 5) image_index = image_number - 2;
Else If (hspeed < 0) image_index = image_number - 1;

No primeiro if você pode testar com o point distance ao invés do método que eu usei, mas basicamente estou checando se minha distância para o inimigo esta pequena (o limite deve estar errado), se estiver ele vai usar a penúltima imagem (que eu acho ser a imagem que ele ataca) de sua sprite, depois se a distância não esta pequena ele vai checar se a hspeed está negativa (ele está voltando) e colocar a última imagem da sprite.
Depois disso você volta ao momento anterior e coloca o image speed novamente.
Cachorro-quente!!!

Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
 
Avatar do usuário
DarlesLSF
Membro
Membro
Autor
Mensagens: 46
Registrado em: Qui Set 06, 2018 2:54 am
Localização: Humaitá - RS
Karma: 62

Re: Dúvida sobre animações de batalha

Qui Set 27, 2018 6:10 am

Zalliant escreveu:
Qual código você usa para o ataque?
Caso queira, isso é para poder analisar melhor. Responda aqui com o código.


Aqui é o código em que ele vai na direção do inimigo:
if (atacandoinimigo == true)
{
    if (inimigo_atual == 1)
    {
    with (obj_player)
        {  
            sprite_index = spr_aff_atacando1;
            image_speed = .22;            
            other.alarm[1] = .47 * room_speed;  // nesse alarm ele aciona a animação do corte da espada
            path_start(atacando_inimigo1,26, 0, true)
            other.atacandoinimigo = false;
        }
    }
}

Aqui é o código em que ele cria a animação do corte da espada:
if (animatknormal == true)
{
audio_play_sound(atacando_inimigo, 1, false);
instance_create(obj_inimigo1.x, obj_inimigo1.y, anima_ataque_normal);
    with (obj_inimigo1)
    {
        image_blend = c_fuchsia;    
    }
alarm[2] = .42 * room_speed;   // nesse alarm ele aciona a volta do personagem
animatknormal = false;
}

E aqui é o código dele voltando do ataque:
if (voltandoataque == true)
{
    with (obj_inimigo1)
    {
        image_blend = c_white;
    }
    with (obj_player)
    {
        sprite_index = spr_aff_voltandoatk;
        path_start(voltando_inimigo1, 30,0, true);
        sprite_index = global.sprite_batalha;
        image_speed = .2;
        other.voltandoataque = false;
    }
}

E sobre a animação do personagem atacando:
Imagem
O tempo dos alarms é o tempo necessário pra essa animação iniciar e terminar. Dai eu troco a sprite novamente só no momento em que o jogador volta do ataque.
Tem algum método pra posicionar um objeto no centro de um sprite? Me refiro ao centro da origem, que a gente determina no editor das sprites:
Imagem
Editado pela última vez por DarlesLSF em Qui Set 27, 2018 7:29 am, em um total de 1 vez.
1
 
Avatar do usuário
DarlesLSF
Membro
Membro
Autor
Mensagens: 46
Registrado em: Qui Set 06, 2018 2:54 am
Localização: Humaitá - RS
Karma: 62

Re: Dúvida sobre animações de batalha

Qui Set 27, 2018 6:19 am

Midgard escreveu:
Identificou se tem um padrão na ocorrência, por exemplo:
inicia fazendo o movimento corretamente e no próximo ataque a movimentação muda, ou a cada dois corretos uma movimentação sai errada, talvez até faz a primeira correta e as demais erradas.

Só pelas imagens identifica-se na segunda imagem que a Sprite da espada vai para frente na metade do caminho e antes do personagem  saltar de volta a sua posição inicial, a espada volta para trás. O mais provável é que esteja entrando em algum evento no step no momento que não deveria.

Isso que eu não entendo, o por que dele fazer isso. Todos as partes dentro do step event são acionadas por alguma variável, não tem pedaços soltos que ocorrem toda hora.
Única coisa que percebi no GM, é que ele executa muito rápido os comandos, algumas coisas sem colocar um alarm junto não funcionam como deveria.
1

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes