Existem inumeras tutoriais sobre isto, mas no caso posso te explicar como fazer, pois você
não disse a Engine que está usando.
Você precisará definir as coordenadas do evento projetil e dos eventos inimigos que podem receber dano ou mortos pelo projetil.
Evento Projetil: Pagina 1 (Ativado por Switch "Pode lançar poder")
-Sem gráfico
-Deve estar em processo paralelo:
<>Condição: Tecla - X
<>Variavel [X-Jogador] = Personagem Coord X
<>Variavel [Y-Jogador] = Personagem Coord Y
<>Condição: Personagem - Olhando para Baixo
<>Variavel [Y-Jogador] + 1
<>Variavel [Direção do tiro] = 1
<>
:Fim
<>Condição: Personagem - Olhando para Cima
<>Variavel [Y-Jogador] - 1
<>Variavel [Direção do tiro] = 2
<>
:Fim
<>Condição: Personagem - Olhando para Direita
<>Variavel [X-Jogador] + 1
<>Variavel [Direção do tiro] = 3
<>
:Fim
<>Condição: Personagem - Olhando para Esquerda
<>Variavel [X-Jogador] - 1
<>Variavel [Direção do tiro] = 4
<>
:Fim
<>Teleportar Evento: Este Evento [Var[X-Jogador],Var[Y-Jogador]]
<>Switch: [lançar energia] - ON
<>
:FIM da Condição
<>
Evento Projetil: Pagina 2 (Ativado por Switch "Pode lançar poder")
- Com gráfico do projetil em constante animação
- Deve estar em processo paralelo:
<>Comentário: ########## Coordenadas Projetil ##########
<>Variavel [X-Projetil] - Este Evento - Coord X
<>Variavel [Y-Projetil] - Este Evento - Coord Y
<>Condição: Variavel [Direção do tiro] = 1
<>Mover Evento - Este evento: Andar Passo para baixo (Modo Repetir)
<>Variavel [Y-Projetil] + 1
<>
:Fim
<>Condição: Variavel [Direção do tiro] = 2
<>Mover Evento - Este evento: Andar Passo para Cima (Modo Repetir)
<>Variavel [Y-Projetil] - 1
<>
:Fim
<>Condição: Variavel [Direção do tiro] = 3
<>Mover Evento - Este evento: Andar Passo para Direita (Modo Repetir)
<>Variavel [X-Projetil] + 1
<>
:Fim
<>Condição: Variavel [Direção do tiro] = 4
<>Mover Evento - Este evento: Andar Passo para esquerda (Modo Repetir)
<>Variavel [X-Projetil] - 1
<>
:Fim
<>Comentário: ########## Coordenadas Inimigo A ##########
<>Variavel [X-Inimigo_A] - EV Inimigo A - Coord X
<>Variavel [Y-Inimigo_A] - EV Inimigo A - Coord Y
<>Condição: Variavel[X-Projetil] = Variavel[X-Inimigo A]
<>Condição: Variavel[Y-Projetil] = Variavel[Y-Inimigo A]
<>---->Evento de dano no inimigo A
<>Variavel [Direção do tiro] = 0
<>Switch: [lançar energia] - OFF
<>
:Fim
<>
:Fim
<>Comentário: ########## Coordenadas Inimigo B ##########
<>Variavel [X-Inimigo_B] - EV Inimigo B - Coord X
<>Variavel [Y-Inimigo_B] - EV Inimigo B - Coord Y
<>Condição: Variavel[X-Projetil] = Variavel[X-Inimigo B]
<>Condição: Variavel[Y-Projetil] = Variavel[Y-Inimigo B]
<>---->Evento de dano no inimigo B
<>Variavel [Direção do tiro] = 0
<>Switch: [lançar energia] - OFF
<>
:Fim
<>
:Fim
<>Comentário: ########## Pausa para evitar LAG ##########
<> : Modifique dependendo da sua versão do Rpg Maker
<>Intervalo:15 fps
<>
Só não lembro como criar uma condição para quando o projetil colidir a paredes venha à desaparecer.
Em todo caso está uma das várias tutoriais deste tipo de sistema:
Rpg Maker 2000:
https://centrorpg.com/index.php?topic=9236.0https://centrorpg.com/index.php?topic=19704.0Rpg Maker VXACE:
https://centrorpg.com/index.php?topic=4605.0https://centrorpg.com/index.php?topic=3567.0Rpg Maker MV:
https://centrorpg.com/index.php?topic=16124.0Não achei pra nenhuma outra engine.
Se você estiver usando o VX vai ter que adapatar um destes ou seguir minhas instruções.