Comece seu twin-stick shooter com um movimento que aponta para longe do disparo. Coloque o jogador em uma placa de chão que está prestes a ser ativada e posicione um alvo ao lado. O jogador se afasta com um controle e mira no alvo com outro. O disparo deve vir da nova posição, mesmo quando o jogador está se movendo em uma direção diferente.
O baú de teste fictício abaixo oferece dois disparos e uma caminhada curta até a saída. Use-o para verificar se o movimento, a mira e o disparo permanecem separados antes de adicionar inimigos em movimento ou controles mais rápidos.

Dê entradas separadas para movimento, mira e disparo
Use uma grade de cinco por cinco. Conte as colunas de zero a quatro para o leste e as linhas de zero a quatro para o sul. Comece o técnico em (2, 2) com uma vida. Coloque um alvo fixo em (4, 1) e outro em (1, 4). Defina a saída em (1, 0) e mantenha-a bloqueada até que ambos os alvos sejam eliminados.
Amostrar uma direção de movimento, uma direção de mira e uma entrada de Disparo a cada tick de depuração. Para esta tentativa, cada direção pode ser neutra ou uma das quatro direções cardeais. Você pode usar dois conjuntos de direções do teclado para verificar as regras primeiro. Se adicionar um controle analógico, mapeie seu movimento e mira separadamente e verifique essas entradas no dispositivo que você pretende suportar.

| Fase | O que aplicar | O que verificar |
|---|---|---|
| Mover | Avance uma casa legal ou permaneça parado. Um movimento fora dos limites deixa a posição inalterada. | A entrada de mira não pode mover o jogador. |
| Mirar e disparar | Com o Fire ativo e uma mira não neutra, rastreie um tiro do tile resolvido até o primeiro alvo vivo naquela linha ou até a borda do tabuleiro. | O tiro usa a mira independentemente da direção do movimento. Uma mira neutra não produz tiro. |
| Verifique o chão e a saída | Após o tiro, verifique o tile sob o jogador. Em um tile ativo, perca. Caso contrário, cruzar para a saída desbloqueada vence. | Acertar um alvo não salva o jogador do perigo do chão. |
Use um marcador de aviso no tile (2, 2) para o tick 1 e no tile (2, 1) para o tick 2. Esses são os dois checks de perigo no exercício. Dê a cada alvo uma durabilidade de um acerto. Mantenha recargas e ataques inimigos fora desta sala para que você possa determinar se um erro veio da mira ou da origem do tiro.
Percorra os dois tiros de entrada simultânea
| Tick | Mover, mirar e Fire | Resultado esperado |
|---|---|---|
| 1 | Norte, leste, Fire ativo | Avance para (2, 1), fora do tile ativo. O tiro para o leste acerta o robô em (4, 1). |
| 2 | Oeste, sul, Disparo ativo | Mova-se para (1, 1), longe do segundo tile ativo. O disparo para o sul atinge o robô em (1, 4). A saída é desbloqueada. |
| 3 | Norte, neutro, Disparo inativo | Alcance a saída desbloqueada em (1, 0) e vença. |

O primeiro movimento altera a linha de dois para um, de modo que um disparo para o leste se alinha com o primeiro alvo. O segundo movimento altera a coluna de dois para um, de modo que um disparo para o sul se alinha com o outro. Em ambos os casos, as entradas de movimento e mira devem sobreviver ao mesmo tick. Se o disparo seguir a última direção de movimento, nenhum dos tiros segue a linha pretendida.
Peça à IA por uma arena e um controle por etapas
O criador de jogos com IA da SEELE oferece um ponto de partida para um pequeno jogo com um loop para verificar. Forneça as regras exatas de tiles e entradas, juntamente com a configuração visual. Peça uma visualização de depuração que mostre onde cada tiro começa, para que você possa determinar se um erro veio da mira ou da ordem de ação.
Construa uma área de teste de tiro twin-stick em visão superior para navegador em uma grade de 5 por 5. Use x=0–4 para leste e y=0–4 para sul. Comece em (2,2) com uma vida. Coloque alvos de um golpe em (4,1) e (1,4). Coloque a saída em (1,0), bloqueada até que ambos os alvos sejam eliminados.
Leia os valores independentes de movimento, mira e Disparo a cada tick de depuração. Movimento e mira podem ser neutros ou uma direção cardeal. Aplique primeiro um passo de movimento legal. Ignore passos fora da grade. Não copie a direção do movimento para a mira. Com Disparo ativo e mira não neutra, rastreie um tiro a partir da célula pós-movimento. Acerte o primeiro alvo vivo naquela direção ou deixe o tiro sair do tabuleiro. Mira neutra não produz tiro, mesmo com Disparo ativo.
Após o tiro, verifique a célula do chão sob o jogador. A célula (2,2) está ativa no tick 1 e a célula (2,1) no tick 2. Ficar em qualquer célula ativa no momento da verificação falha a tentativa. Após verificar a segurança, vença na saída desbloqueada. Nenhum perigo adicional ou movimento de alvos.
Mostre os valores de movimento e mira, o início e o fim do tiro e o resultado. Adicione um controle de depuração de um passo. Reiniciar restaura o jogador, a vida, os alvos, a saída e o tick inicial.
Verifique as entradas separadamente antes de executar o rastreamento. A partir de uma célula de teste segura, mire sem movimento e confirme que a posição permanece fixa. Em seguida, segure Disparo com mira neutra enquanto se move e confirme que não há tiro. Execute os dois tiros de exemplo, depois troque movimento e mira no primeiro tick para verificar que o acerto esperado desaparece. Tente ficar na primeira célula ativa e verifique se Reiniciar restaura os alvos originais e a saída bloqueada. O guia para verificar um jogo de IA em pequenas etapas mostra como solicitar uma correção focada após uma verificação falha.
Atualize a pré-visualização após o movimento
Suponha que a pré-visualização da mira use a célula onde o jogador começou o tick. No tick 1, ela apontaria para leste a partir de (2, 2), ao longo da linha errada. No tick 2, ela apontaria para sul a partir de (2, 1), descendo a coluna errada. O tiro real já usa a célula de destino, então a pré-visualização pode divergir mesmo quando o disparo funciona.
Altere apenas a origem da pré-visualização para a posição resolvida. Na planilha, a pré-visualização antiga não corresponde a nenhum disparo e a pré-visualização revisada corresponde a ambos. Os acertos no alvo e as verificações de perigo permanecem os mesmos. Em uma versão compilada, compare a pré-visualização e o disparo juntos durante mudanças rápidas de direção antes de decidir se a indicação é clara.
Mantenha a primeira arena pequena o suficiente para diagnosticar
Construa a sala em torno de um movimento e disparo simultâneos, depois adicione o segundo par de direções. Verifique tanto o raio quanto a posição do jogador antes de introduzir ameaças em movimento. Comece seu protótipo twin-stick com o criador de jogos com IA da SEELE e use o rastreamento de três ticks para ver se os controles permanecem independentes.
Perguntas frequentes
Devo testar primeiro os valores brutos do analógico ou as direções normalizadas?
Comece com direções normalizadas, como norte ou neutro, para que você possa repetir a mesma entrada em qualquer configuração de teste. Verifique os valores brutos do analógico quando adicionar um adaptador de dispositivo. Verifique como ele transforma pequenos movimentos perto do centro em neutro sem afetar o outro analógico.
O que deve acontecer quando a mira retorna ao neutro?
Nesta sala, oculte a indicação de mira e pule o disparo, mesmo quando Fire estiver ativo. Isso fornece uma verificação clara de que a mira é separada do movimento. Se você quiser que a mira persista depois, dê a ela sua própria regra e teste como o jogador a limpa.
Preciso de projéteis visíveis para o primeiro teste de tiro?
Um rastreamento reto é suficiente para verificar a origem e a direção do disparo. Dê a ele uma linha breve ou uma indicação de acerto para que o jogador possa ver o que aconteceu. Se você adicionar tempo de viagem depois, teste-o separadamente, pois um alvo pode se mover depois que um disparo foi lançado.
Quando devo adicionar ameaças em movimento?
Adicione uma depois que o jogador puder se mover e mirar independentemente e explicar em qual direção um disparo irá. Dê à ameaça uma rota previsível no início. Isso facilita determinar se um disparo perdido veio de um alvo em movimento ou dos controles.


