Com a construção do Space Invaders App você vai começar a prática com o uso de componentes de relógios e temporizadores, usando componentes de animação, como Sprites imagem e o Canvas, definindo a visibilidade, e detectar colisões em App Inventor. Você vai programar um aplicativo que possui um atirador cujo objetivo é atirar no disco voador na tela. Conecte-se ao site da App Inventor e iniciar um novo projeto. Nomeie- SpaceInvaders , e também defina da tela título a "SpaceInvaders". Conecte-se a um dispositivo ou emulador. Usando o componente do Relógio Usando Clock.Timer mover sprites Usando Sprite.Flung para mover um sprite Usando a detecção de colisão Definir a visibilidade de sprites Para este jogo, você terá dois tipos de sprites: uma ImageSprite representado por um navio de atirador e discos voadores representados por um sprite bola. Baixe os arquivos de imagem para o seu foguete navio Sprite e Sprite disco voador. Use o designer de componente para criar a interface para SpaceInvaders . Quando terminar, ele deve ficar parecido com a próxima foto. Para criar essa interface, coloque os seguintes componentes para o Designer, arrastando-os a partir da paleta de componentes para o Viewer e definir as propriedades dos componentes, conforme descrito: Tipo de componente Paleta de Grupo O que você vai nomeá- Propósito do lo Componente Ação Mude Largura proprieda de para "Encha pai" e Altura propriedade a Tela Desenho e Animação Canvas1 O fundo que estaremos 300. Defina colocando nossos o BackgroundColor prop sprites em riedade to Black. Carregar a imagem foguete e definir a Imagem propriedade para "rocket.png". Defina o Y propriedade a 230. Isto irá colocar o ImageSprite Desenho e Animação RocketSprite O foguete no nosso foguete na parte inferior jogo da tela. Carregar a imagem pires e definir ImageSprite Desenho e Animação SaucerSprite O disco voador no a Imagem propriedade nosso jogo para "saucer.png". Mude PaintColor a Green e defina o Radius propriedade a BallSprite Desenho e Animação Bala A bala do foguete. 8. Relógio Interface com o Usuário Clock1 Arranjo Horizontal Traçado HorizontalArrangement1 Etiqueta Interface com o Usuário Label1 Etiqueta Interface com o Usuário ScoreLabel Usamos o relógio para o Mude IntervaloDoCronôm seu método Timer para etro propriedade para mover o pires 3000. Para conter Label1 e ScoreLabel Para conter a palavra Alterar Texto propriedade "Score" para "Score". Para conter a pontuação Alterar Texto propriedade numérica atual para "0". Para reiniciar o jogo para Botão Interface com o Usuário ResetButton que o jogador pode jogar Alterar Texto propriedade de novo para "Reset". Neste jogo, o utilizador move o foguete de lado a lado. Isso significa que só vai mudar a direção X do sprite do foguete. Para fazer isso, vamos utilizar o RocketSprite.Dragged manipulador de eventos. Quando o foguete é arrastado, vamos ajustar sua propriedade X a ser o Atual X que arrastou o sprite. Queremos que ela saia do foguete, colida com o disco voador, e seja invisível após a colisão e antes de sair do foguete. Vamos começar usando o Screen1.initialize. Quando a tela é inicializado, vamos programar a bala para ser invisível. Fazemos isso definindo a propriedade visibilidade da bala para False. Em seguida, queremos ter certeza de que a bala aparece novamente quando disparar a partir do foguete. Quando tocamos o foguete, queremos que a bala comece caminhando para o disco. Nós vamos fazer isso usando o RocketSprite.Touched manipulador de eventos. Quando o foguete é tocado, não só pretende definir o foguete a ser visível, mas também queremos definir a velocidade e a direção do foguete. A posição é um valor de 0 a 360 que indica que direção o sprite deve estar se movendo nesta direção: 0/360 é para a esquerda, 90 é para cima e 270 é para baixo. A velocidade é medida em pixels / seg. A última coisa de que precisamos para o programa é o que acontece quando a bala atinge o Disco. Nós usaremos o Bullet.CollidedWith manipulador de eventos. Este evento é chamado sempre que a bala colide com outro objeto. O nosso sprite de foguete é preso a um Y na parte inferior da tela, a bala nunca irá colidir com o foguete e apenas com o disco. Na colisão queremos duas coisas aconteçam. 1º A pontuação deve aumentar em 1. 2º A bala deve tornar-se invisível. Você deve ter notado que quando você atirar a bala, ela não aparece novamente. Precisamos programar a bala para voltar ao lugar na frente do foguete quando atirar. Podemos fazer isso usando o Bullet.MoveTo bloco. Para fazer com que a bala desapareça quando atinge a borda superior da nossa tela, é preciso usar o Bullet.EdgeReached manipulador. Às vezes, os usuários podem querer reiniciar o jogo e redefinir a sua pontuação. Quando isso acontece, precisamos definir o placar para 0. Vamos fazer o jogo um pouco mais difícil! Agora, quando a bala colide com o disco, vamos mudar a localização do disco. O disco irá manter o mesmo valor de Y de modo que só vai ter que mudar o X. Podemos fazer isso usando os seguintes blocos: Para tornar ainda mais difícil, vamos também mudar a posição do disco quando o temporizador se apaga.