Lenzs Games
Novato
Novato
Autor
Mensagens: 5
Registrado em: Qua Mar 16, 2016 4:29 pm
Karma: 10

Direção do tiro em top down

Ter Jul 09, 2019 8:25 pm

Opa, eu to fazendo um jogo top down com movimentos em 4 direções, movimentado apenas nas setas do teclado, mas como sou iniciante, eu não sei como fazer o tiro sair na direção em que o objeto ta virado.

Alguem me ajuda por favor.

Tags:
 
Avatar do usuário
LLGD
Membro
Membro
Mensagens: 21
Registrado em: Seg Nov 12, 2018 2:01 pm
Karma: 14

Re: Direção do tiro em top down

Qua Jul 10, 2019 8:15 am

Existem várias formas de fazer isso, veja que precisamos saber qual o tipo de movimento você está usando.
  • Você aperta para a direita e o personagem troca a sprite para a direita?
    Se for assim, você pode usar no evento que você quer atirar (botão esquerdo do mouse como exemplo):
    var tiro = instance_create(x,y,objTiro); //Cria o objeto tiro
    switch(sprite_index) //Aqui criamos um interruptor que vai selecionar qual sprite o personagem está
    {
        case sprPersonagemDireita: //Se o personagem estiver apontando para a direita
            tiro.hspeed = 5; //Define que o tiro deve ir para a direita
        break;
        case sprPersonagemEsquerda:
            tiro.hspeed = -5;
        break;    
        case sprPersonagemCima:
            tiro.vspeed = -5;
        break;
        case sprPersonagemBaixo:
            tiro.vspeed = 5;
        break;
        default:
            show_message("A sprite do personagem não é nenhuma das citadas acima.");
            with(tiro)
            {
                instance_destroy();
            }
        break;
    }

  • Você aperta para a direita e a rotação da imagem se torna 0?
    Caso o image_angle do personagem vire, e você não troque as sprites, no evento que você quer atirar (botão esquerdo do mouse como exemplo):
    var tiro = instance_create(x,y,objTiro); //Cria o objeto tiro
    tiro.direction = image_angle; //Define que a direção do tiro é a mesma do angulo do personagem
    tiro.speed = 5; //Define a velocidade do tiro.
    tiro.image_angle = image_angle; //Define que o angulo da imagem do tiro deve ser igual do personagem (no caso dos tiros em forma de gota por exemplo)

Quem está online

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