O que você está construindo
Este tutorial mostra como construir um jogo semelhante ao jogo de arcade Whac-A-Mole™. O objetivo é tocar em uma toupeira que sai aleatoriamente de um dos cinco buracos fixos. Cada vez que você consegue, sua pontuação aumenta em um ponto.
Para destacar os recursos do App InventorQualquer componentee ImageSpriteCamada Z, este aplicativo adota uma abordagem um pouco diferente daTutorial original do Mole Mash, que vocênão precisater concluído para concluir este. Você deve, no entanto, estar familiarizado com os fundamentos do App Inventor, usando o Designer para construir uma interface de usuário e usando o Editor de Blocos para codificar o comportamento de um aplicativo. Se você não estiver familiarizado com o básico, tente percorrer alguns dostutoriais básicosantes de continuar.
Introdução
Este tutorial inclui:
- Adicionando componentes no Designer
- UsandoQualquer componentefuncionalidade para obter e definir propriedades de componentes ImageSprite
- Controlando o jogo com oRelógiocomponente
- Usando SpriteCamada Zpara garantir que um ImageSprite apareça na frente de outro
Começando
Abrirai2.appinventor.mit.edue iniciar um novo projeto. Defina a telaTítulopropriedade para um nome apropriado, como "Mole Mash". Baixe os arquivos de imagem abaixo (criados por Yun Miao) para o seu computador clicando com o botão direito sobre eles e, em seguida, adicione-os ao seu projeto pressionando o botão "Carregar arquivo ..." no painel Mídia.
Buraco:
Verruga:
Configure os componentes
A interface do usuário conterá um total de 6 ImageSprites: 5 buracos imóveis e 1 toupeira. A toupeira se moverá em cima dos buracos. Use o Designer para criar a interface do usuário. Quando terminar, deve ser parecido com a imagem abaixo. Não se preocupe em alinhar os buracos uniformemente. Você especificará suas localizações através de seusXeSpropriedades. Instruções adicionais estão abaixo da imagem.
A seguir está a lista de componentes que você adicionará:
Tipo de componente | Grupo de paletas | Como você vai nomeá-lo | Finalidade do Componente |
---|---|---|---|
Tela | Desenho e Animação | GameCanvas | O campo de jogo |
ImagemSprite(5) | Desenho e Animação | Buraco1 ... Buraco5 | Buracos de onde a toupeira pode aparecer |
ImagemSprite | Desenho e Animação | Verruga | A toupeira |
Arranjo Horizontal | Disposição | Arranjo de pontuação | Para exibir a pontuação |
Rótulo | Interface de usuário | ScoreTextLabel | Para segurar "Pontuação:" |
Rótulo | Interface de usuário | ScoreValueLabel | Para manter a pontuação (número de vezes que a toupeira foi atingida) |
Relógio | Interface de usuário | Relógio Mole | Para controlar o movimento da toupeira |
Som | meios de comunicação | Campainha | Vibrar quando a toupeira é tocada |
Faça as seguintes alterações nas propriedades dos componentes:
Componente | Ação |
---|---|
Tela1 | DefinirCor de fundopara Verde. DefinirLargurapara 320 pixels. DefinirAlturapara 320 pixels. |
Buraco1 | DefinirXpara 20 eSpara 60 (canto superior esquerdo). |
Buraco2 | DefinirXpara 130 eSa 60 (centro superior). |
Buraco3 | DefinirXpara 240 eSa 60 (canto superior direito) |
Buraco4 | DefinirXpara 75 eSpara 140 (canto inferior esquerdo). |
Buraco5 | DefinirXpara 185 eSpara 140 (canto inferior direito). |
Verruga | DefinirFotopara "mole.png". DefinirZpara 2 para que a toupeira apareça na frente da outraImagensSprites, que tem o padrãoZvalor de 1. |
ScoreTextLabel | DefinirTextopontuar: ". |
ScoreTextValue | DefinirTextopara "0". |
Não se preocupe agora em definir oFotopropriedade para os buracos; definiremos a propriedade no Blocks Editor.
Adicione comportamentos aos componentes
Aqui está uma visão geral do que precisamos para criar blocos:
- Crie variável global:
- buracos: uma lista de ImageSprites buracos
- Quando o aplicativo é iniciado:
- Preencha a lista de buracos.
- Defina cada buracoFotopropriedade para "hole.png".
- Mova a toupeira aleatoriamente para um buraco.
- Crie um procedimentoMoveMolepara:
- Definir variável localburaco atualpara um buraco aleatório da listaburacos.
- Mova a toupeira para o local deburaco atual.
- QuandoMoleClock.Timergatilhos:
- ChamarMoveMolepara mover a toupeira aleatoriamente.
- Implemente um manipulador que faça o seguinte quando a toupeira for tocada:
- Adicione um à pontuação.
- Faça o telefone vibrar brevemente.
- ChamarMoveMole.
Para prosseguir, mude para o Editor de Blocos.
Criando Variáveis
Crie a variável e nomeie-aburacos. Por enquanto, daremos a ele um valor inicial "fictício" de uma lista vazia. Definiremos o valor inicial real noTela1.Inicializarmanipulador de eventos, que é executado sempre que o aplicativo carrega a tela. Aqui está uma imagem e uma lista dos blocos que você precisará:
Tipo de bloco | Gaveta | Propósito |
---|---|---|
inicializar buracos globais para | Variáveis | Mantenha uma lista de ImageSprites buracos. |
criar lista vazia | Listas | Crie uma lista vazia, para ser preenchida quando o programa for iniciado. |
Comentários (criados clicando com o botão direito em um bloco) são incentivados, mas não obrigatórios.
Iniciando o aplicativo
O primeiro evento a ocorrer em qualquer aplicativo éTela1.Inicializar, então colocaremos o código de inicialização nesse manipulador. Especificamente, adicionaremos os componentes do furo à listaburacos, defina cada buracoFotopropriedade para "hole.png" e chameMoveMole. Como ainda não escrevemos o MoveMole, criaremos um procedimento vazio com esse nome, que preencheremos posteriormente.
Abaixo está uma tabela dos blocos que você precisa criar. Observe que a gaveta "Any ImageSprite" é encontrada na guia "Qualquer componente" na parte inferior da lista de blocos no Editor de blocos.
Tipo de bloco | Gaveta | Propósito |
---|---|---|
Tela1.Inicializar | Tela1 | Especifique o que deve acontecer quando o aplicativo for iniciado. |
adicionar itens à lista | Listas | Adicione os seguintes valores a ... |
obter buracos globais | Variáveis | ...a lista de buracos |
Buraco1 | Buraco1 | -o buraco superior esquerdo |
Buraco2 | Buraco2 | -o furo central superior |
Buraco3 | Buraco3 | -o buraco superior direito |
Buraco4 | Buraco4 | -o buraco inferior esquerdo |
Buraco5 | Buraco5 | -o buraco inferior direito |
para cada buraco na lista | Ao controle | Iterar através doburacoslista. |
defina ImageSprite.Picture do componente ... para | Qualquer ImageSprite | Defina a propriedade Picture de... |
obter buraco global | Variáveis | ...o actualburacoImagemSprite |
" "(buraco.png) | Texto | ...para a imagem do buraco vazio. |
para procedimento(MoveMole) | Procedimentos | Crie um procedimento, a ser preenchido posteriormente, para movimentação da toupeira. |
ligue para MoveMole | Procedimentos | Chame MoveMole para fazer a primeira colocação da toupeira. |
Compare opara cadabloco para os blocos equivalentes que seriam necessários sem ele:
O conjunto esquerdo de blocos não é apenas mais curto, mas também menos repetitivo, poupando o programador de copiar e colar sem pensar e facilitando a modificação, por exemplo, se o nome da imagem for alterado.
Movendo a toupeira
Agora vamos preencher o corpo do procedimentoMoveMole, que chamaremos quando o programa iniciar, quando a toupeira for tocada e quando nosso cronômetro disparar a cada segundo. O procedimento deve escolher um buraco aleatório e mover a toupeira sobre ele. Aqui estão os blocos compilados e uma tabela dos blocos utilizados:
Tipo de bloco | Gaveta | Propósito |
---|---|---|
inicialize o currentHole local para (existem dois tipos de 'inicializar local': pegue aquele que cabe no bloco de procedimento) | Variáveis | Armazene o valor do furo atual para uso no procedimento. |
escolha um item aleatório | Listas | selecione aleatoriamente um buraco da lista |
obter buracos globais | Variáveis | lista de buracos ImageSprites |
ligue para Mole.MoveTo | Verruga | Mova a toupeira para o... |
ImageSprite.X do componente | Qualquer ImageSprite | ..x-coordenada de... |
obter buraco atual local | Variáveis | ...o buraco escolhido... |
ImageSprite.Y do componente | Qualquer ImageSprite | ...e a coordenada y. |
Agora precisamos especificar que MoveMole deve ser chamado sempre que o temporizador do MoleClock disparar. Precisamos apenas de dois blocos para fazer isso:
Tipo de bloco | Gaveta | Propósito |
---|---|---|
quando MoleClock.Timer | Relógio Mole | Quando o temporizador dispara... |
ligue para MoveMole | Procedimentos | ...mova a toupeira. |
Registrando toques
Finalmente, precisamos de especificar o que acontece quando a toupeira é tocada. Especificamente, queremos:
- Aumente a pontuação.
- Faça o telefone vibrar brevemente.
- Mova a toupeira.
Podemos facilmente traduzi-los em blocos:
Tipo de bloco | Gaveta | Propósito |
---|---|---|
quando Mole.Touched | Verruga | Quando a toupeira é tocada... |
defina ScoreValueLabel.Text como | ScoreValueLabel | ...atualize a pontuação visível para... |
+ | Matemática | ...o resultado da adição... |
1 | Matemática | ...1 [e]... |
ScoreValueLabel.Text | ScoreValueLabel | ...a pontuação anterior. |
ligue para Buzzer. Vibrar | Campainha | Faça o telefone vibrar por... |
100 | Matemática | ...100 milissegundos. |
ligue para MoveMole | Procedimentos | Mova a toupeira para um novo local. |
Programa Final
Variações
Aqui estão algumas variações que você pode querer implementar:
- Adicionando um botão Redefinir para definir a pontuação de volta para 0.
- Fazer com que a pontuação dependa não apenas do número de acertos, mas também do número de erros e toupeiras escapadas.
- Aumentar a velocidade do jogo de movimento da toupeira se o jogador estiver indo bem e diminuindo se o jogador estiver indo mal.
- Adicionando uma segunda toupeira em um cronômetro diferente.
Você pode ver como implementar as duas primeiras variações noTutorial original do Mole Mash.
Análise
Aqui estão alguns dos conceitos abordados neste tutorial:
- Colocar componentes em umLista.
- Executar uma operação em cada componente de umListausando opara cadarecursos de bloco e qualquer componente.
- Colocando umImagemSpriteem cima de outro, usando seuZpropertyt para controlar o que vai na frente.
- Usando oRelógiocomponente para controlar o jogo.
- Criando um procedimento e chamando-o de vários lugares.
Feito comMole Mash 2? Voltar para os outros tutoriaisaqui.
Digitalize o aplicativo de amostra para o seu telefone
Digitalize o código de barras a seguir em seu telefone para instalar e executar o aplicativo de amostra.
Oubaixe o apk
Baixar código-fonte
Se quiser trabalhar com este exemplo no App Inventor, baixe oCódigo fontepara o seu computador, abra o App Inventor e clique emProjetos, escolherImportar projeto (.aia) do meu computador...e selecione o código-fonte que você acabou de baixar.
FAQs
What are the components of mole mash? ›
You'll use these components to make MoleMash: ● A Canvas that serves as a playing field. An ImageSprite that displays a picture of a mole and can move around and sense when it is touched. A Sound that vibrates when the mole is touched. Labels that display “Hits: ”, “Misses: ”, and the actual numbers of hits and misses.
How do you add scores in App Inventor? ›To create the "Score: " part of the label, drag out a text block from the Text drawer. Change the block to read "Score: " rather than " ". Use a join block to attach this to a block that gives the value of the score variable. You can find the join block in the Text drawer.
What is event handler in MIT App Inventor? ›Event Handlers
App Inventor programs describe how the phone should respond to certain events: a button has been pressed, the phone is being shaked, the user is dragging her finger over a canvas, etc. This is specified by event handler blocks, which used the word when.
The mole (n), abbreviated as mol, is a fundamental chemical quantity that characterizes the amount of substance. It is defined that 1 mole of any substance contains 6.02x1023 particles (atoms, molecules, ions, electrons). 6.02x1023 is a unique number, called Avogadro's number.
What is the content of mole concept? ›A mole is defined as the amount of substance comprising the same number of fundamental entities as the number of atoms present in a pure sample of carbon weighing exactly 12 g or A mole is defined as the amount of a substance that contains exactly 6.0221023 elementary entities of the given substance.
Is there a scoring app? ›The Scoreboard app is applicable to any points-based game like, football, basketball, baseball, soccer and many more (including board games and other indoor/outdoor games). -accurately manage and keep track of game time & more! Just tap the side that scored to increase their score on the scoreboard!
How do you get 6 character code in MIT App Inventor? ›From your project on http://ai2.appinventor.mit.edu or http://code.appinventor.mit.edu, select the AI2 Companion from the Connect menu. A QR code and the corresponding 6 character code will appear. Scan the QR code or type in the characters to connect up your device to the website and start testing.
What code does App Inventor use? ›MIT App Inventor | |
---|---|
Original author(s) | Hal Abelson, Mark Friedman |
Written in | Java, Swift, Objective-C, Kawa, Scheme, JavaScript |
Operating system | Android, iOS |
Available in | 19 languages |
Android application package file (APK) is the file format to distribute and install application software onto Google's Android operating system. Choose "Download to this Computer" from the drop down menu and the download will start automatically.
How useful is MIT App Inventor? ›Pros: Open-ended learning supports creativity, plus students can get apps running on a phone or tablet in only a few minutes. Cons: The tools are powerful and could be overwhelming to younger students; more classroom materials would be nice.
Does MIT App Inventor require coding? ›
MIT App Inventor is a free, web-based platform for creating, testing, and sharing mobile apps. Build almost any Android and iOS app with App Inventor using a simple, intuitive, block-based programming language that anyone can learn.
What is the formulation of a mole? ›One mole of any substance is equal to the Avogadro number. This number as value 6.023 \times 10^{23}. It is useful to measure the products in any chemical reaction. Thus 6.023 \times 10^{23} of atoms, molecules or particles are 1 mol of atoms, molecules or particles.
What is the component mole fraction? ›What is Mole fraction? Mole fraction represents the number of molecules of a particular component in a mixture divided by the total number of moles in the given mixture. It's a way of expressing the concentration of a solution.
What is the sum of moles of all components? ›The sum of mole fraction of all components of a solution is unity.
What is mole fraction component solution? ›The mole fraction, X, of a component in a solution is the ratio of the number of moles of that component to the total number of moles of all components in the solution. To calculate mole fraction, we need to know: The number of moles of each component present in the solution.