🤔 Para Refletir :
"Fazer um jogo é sempre muito mais difícil do que jogar um jogo..."
- Rafael_Sol_MAKER

[GML] Tiro Rotacional

Polloyusrhyan

Cidadão
Membro
Membro
pá, pá, pá, pá
Juntou-se
05 de Maio de 2020
Postagens
56
Bravecoins
104
Eu postei esse script em outro fórum, então vou copiar o tópico, espero que não se importem.



Criador: Rhyan;
Versão: 1.0;
Termos de Uso: Apenas dar créditos, não importa se é comercial ou não.

Basicamente, iremos fazer um tiro que, ao sair do jogador, vai rotacionar em torno do seu próprio eixo, parecido com o movimento de rotação da Terra.

OBS¹: Não, eu não vou ensinar a fazer um sistema de tiro, apenas o que foi dito acima!
OBS²: Há imagens nos spoilers para ajudar na compreensão.

Ok! Dito isso, vamos começar:

1° - Vamos criar um script (na aba de scripts). Vamos nomeá-lo de... Shoot_Rotation, que tal?

Vf45tAp.png

2° - Nesse script, vamos criar uma variável, ela irá representar o quanto de, como posso dizer... "velocidade" que nosso tiro vai rotacionar. Ela irá ser local:
Código:
var angle_rotation = 15
| OBS: Troque 15 pela velocidade.

vcQF18b.png

3° Nesse mesmo script, vamos colocar esse código, ele irá ser o que vai fazer com que o tiro rotacione:
Código:
image_angle += angle_rotation;


O que esse código faz é, basicamente, adicionar o valor da nossa variável "angle_rotation" ao ângulo do objeto do tiro no mapa.

NgNFVSb.png

4° Agora, vamos ao obj_shoot (esse é o objeto que representa o meu tiro, vá no que representa o seu). Agora, crie um step se você não tiver um (OBS: Se você já tiver um evento de step, você pode ir nele). Neste step, coloque o seguinte código:
Código:
script_execute(Shoot_Rotation);


XLUYcrz.png

OBS: Se no seu jogo tiver mais de um objeto de tiro, faça o mesmo em cada um.

5° Teste seu jogo e... tcharam! Seu tiro agora irá rotacionar (pelo menos é o esperado, mas, se houver algum erro, você pode comentar! 🆗

d4Iq1Aa.png

Bem, é basicamente isso, não é lá muito incrível, mas deixa o tiro com um aspecto mais legalzinho.

Obrigadeiro por ler :XD:.​
 
É possível fazer isso direto no script de tiro do personagem também, assim você não precisa criar um novo script só pra rodar o objeto

C #:
var shoot = /* Criar a instância do tiro */;
  
with(shoot) {
    image_angle += 15;
}

Ou, melhor ainda, adicionar essa rotação direto no step do obj_shoot (sem criar um novo arquivo de script só pra isso), caso a ideia seja que TODAS as instâncias do tiro rotacionem



Valeu pelo tutorial, existe muito tutorial complexo por ai mas os simples passam batido pois as pessoas pressupõem que todos sabem já, então é bom quando criam esses tópicos
 
É possível fazer isso direto no script de tiro do personagem também, assim você não precisa criar um novo script só pra rodar o objeto

C #:
var shoot = /* Criar a instância do tiro */;
 
with(shoot) {
    image_angle += 15;
}

Ou, melhor ainda, adicionar essa rotação direto no step do obj_shoot (sem criar um novo arquivo de script só pra isso), caso a ideia seja que TODAS as instâncias do tiro rotacionem



Valeu pelo tutorial, existe muito tutorial complexo por ai mas os simples passam batido pois as pessoas pressupõem que todos sabem já, então é bom quando criam esses tópicos

Opa, Kaaaw! Realmente, eu costumo fazer em scripts separados porque eu sinto que me organizo mais, mas realmente é melhor não criar mesmo, só são 2 linhas.

Como você disse, a ideia era fazer com que todos rotacionem mesmo.

Poxa, disponha! Realmente.

Muito obrigado por comentar! :>
 
  • Curtir
Reações: Kaw
Voltar
Topo Inferior