Índice:
- Suprimentos
- Etapa 1: Nosso Alter-ego - Tanque Amarelo
- Etapa 2: Traga os inimigos
- Etapa 3: 42 do jogo
- Etapa 4: Jogo sem fim e melhorias
Vídeo: Battle City Remake no GameGo com Makecode Arcade: 4 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
GameGo é um console portátil de jogos retro compatível com Microsoft Makecode desenvolvido pela TinkerGen STEM education. É baseado no chip STM32F401RET6 ARM Cortex M4 e feito para educadores STEM ou apenas pessoas que gostam de se divertir criando videogames retrô. Você pode seguir este tutorial e experimentar o jogo no simulador Makecode Arcade e depois executá-lo no GameGo.
Neste artigo, vamos tentar recriar um clássico jogo de tiro de tanques Battle City, originalmente produzido e publicado em 1985 pela Namco para o Nintendo Entertainment System (NES). No jogo original, o jogador controla um tanque e atira projéteis para destruir os tanques inimigos. Os tanques inimigos tentam destruir a base do jogador, bem como o próprio tanque do jogador. Faremos algumas modificações no jogo para acomodar melhor as práticas de programação em bloco com o GameGo, mas nosso remake ainda manterá muitas semelhanças com o jogo original. Vamos começar!
Suprimentos
GameGo
Etapa 1: Nosso Alter-ego - Tanque Amarelo
Abra o Makecode Arcade em https://arcade.makecode.com/ e clique em novo projeto. Começaremos fazendo de nosso alter ego o tanque amarelo. Escolha Definir mySprite para sprite do tipo bloco de jogador e desenhe um tanque amarelo voltado para cima como nosso sprite inicial, coloque esse bloco dentro do bloco inicial. Adicionar move mySprite com bloco de botões. Agora temos um tanque que podemos mover com botões na simulação! Ótimo, mas está sempre voltado para a mesma direção, mesmo quando nos movemos para baixo ou para os lados …
Para corrigir isso, vamos adicionar mais quatro blocos, um para cada botão de direção. Crie uma nova variável, chamada direção - vamos salvar a direção do movimento do nosso tanque nela, 100 corresponderá a baixo, -100 corresponderá a cima, 200 para a direita e -200 para a esquerda. Por que esses números? Você verá mais tarde, quando adicionarmos os projéteis, que nosso tanque irá disparar. A lógica dentro de cada quatro desses blocos é muito simples - verificamos se a nova direção (ao pressionar o botão) é a mesma que a direção anterior. Se for, basicamente não fazemos nenhuma alteração. Do contrário, mudamos o sprite do tanque e, no caso de direção para baixo e para a esquerda, viramos a imagem do sprite para evitar o desenho de sprites adicionais. Por fim, vamos atribuir o valor inicial da direção a -100 (tanque para cima), pois é assim que nosso tanque inicia o jogo. Tente mover o tanque amarelo agora, o sprite mudará de acordo com a direção do movimento agora! Excelente, agora vamos adicionar marcadores.
Vamos disparar balas com set projétil em projétil (desenhe um pequeno quadrado prateado para aquele sprite) de mySprite com velocidades vx vy. Dentro do bloco pressionado do botão A, precisamos verificar o valor absoluto da direção para ver se o tanque amarelo está voltado para cima / baixo da esquerda / direita. Em seguida, disparamos o projétil com a variável velocidade de direção - é por isso que tínhamos -100 / 100 / -200 / 200 para os valores de direção.
Agora temos o tanque amarelo que pode disparar projéteis e se mover. Se os tanques amarelos simulados pudessem sentir, certamente se sentiria solitário neste vazio sem inimigos e coisas para fazer. Então, para a próxima etapa, vamos adicionar inimigos para passar o tempo.
Etapa 2: Traga os inimigos
Vamos começar esta etapa criando um monte de novas variáveis: dois arrays (um para manter sprites inimigos e outro para segurar direções inimigas), variável de tempo de spawn para armazenar o período de tempo entre spawns, contagem de inimigos para armazenar o número máximo de inimigos ao mesmo tempo. Também adicionaremos dois projéteis (projétil e projétil inimigo) disparando no bloco inicial - que nos ajudará a evitar um erro mais tarde.
Em seguida, criamos na atualização do jogo a cada bloco … ms, insira a variável spawn_time lá. A lógica dentro do bloco é simples - se o número total de inimigos no campo de batalha for menor que o número máximo permitido de inimigos, adicione um inimigo a inimigo_sprite_list e adicione 200 (indo para a direita) na direção daquele inimigo.
Em seguida, no sprite criado do tipo bloco Inimigo, adicionamos alguns efeitos gráficos, colocamos em um ladrilho vazio aleatório e chamamos a função pick_direction para este sprite. Em um sprite do tipo Inimigo bate na parede, chamamos a mesma função, pick_direction.
O que há nessa função? É aqui que as coisas começam a ficar um pouco complicadas, então espere. Há 50 por cento de chance de o tanque inimigo subir e 50 por cento dele descer - mudamos o sprite de acordo. O único truque aqui é que também precisamos alterar o valor correspondente a esse tanque inimigo específico em inimigo_direcionamentos_list para sua nova direção, para que ele dispare na direção certa. Para isso, encontramos o índice do sprite inimigo na lista inimiga_sprite e alteramos o valor desse item na lista diretriz_inimigo.
Finalmente, vamos adicionar tiros disparando. Adicionamos outro na atualização do jogo a cada bloco de 500 ms e colocamos um item for na lista inimiga_sprite. Com 30% de chance de um sprite inimigo disparar um projétil inimigo em sua direção de movimento.
Se lançarmos o jogo em simulação agora, podemos ver nosso tanque amarelo e os tanques inimigos aparecendo no mesmo ponto e indo para o espaço vazio. Podemos atirar e eles podem atirar em nosso tanque amarelo, mas nada aconteceria. Parece tão desprovido de significado ainda:) Vamos adicionar as decorações e a mecânica do jogo como última etapa.
Etapa 3: 42 do jogo
Vamos começar esta etapa adicionando vida e pontuação da guia Informações e definindo a vida para 10 e pontuação para zero. Em seguida, adicionamos o mapa de blocos do conjunto de blocos a…. Desenhe o mapa de arquivo para se parecer com o que você vê na captura de tela acima. Não se esqueça de adicionar as paredes!
Vamos adicionar sprite do tipo Projétil se sobrepõe a outro Sprite do tipo Jogador - é quando as balas do inimigo atingem nosso tanque amarelo. Precisamos ter certeza de que esses projéteis são balas do inimigo e não nossas, então adicionaremos que se a condição dentro do bloco for avaliada como Verdadeira, então subtrairemos um da contagem de vida. Semelhante a ele, em outro bloco em sprite do tipo Projétil se sobrepõe a outro Espírito do tipo Inimigo, nos certificamos de que o projétil é um projétil do tanque amarelo e se esta condição for avaliada como Verdadeira, destruímos otherSprite (o tanque inimigo), removendo-o da lista da lista inimiga_sprite e adicione um para pontuar.
A última coisa são as condições de vitória e derrota - para a vitória, verificaremos se a pontuação é maior ou igual a 10 no bloco permanente. Se for, mostramos a tela de vitória. E no bloco zero da vida, mostramos a tela Game Over.
Agora experimente na simulação para ver se o jogo está funcionando conforme o esperado. Em seguida, faça o upload para GameGo e divirta-se esmagando tanques inimigos!
Etapa 4: Jogo sem fim e melhorias
Em nosso repositório GitHub, você pode baixar dois arquivos para o arcade Makecode - um é exatamente o mesmo que você obteria se seguir as instruções e o outro é uma versão atualizada, que gerou progressão de nível aleatoriamente. Possui 10 níveis, cada um gerado aleatoriamente com maior número de inimigos em cada nível sucessivo.
E, claro, há ainda mais coisas que você ou seus alunos podem adicionar ao jogo além disso! Há melhor música, paredes quebráveis, diferentes condições de vitória e assim por diante!
Se você fizer uma versão melhorada do jogo, compartilhe nos comentários abaixo! Para obter mais informações sobre GameGo e outros hardwares para fabricantes e educadores STEM, visite nosso site, https://tinkergen.com/ e assine nosso blog.
A TinkerGen iniciou uma campanha Kickstarter para MARK (Make A Robot Kit), um kit de robô para ensinar codificação, robótica, IA!
Recomendado:
(Multijogador) Lutando no GameGo com Makecode Arcade: 6 etapas
(Multijogador) Lutando no GameGo com Makecode Arcade: GameGo é um console portátil de jogos retro compatível com o Microsoft Makecode desenvolvido pela TinkerGen STEM education. É baseado no chip STM32F401RET6 ARM Cortex M4 e feito para educadores STEM ou apenas pessoas que gostam de se divertir criando vídeos retro
Plataforma com níveis infinitos no GameGo com Makecode Arcade: 5 etapas (com imagens)
Platformer With Infinite Levels no GameGo Com Makecode Arcade: GameGo é um console portátil de jogos retro compatível com Microsoft Makecode desenvolvido pela TinkerGen STEM education. É baseado no chip STM32F401RET6 ARM Cortex M4 e feito para educadores STEM ou apenas pessoas que gostam de se divertir criando videogames retrô
Como pesquisar Corona sem destruir seu laptop (REMAKE): 8 etapas
Como pesquisar o Corona sem destruir seu laptop (REMAKE): Chega de screenshots feios. Chega de anime girl de FabyRM. Esta coisa realmente legível agora. Cure o mundo, cure Corona. Refazer!? SIM !!!!!!!!!!!!!!!!!!!!!!!!! ?????? Torne-se um cientista sem ser cientista com o poder da feitiçaria digital! Simu
Como desmontar um computador com etapas e imagens fáceis: 13 etapas (com imagens)
Como desmontar um computador com etapas e imagens fáceis: Esta é uma instrução sobre como desmontar um PC. A maioria dos componentes básicos é modular e facilmente removível. No entanto, é importante que você seja organizado sobre isso. Isso ajudará a evitar que você perca peças e também a fazer a remontagem e
Lâmpada de parede LED Night City Skyline: 6 etapas (com fotos)
Candeeiro de parede LED Night City Skyline: Este manual descreve como construí um candeeiro de parede decorativo. A ideia é a de um horizonte noturno de cidade, com algumas janelas iluminadas nos prédios. A lâmpada é realizada com um painel de plexiglass azul semitransparente com as silouhettes do edifício pintadas em