Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Dúvida sobre hack n slash

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
jonnyall
Membro
Membro
Reações: 0
Mensagens: 59

Dúvida sobre hack n slash

Mensagem por jonnyall » Qua Mai 03, 2017 9:03 pm

    O resumo é os seguinte, eu tenho um projeto de jogo chamado "Cleaning Zombies" , só que ele ficou parecido muito com jogos "Legend of Zelda" no quesito jogabilidade, eu planejava algo que desse para dar golpes seguidos que nem jogos de luta (com direito a combos). Uma vez que ele enfrenta muitos inimigos de uma vez só...

   Agora eu peço humildemente, tem como me dar um tutorial de hack n slash ou engine só para eu ver como é o procedimento ? Ou até mesmo me passar por auto a ideia de lógica de como seria a progamação de danos seguidos ?

Link para o dowload do jogo:
http://www.tgmbrasil.com.br/viewtopic.php?f=29&t=1504

Obrigado pela atenção :rsrs:
AS: Jonnyall

Imagem

Avatar do usuário
Thiago Silva Thiago
Membro
Membro
Reações: 0
Mensagens: 25

Re: Dúvida sobre hack n slash

Mensagem por Thiago Silva Thiago » Qui Mai 04, 2017 3:26 am

"dar"
Você está pedindo algo pronto pra você.
Isso não me parece muito humilde kkkkkkk
To zoando colega
Basicamente você vai precisar de uma variável para determinar a ação atual.
Creat - 

Código: Selecionar todos

act = "idle"; // idle é parado.
dontmove = 0; // variavel que impede movimento
step

Código: Selecionar todos

//tx sempre sera reduzido.
if (tx > 0)
tx -= 1;
if (dontmove > 0)
dontmove -= 1;
else
{
    //ele verificou se esta em condições de se movimentar 
    //aqui vamos pegar a direcao pressionada pelo teclado
    var haxys ,vaxys;
    haxys = 0;
    vaxys = 0;
    if (keyboard_check(vk_up))
    vaxys = -1;
    if (keyboard_check(vk_down))
    vaxys = 1;
    if (keyboard_check(vk_right))
    haxys = 1;
    if (keyboard_check(vk_left))
    haxys = -1;
    //e agora movimenta-lo de acordo com os valores obtidos
    if ((abs(haxys) > 0) or (abs(vaxys) > 0))
    {
        var speedmax = 3;
        hspeed = haxys*speedmax;
        vspeed = vaxys*speedmax;
        if (speed > speedmax)
        speed = speedmax;
    }
    //se não entendeu, não tem problema, o importante de entender é aqui em baixo
    if(keyboard_check_pressed(vk_space))
    tx = 8;//estamos ativando um intervalo da tecla pressionnada, para ser identificada depois
    if (speed > 0)
    {
        //acao dele, caso speed for maior que 0 é "walking"(traducao = andando)
        act = "walking";
        //o resto e so de exemplo de logica
        sprite_index = andando;
        image_speed = speed/10; 
    }
    else
    {
        //acao dele caso speed não(else) for maior que 0 é "idle"(traducao = parado)
        act = "idle";
        sprite_index = parado;
        image_speed = 0; 
    }
    if (tx > 0)
    {
        tx = 0;
        act = "combo 1";//a ação é um inicio de combo, ou seja, combo 1
        sprite_index = atack1;
        image_index = 0;
        image_speed = 0.35;
        dontmove = 1000;//evita mover
    }
}
e no animation end - 

Código: Selecionar todos

//nesse codigo, verificamos se a ação é igual a combo(pegamos uma parte da string "act" para verificação)
//e se for, pegamos qual é o numero do combo
//se for o primeiro, entramos na "case 1"
var in,fn;
in = string_copy(act,1,5);
if (in == "combo")
{
    fn = real(string_copy(act,7,1));
    act = "idle";
    dontmove = 0;
    sprite_index = idle;
    image_speed = 0;
    switch fn
    {
        case 1:
        {
            if (tx > 0)
            {
                //ele apertou espaço, então vamos seguir com o combo
                tx = 0;
                act = "combo 2";//agora é o combo 2
                sprite_index = atack2;
                image_index = 0;
                image_speed = 0.35;
                dontmove = 1000;//evita mover
            }
        }
        break;
        case 2:
        {
            if (tz > 0)
            {
                //ele apertou outra tecla, pra continuar o combo(crie primeiro a var tz,como criou a var tx)
                tx = 0;
                act = "combo 3";//agora é o combo 3
                sprite_index = atack4;
                image_index = 0;
                image_speed = 0.35;
                dontmove = 1000;//evita mover
            }
        }
        break;
    }
}
//se não possuir mais combos, não adicione mais cases
Caso necessite de mais ajuda, entre em contato comigo por mp
20 anos, estudante de linguagens de programação.
Uso Godot Engine.

Avatar do usuário
jonnyall
Membro
Membro
Reações: 0
Mensagens: 59

Re: Dúvida sobre hack n slash

Mensagem por jonnyall » Qui Mai 04, 2017 2:21 pm

Opa, partiu ctrl +c kkkkk zoa, obrigado pelos os códigos, vão ser muito úteis para o meu projeto... Desculpa ai qualquer coisa ^^
AS: Jonnyall

Imagem

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante