Comece seu shooter de bullet-hell com uma fileira de tiros entrantes e uma lacuna que o jogador pode alcançar. Em uma visão fixa de cima, o jogador deve ser capaz de encontrar sua nave, ver quais faixas estão prestes a se encher e mover-se para a abertura antes que a fileira chegue. Use uma segunda salva com uma lacuna diferente para ver se o mesmo aviso ainda lhes dá uma passagem.
O hangar fictício abaixo oferece cinco faixas, um emissor hostil e duas chances de revidar. Você pode calcular a rota segura no papel e, em seguida, comparar essas posições com o protótipo que a IA ajuda você a construir. A mesma configuração oferece uma maneira de investigar um acerto que parece incorreto.

Separe a casca da nave de sua hitbox
Desenhe um hangar compacto com cinco faixas paralelas, numeradas de 1 a 5 na visão de depuração. A nave começa na faixa 1 em uma linha de defesa horizontal perto da parte inferior. Ela pode permanecer parada ou mover-se uma faixa para a esquerda ou para a direita por tick. Coloque o emissor acima das faixas e faça cada fileira de projéteis viajar em direção à linha. Use um contorno fino para avisar que uma faixa vai se encher, depois formas sólidas para tiros ativos. Um jogador deve ser capaz de dizer se um ataque está chegando ou já atingiu a nave.
Dê à nave um núcleo de colisão circular pequeno e mostre-o no centro da casca. As asas podem se estender além dele. Isso permite que o jogador julgue o contato usando uma marca consistente, mesmo que troque para uma nave com uma silhueta diferente.
Para este modelo, coloque os centros das faixas a uma unidade de distância. Use um raio do núcleo de 0.18 unidades e um raio do projétil de 0.32. Os dois círculos tocam ou se sobrepõem quando seus centros estão a no máximo 0.50 unidades de distância. Teste o limite com os centros alinhados na linha de defesa. Uma separação horizontal de 0.45 deve registrar um acerto, enquanto uma separação de 0.55 deve passar. Mantenha o projétil visível próximo ao seu tamanho de colisão, para que o teste corresponda ao que o jogador vê.

Passe por duas lacunas e dois tiros de retorno
Após a reinicialização, o relógio começa no tick 0. Na primeira versão, o emissor avisa no tick 1 e a primeira fileira chega no final do tick 3. A fileira tem tiros nas faixas 1, 2, 3 e 5. A nave pode usar três movimentos para alcançar a faixa 4. No tick 4, a fileira desaparece e a nave pode disparar um tiro de retorno.
O segundo aviso começa no tick 5. Sua fileira atinge a linha de defesa no final do tick 7 e deixa a faixa 2 livre. A partir da faixa 4, a nave precisa de dois movimentos para alcançar a faixa 2 e pode esperar lá pelo último tick. Dispare novamente no tick 8 para limpar a sala. Um projétil que atinge o núcleo encerra a tentativa.
| Tick | Entrada | Faixa após mover | Resultado esperado |
|---|---|---|---|
| 0 | Esperar | 1 | A linha de base começa sem aviso |
| 1 | Direita | 2 | O primeiro aviso é visível |
| 2 | Direita | 3 | A nave cruza uma faixa de perigo futura antes do impacto |
| 3 | Direita | 4 | A primeira fileira atinge a linha e erra o núcleo |
| 4 | Disparar | 4 | Primeiro acerto confirmado no emissor |
| 5 | Esquerda | 3 | O segundo aviso é visível |
| 6 | Esquerda | 2 | A nave alcança a segunda lacuna |
| 7 | Esperar | 2 | A segunda fileira atinge a linha e erra o núcleo |
| 8 | Disparar | 2 | O segundo acerto confirmado limpa a sala |
Aplique o movimento antes de verificar a chegada da fileira, depois processe qualquer tiro de retorno. Essa ordem permite que um movimento no tick 3 conte. Se você verificar a colisão primeiro, as entradas exatas na tabela deixam a nave na faixa 3 no momento em que a fileira chega.
Peça à IA para construir a sala e um controle de etapas
O criador de shooters espaciais da SEELE fornece um ponto de partida para descrever uma nave, fogo entrante e espaço para desviar. Dê a ele um encontro e uma maneira de passar por ele, para que você possa verificar as regras subjantes antes de ajustar o ritmo. Trate a primeira construção como algo a inspecionar junto com a planilha.
Construa uma sala fixa de shooter de navegador vista de cima. Use cinco faixas espaçadas
a uma unidade de distância, uma nave do jogador na linha de defesa inferior e um
emissor inimigo acima. Na reinicialização, comece no tick 0, faixa 1 e zero acertos.
Permita ficar parado, esquerda ou direita a cada tick, no máximo uma faixa adjacente.
Mostre contornos finos para faixas de perigo futuras e tiros ativos sólidos.
Avisar no início do tick 1 para as faixas 1, 2, 3 e 5. A primeira fileira
atinge a linha de defesa no final do tick 3. Avisar no início do
tick 5 para as faixas 1, 3, 4 e 5. A segunda fileira chega no tick 7.
Aplique o movimento antes da colisão de chegada. Use um raio do núcleo do jogador
de 0.18 unidades e um raio do projétil de 0.32 unidades. Uma distância de
0.50 ou menos conta como contato. O contato com o núcleo encerra a execução.
Mostre um marcador de núcleo visível independente das asas da nave.
Aceite uma nova pressão de Disparar no tick 4 e uma no tick 8. Cada tiro aceito
adiciona um acerto. Uma tecla mantida não conta como uma nova pressão, e
tiros fora de uma janela não adicionam acertos. Dois acertos limpam a sala.
Adicione um controle de etapa de depuração para um tick de cada vez, além de uma maneira de
verificar a colisão em deslocamentos de 0.45 e 0.55 unidades. Mostre tick, faixa,
estado da pista e acertos confirmados na visão de depuração. Reiniciar limpa
o estado e restaura a nave, o emissor, o relógio e as janelas de disparo.
Antes de executar o rastreamento completo, confirme que a nave não pode pular da faixa 1 para a faixa 3 em um tick. Em seguida, execute a primeira salva da faixa 1 com uma espera deliberada no tick 1. Após dois movimentos para a direita, a nave deve estar na faixa 3 e levar um acerto. Verifique os deslocamentos de quase contato separadamente. Essas duas verificações ajudam você a distinguir um problema de tempo de um problema de colisão.
Para o tratamento de entrada, pressione Disparar no tick 3 e mantenha pressionado até o tick 4. A contagem de acertos deve permanecer em zero. Repita com uma nova pressão no tick 4 para verificar se conta uma vez. Após um acerto ou uma vitória, reinicie e verifique se o relógio mostra o tick 0 e se ambas as salvas estão disponíveis novamente. O guia para verificar um jogo de IA em pequenas etapas pode ajudar você a transformar uma verificação falha em uma solicitação de revisão focada.
Dê ao primeiro aviso mais um tick
Na linha de base, o jogador tem tempo suficiente para alcançar a primeira lacuna após ver o aviso. Para permitir um tick de hesitação, mova esse aviso para o início do tick 0. O tick 0 existe em ambos os layouts. Mantenha os tempos de lançamento e chegada dos projéteis, as faixas ocupadas, a velocidade de movimento, o segundo aviso e as janelas de fogo de retorno fixos.

| Primeira pista | Esperar um tick após vê-la | Movimentos para a direita antes da chegada | Faixa no tick 3 |
|---|---|---|---|
| Início do tick 1 | Esperar no tick 1 | Ticks 2 e 3 | 3, acerto |
| Início do tick 0 | Esperar no tick 0 | Ticks 1, 2 e 3 | 4, seguro |
A planilha dá ao aviso anterior um tick extra de tempo de movimento. Na sua própria construção, verifique se um jogador de primeira vê o contorno e reconhece a faixa vazia antes de se comprometer com uma direção. Se o jogador notar o aviso, mas escolher uma faixa marcada, ajuste o que a pista comunica antes de estendê-la novamente.
Mantenha o primeiro padrão pequeno o suficiente para diagnosticar
Construa ambas as salvas antes de adicionar tiros mais rápidos ou outro emissor. Observe a faixa do jogador na chegada, verifique se o acerto concorda com o marcador do núcleo e use a sequência de entrada registrada quando alterar uma regra. Comece seu protótipo de bullet-hell com o criador de shooters espaciais da SEELE e compare sua primeira sala com o rastreamento de duas salvas.
Perguntas frequentes
Um tiro tocando uma asa deve contar como acerto?
Neste protótipo, use o centro marcado como o núcleo de colisão. Um tiro que raspa a parte externa da asa pode passar se errar esse núcleo. Mantenha o marcador visível e use uma verificação de contato próximo para captar discrepâncias entre a animação e a regra de dano.
E se a animação do tiro e o relógio do jogo discordarem?
Use o relógio do jogo para decidir quando verificar uma colisão, depois sincronize a animação com esse evento. Passe por uma chegada e compare a posição da fileira com o tick registrado. Uma fileira que ainda parece distante quando o dano ocorre precisa ter seu tempo ou exibição corrigido.
Como posso marcar uma faixa segura sem depender de cor?
Deixe a lacuna livre dos contornos de aviso e dê às faixas ocupadas uma forma tracejada distinta. Faça os tiros ativos sólidos com uma borda visível. Verifique a cena em escala de cinza e em seu tamanho normal de jogo para ver se a lacuna e a fileira de projéteis permanecem reconhecíveis.
Quando devo adicionar padrões diagonais ou em movimento?
Primeiro, verifique se um jogador pode ler a fileira, mover-se para a lacuna e identificar por que um acerto aconteceu. Em seguida, introduza uma nova regra de movimento em um encontro curto. Mantenha a fileira antiga disponível para que você possa dizer se a nova direção ou os controles básicos causaram um problema.


