App Inventor Tutorial 4 Cat & Mouse Game
|
|
|
- Adrian Shon Hutchinson
- 10 years ago
- Views:
Transcription
1 App Inventor Tutorial 4 Cat & Mouse Game This is an app that will let you get familiar with using image sprites, canvas, sound, clock and the accelerometer (Movement Sensor) within a Game in App Inventor. In this app you will control a mouse by tilting the screen. There will be an energy bar on the screen which will decrease over time. The mouse will chase and eat cheese to prevent the energy from running out. You also need to watch out for the Cat, who really wants to eat the mouse. Step 1: New Project on App Inventor Once you have the App Inventor running type into your browser You will get the app Inventor page which looks like this (if you have followed the other tutorials showing the App that you completed last). Click on My Projects.
2 You will get all the projects that you have created listed and there will be options at the top of the screen. In this case we want to create a new project. You will then be presented with a screen where you can type the project name. This project is called CatAndMouse. *Note: As the text box is small it will not show the full name of the project. Step 2: Build the Interface of Cat & Mouse The Cat & Mouse app needs 9 components. Component Type Palette Group Components Name Purpose Canvas Basic FieldCanvas Playing the field. Image Sprite Animation Mouse User-controlled player. Orientation Sensor Sensors OrientationSensor1 Detect phone s tilt. Clock Basic Clock1 For counting down. Image Sprite Animation Cheese The mouse s prey. Image Sprite Animation Cat The mouse s predator. Canvas Basic EnergyCanvas Display mouse s energy. Button Basic RestartButton Restart the game. Sound Media Sound1 Purr when cat eats mouse. Let s start by naming our application. In the properties panel change the name of our screen to Cat & Mouse You will notice this changed the name of our app here
3 Now you are ready to start adding the media items to the project. In order to add media click Add in the Media section below Components. You will see a screen giving you the option to Browse and find the file on your computer, click this. On this screen you can browse to the directory that the media files are contained in. Click on the media file and then click Open. Then click OK on the screen (similar to below). This will add the file to your project. *Repeat this step for the files: Cat, Cheese, DeadMouse, meow and Mouse* Once all 5 media files (4 images, 1 sound) have been added you will see them listed on the media section below components.
4 The next task is to add a canvas to the screen. Under the Basic Palette drag Canvas to the screen. You will see Canvas1 appear on the components list. We would like to rename this component to FieldCanvas so to do this click Rename. This will open a box with the title Rename Component. Type the new name and press Ok. You will see the name of the canvas has now changed on the components list. The next thing we need to do is the set the height and width of the canvas. This can be completed by clicking on the textbox below Width in the properties panel. For Width you should choose Fill parent which means the whole width of the screen. For Height you should select Pixels and type 300 in the textbox. Once the Height and Width has been set you should see a screen similar to below: The next thing we will want to do is add the images to the Canvas.
5 In the Palette under Animation you will see an option for Imagesprite. Drag this on to the canvas, it doesn t matter where you place it as long as it is within the Field Canvas we added earlier. Rename this Image sprit to Mouse using Rename in the components panel. Next we need to add an image to the sprite. Since this is called Mouse we will add the image of the Mouse (Mouse.png). In the properties window you will see Picture, select the text box below this. This will give you a list of all the media items in your project. Select Mouse.png and click Ok. You should now see the mouse image on the canvas.
6 Your screen should now look like this. You will notice there are other properties listed for an image sprite. Below I will give a basic explanation of these. Interval This will be set to 10 (milliseconds) for this game. The number represents how often the image sprite should move itself. Heading - This specifies the directions in which the image sprite should move (in degrees). E.g. 0 will specify right, 90 will specify up and 180 will specify left. Leave this at 0 for now; we will change it later in the Blocks editor. Speed This specifies how many pixels the image sprite will move each Interval. If the number is low it will be slower, if it is high it will therefore be faster. We will set the speed property in the Blocks editor later. The next step is adding the Cheese to the Field Canvas. The Cheese should flit around the Field Canvas, if the Mouse runs into the Cheese (thereby eating it) the Mouse s energy level will be increased. The cheese should also disappear as it has been eaten. It will be replaced by another piece of cheese later in the game. In the same way as adding the Mouse to the Canvas earlier drag the ImageSprite (Under Animation) on to the canvas. Then rename this image sprite to Cheese. In the properties panel you will see an option for Picture, click the textbox below this and select Cheese.png from the list. This will put the Cheese image on the canvas. The next option to change is the Interval Property (in the properties panel), this will be set the same as the mouse (10 Milliseconds). The speed will also be set to 2 so it will not move very fast (to give the mouse a chance to catch it). The Heading property will be set in the blocks editor so there is no need to change it at this point.
7 Now we have the Mouse and Cheese image sprites added to the canvas. The next image sprite to add is the Cat. In the same process as above, drag the ImageSprite (Under Animation) on to the canvas. Then rename this image sprite to Cat. In the properties panel you will see an option for Picture, click the textbox below this and select Cat.png from the list. This will put the Cat image on the canvas. The Interval for Cat will be 10 Milliseconds (the same as the others) and the Speed will be set as 1 (This will allow the mouse a fair chance to catch the cheese). Now that all the Image Sprites have been added to the screen it is time to add more components. The first of these is the OrientationSensor. This will detect if the screen is being held in a landscape or portrait position by the user. Under Sensors in the Palette drag OrientationSensor on to the screen. It will appear as a Non-visible component below the screen. There are no properties to be set for the OrientationSensor as it will be used later in the codes block to determine the direction in which the Mouse should move.
8 The next component that will be added to the game is a Clock. This will also appear in the Non-visible components section below the screen. Under the Basic Palette you will see clock, drag this on to the screen. It will then appear just under OrientationSensor1 that we have previously added. In the properties panel set the TimerInterval to 10 (Milliseconds). You should now have a screen similar to the one below: The next component we will add to the project is the sound file. When the cat eats the mouse a sound will be played. In order for this to happen we need to add the sound component. Under Media in Palette you will see Sound. Drag this on to the screen and it will appear as a Non-visible component like the Clock and OrientationSensor. Set the source of Sound1 to the meow.mp3 file that we added earlier in the tutorial.
9 There must be an energy bar showing the amount of energy the mouse has got left (warning of starvation). We can do this by creating a new canvas. Under Basic in Palette select Canvas and drag it below the FieldCanvas. Rename this canvas to EnergyCanvas. Set the Width of this canvas (in the properties panel) to Fill Parent and Height to 1 Pixel. The end result should look like the screen below: The final component that we will need to add to the screen is a Restart button. Under Basic on the Palette select Button and drag it under the EnergyCanvas. Rename this button to RestartButton and set the text value of the button to Restart. You can also set the width of the button to Fill Parent to allow it to be clicked faster during game play. These options along with other can be found in the Properties panel.
10 Step 3: Add the functionality to the Interface Once the interface is ready we can set the functionality of the components. What we want to happen can be described in the following steps: 1. The cheese and cat will move around the screen. 2. The mouse will be controlled by the user tilting the screen and changing the screen orientation. 3. The mouse will run out of energy (starve) when time runs out. 4. The mouse will be able to eat the cheese to add more energy. 5. Sound will play when the cat eats the mouse (meow sound). The functionality of the program (step 3) is added by using the Blocks Editor - Along the top of your App Inventor panel you will notice a button which says 'Open the Blocks Editor'. Click on this button You will now be asked would you like to open the code blocks file, click Open. The Java Environment will load. You will probably see this image for a few seconds The Blocks editor will then load. This process may take a few minutes so please be patient you will see a screen like below when it loads.
11 The first thing we need to do is create a procedure for updating the position of the mouse. This will be then called by the clock timer (every 10 milliseconds). To do this go to the blocks editor click Built-In and you will see a list of blocks. First we will click Definition and drag the procedure block to the right (into the workspace). This will allow you to add actions to be completed within the procedure. Name this procedure UpdateMouse as it will be called within Clock1.Timer In the blocks editor click My Blocks and you will see the list of the blocks in your app again. Now we will click Mouse and drag the Mouse.Heading block to the right (into the workspace). This will allow you to add the action to the procedure. Now go back to My Blocks and select OrientationSensor1. Drag OrientationSensor1.Angle to the right of Mouse.Heading and this will set the Mouse Heading to the current Angle of the phone s orientation. It should look like the block below: In a similar way as above we should also set the Mouse.Speed value to OrientationSensor1.Magnitude multiplied (*) by 100. *Note: Multiplication can be found in Built-In then Math. you can get Number from the same place, you just need to type 100 When the UpdateMouse function is complete it should look like below: Remember also that
12 Now we have the Clock1.Timer event in our workspace to call this procedure. This can be found in My Blocks and then select Clock1. The Timer block will be the first on the list and should look like below: In the blocks editor click My Blocks and you will see the list of the blocks in your app again. Now we will click My Definitions and drag the UpdateMouse block to the right (into the workspace). This will allow you to add the action to the Clock1.Timer event. We need to keep a track of the Mouse s current energy levels, to do this we will need to keep a variable of the current energy level. Go to Built-In (in the blocks editor) and click Definition. Drag def Variable to the right (into the workspace). Rename the variable to energy. Now connect the number 200 to give energy an initial value. This can be done by selecting Built-In and then Math (Drag the block to the workspace and connect it to energy). Change the number to 200 and this will assign the initial value. Now Energy has an initial number, we need to find a way of turning this into the energy line on the game. To do this we need to create a procedure to draw a coloured line. Go to the Definition section in Built-In and drag the Procedure block on to the workspace. Rename the procedure (which is currently called Procedure) to a more meaningful name such as DrawEnergyLine. This procedure will have to take two arguments (colour & length) as the same procedure will be used in a few different places. To pass arguments into the procedure go back to the Definition section and drag name on to the workspace (to connect to the arg on the DrawEnergyLine block). Rename this from name to colour. The other argument you need to connect to DrawEnergyLine is Length, connect this the same was a colour but rename it to Length.
13 Now that you have the arguments set up you need to add functionality to your procedure. The first thing we are going to set is the PaintColor of the canvas. To do this go to My Blocks and select EnergyCanvas. Now drag EnergyCanvas.PaintColor (the set to block) and connect this to the procedure. This is where we will use the colour argument that is passed into the procedure. In My Blocks you will see a section called My Definitions. In this section drag the Colour value and connect it to EnergyCanvas.PaintColor. Next we need to call the DrawLine function, again go to My Blocks and select EnergyCanvas. Drag EnergyCanvas.DrawLine and drag it to below the EnergyCanvas.PaintColor block. In order to use the DrawLine function we need to pass 4 numbers (x1, y1, x2, y2). For x1, y1 and y2 we will be setting this number to 0. To do this go to Built-In and under Math you will find the Number block, drag this to each of x1, y1 and y2. Set the value (which is currently 123) to 0. For y1 go back to My Blocks and under My Definitions you will find the value Length. Drag this to y1. - This procedure is now ready to be used - 13
14 Now we can create the next procedure, this new procedure will use the procedure we just created within it. From Built-In select Definition and drag the procedure block on to the workspace. Name this procedure DisplayEnergy. Now go to My Blocks and under My Definitions you will see the function we created earlier DrawEnergyLine. Drag this on to the workspace and connect it to DisplayEnergy. Now we need to pass arguments into the procedure, this can be completed by dragging these on to the workspace and connecting them with DrawEnergyLine. Firstly we want to set a colour; go to Built In and under Colors you will see Color White on the list. Drag this colour and connect it to DrawEnergyLine where it is expecting the colour parameter. For the Length argument we would like to pass the width of the EnergyCanvas. This can be completed by going to My Blocks and EnergyCanvas then dragging EnergyCanvas.Width (not the set procedure). This is to be connected with the length argument, see below. Now we are going to re-use the DrawEnergyLine procedure and drag it below the one we just set up. Drag the procedure into DisplayEnergy and you will see it looks similar to above. Instead of dragging the colour White as an argument, for this procedure we will be using red. For the Length on this procedure we are using the Energy variable that we set up earlier in the tutorial. To get this go to My Blocks and under My Definitions you will see energy. Drag this variable and connect it to the length argument. 14
15 The next piece of functionality we are going to add is the GameOver procedure. From Built-In select Definition and drag the procedure block on to the workspace. Name this procedure GameOver. Under My Blocks you will see Mouse, within this there is a Mouse.Enabled. Drag the set to command across to the workspace and connect it to GameOver. We need to set this to false so to find this go to Built-In and then Logic. You will see false, drag this to the workspace and connect it to Mouse.Enabled. We also want to change the picture of the mouse to a picture representing a dead mouse. To do this go back to My Blocks and under Mouse you will see Mouse.Picture as a set to command. Drag this below the Mouse.Enabled block. Now to add the name of the file, go to Built-In and click Text. You will see a text block with the word text written on it. Drag this to the workspace and connect it to Mouse.Picture. Rename text to DeadMouse.png. It is important that you write this in the exact case used as it refers to an image file we added earlier. Now we can add more to the UpdateMouse block. First we will add energy, this can be found in My Blocks under My Definitions. Drag the set to command on to the workspace and put it above Mouse.Heading. We want to set the energy level to 1 less than its current value. To do this drag the minus block (Found in Built-In under Math) on to the workspace and connect it to energy. 15
16 Now drag the variable energy to the first missing section on the minus block. This can be found in My Blocks under My Definitions. Now connect the number 1 to give the amount that is decremented each time. This can be done by selecting Built-In and then Math (Drag the block to the workspace and connect it to the second missing section on the minus block). Change the number to 1 and this will reduce energy by 1 every time this procedure is run. The next procedure we want to call within UpdateMouse is DisplayEnergy, this will display the energy bar on the canvas. This can be completed by going to My Blocks and under My Definitions selecting the call function for DisplayEnergy. Now we need a test to check if the mouse s energy level is 0 (Starvation) so we can call the GameOver procedure. To do this we need to drag an if then do block into the UpdateMouse procedure. This block can be found in Built-In under Control. Drag it on to the UpdateMouse block below DisplayEnergy. 16
17 The test that we will use in the if block is if energy is equal to 0. This can be completed using an equals block. The equals block can be found in Built-In under Math. Drag this block to the workspace and connect it to test on the if block. Now drag the variable energy to the first missing section on the equals block. This can be found in My Blocks under My Definitions. Now we need to add the number 0 to the equals block. This can be found in Built- In under Math. Drag the number across and change it from 123 to 0. The final piece of functionality we need to add to the if block is to call the GameOver procedure if the test is positive. This can be done by dragging GameOver from My Blocks under My Definitions. Make sure the call for GameOver is in the then-do section of the if block. 17
18 Now we will create a procedure to update the cheese to ensure it is moving about the screen. To do this go to the blocks editor click Built-In and you will see a list of blocks. First we will click Definition and drag the procedure block to the right (into the workspace). Rename this procedure to UpdateCheese. There will be another if then do block used within this procedure so drag this type of block from the Built-In section under Control. Drag this on to the UpdateCheese block. In the test we will need a less than operator (<); this can be found in Built-In under Math. Now in the same section (Math) you will see a function for random fraction, this is to ensure that the cheese changes direction 20% of the time. This next part is where we set the percentage; this number function can be found in the math section also. Change the number to.2 (20%) - *It is important to put the point before the 2. Under My Blocks select Cheese and drag Cheese.Heading (set to) on to the then-do block. This is what you want to be completed 20% of the time (when the test is positive) 18
19 Drag Random Integer from the math section (In Built-In) and connect it to Cheese.Heading. The numbers will initially be from 1 to 100, change these numbers to 0 and 360, see the example below. Now this procedure has been created we can add this to the timer. Go to My Blocks and under My Definitions you will see call UpdateCheese. Drag this into the timer block. Now we are creating a new Procedure called EatCheese, this will be called when the mouse collides with the cheese. The procedure block can be found from Built-In under Definition. Name this procedure EatCheese. Within My Blocks under My Definitions you will notice the set global energy to function. Drag this on to the workspace and connect it within the EatCheese procedure. Once the Mouse collides with the Cheese we want this to boost the Mouse s energy. To do this we need to use the addition block found under Built-In Math functions. Drag this to the workspace and connect it to energy. Now we want to take the original value of energy in order to increase it. This is found in My Definitions within My Blocks. It is called global energy. 19
20 The Energy level will be increased by 50 each time the mouse eats a piece of cheese so we put the number (found under Built-In within Math) 50 into the addition block. We also want to change the visibility of the piece of Cheese as we no longer want to display it on the screen. Under Cheese in My Blocks you will find set Cheese.Visible to, drag this into the EatCheese procedure. In Built-In under Logic you will find false, drag this into the workspace and connect this to Cheese.Visible. This will ensure that the image of the piece of cheese is no longer displayed on the screen. We also want to disable the piece of cheese so in order to do this we perform similar steps to above. Go to My Blocks and under Cheese you will find set Cheese.Enabled to ; drag this on to the EatCheese procedure. We want to set this to false, so drag false (under Logic in Built-In) on to the workspace and connect it to Cheese.Enabled. 20
21 We want the Cheese to move so when it is put back on to the screen it is no longer in the same position. To do this we are using Cheese.MoveTo found in the Cheese section under My Blocks. In the Math section (under Built-In) we have the option to use a random integer, drag these to the x and y co-ordinates for the Cheese.MoveTo function. Delete the to for each which will be 100 by default. (By dragging to the bin or pressing the delete button). Drag the minus function from Built-In under Math and connect it to to on the random integer generator. 21
22 For the first Random Integer we are using FieldCanvas.Width (under Field Canvas in My Blocks) and for the second part of the minus block we are using Cheese.Width (under chees in My Blocks). Follow the instructions above for the second random integer generator. However, instead of Width use Height. Under Mouse in My Blocks you will find a procedure called Mouse.CollidedWith. This function will run when another image sprite (Cheese or Cat) runs into the Mouse image sprite. Drag this procedure on to the workspace. We will need an if then do block within the procedure, you can get this from the Built-In section under Control. Drag this to the Mouse.CollidedWith block. 22
23 For this if block we want to use multiple tests together, to do this you can use an and block. This block can be found within the Built-In section under Logic, drag this to the test connection on the if then do block. For the first test we will be using the equals block, this can be found in the Built In section under Math. Drag this to the connection with the first test on the and block. You will be using the argument (other) value in this test; this can be found within My Blocks under My Definitions. Drag this block to the first gap on the equals block. We are comparing the other value with the Cheese component (this can be found under My Blocks in the Cheese section). Drag this into the second gap. On the next test we want to check if the Cheese picture is showing on the screen, to do this go to My Blocks and under the Cheese section you will see Cheese.Visible. Drag this on to the next test connection. The result should look like below: 23
24 Finally we would like to set what happens if each of these tests are true, in this case we would like the mouse to eat the cheese. To do this you can find Eat Cheese under My Definitions in My Blocks. Drag this to the then do section of the if block. Now we will return to the UpdateCheese procedure that we created earlier. Drag an ifelse then-do else-do block from Control under Built-In. Put this block between the if then-do and the procedure, see below: In the test for the ifelse block we want to check if the Cheese is visible on the screen. To do this we need to drag to Cheese.Visible block from the Cheese section under My Blocks and connect it to the test. Now drag another if then-do block in the else-do section. See highlighted below: 24
25 The test for the if then-do block is a < (Less Than) test. The less than block can be found in the Built-In section under Math. Drag this to the test connection. In the first gap place random faction (found in Built-in under Math) and in the second gap place the number.05 (5%). This is also found in the Built-In section under Math. So 5% of the time when Cheese is not visible we want to display Cheese again. To do this go to My Blocks and under Cheese you will find Set Cheese.Visible to. Drag this into the then-do section. You will also need to drag true from the Built-In section under Logic and connect it to Cheese.Visible. 25
26 Similar to the instructions on the previous page we are setting a value to true but in this case it is Cheese.Enabled, this can also be found under Cheese in My Blocks. The restart button should allow the user to restart the game, to do this go to RestartButton under My Blocks and drag RestartButton.Click on to the workspace. Now we can drag set global energy to (from My Definitions) into RestartButton.Click. The function (set global energy to) needs an argument, this is what you are setting energy to. In this case we are setting it to 200. To do this drag a number function from the Math section under Built-In and change the number to 200. We would also like to set Cheese to Visible, under Cheese in My Blocks you will find Set Cheese.Visible to, drag this on to the block. You will also need to drag true from Logic under the Built-In section. Then will set the cheese image to be visible on the screen. 26
27 Similar to the instructions on the previous page we are setting a value to true but in this case it is Cheese.Enabled, this can also be found under Cheese in My Blocks. Following the example above we are setting Mouse.Enabled to true in the same way. Under Mouse in My Blocks you will find Set Mouse.Picture To, drag this on to the Restart Button block. You will need to set the name of the picture you would like to set it to. To do this drag a text block from the Built-In section under Text. Change the name of the text to Mouse.png. (Ensure you type this with a capital M as it is case sensitive). The next procedure we will be working on is going to be called UpdateCat. Drag a procedure block from Control under Built-In and rename it to UpdateCat. Drag an if then-do block into this procedure block. 27
28 The test that we will be using in this procedure is a < (Less than) block similar to the one we used earlier in the tutorial. In the first gap in this less than block drag random fraction from the Math section under Built-In. The second gap will be filled with a number (also under the math section). Change this number to.1 which represents 10%. (See below). In the then-do section you can change the direction the cat is moving towards. In My Blocks under Cat you will see Cat.Heading. Drag this to the then-do section. There is a built in function called atan2 that we will be using to change the direction of the Cat. This function can be found in the Math section under Built-In. Drag this function on to the workspace and connect it to Cat.Heading. Drag the minus block (found in Math under Built-In) on to both the y and the x connection, see below: 28
29 You will find Cat.Y and Cat.X in the Cat section under My Blocks. You will find Mouse.Y and Mouse.X in the Mouse section under My Blocks. Drag these to the relevant places as seen in the screen shot below: Now the procedure that we just created can be added to Clock1.Timer, to do this drag the procedure from My Blocks under My Definitions and put it into Clock1.Timer. Now we need to work on the case that the Cat eats the mouse. To do this we need to add another if then-do block into Mouse.CollidedWith (from Built-In under Control). We will be using the equals block as part of the test for this if block. This can be found in the Math section under Built-In. 29
30 You will be using the argument (other) value in this test; this can be found within My Blocks under My Definitions. Drag this block to the first gap on the equals block. We are comparing the other value with the Cat component (this can be found under My Blocks in the Cat section). Drag this into the second gap. In the case that the test is true we want to set a new energy level, in order to do this drag set global energy to from My Definitions under My Blocks. Put this into the thendo section in the if block. We need to set the energy variable to a number, in order to do this drag Number from the Math section under Built-In. Change the number to 0. 30
31 After setting the energy level to 0 we will also need to display this on the screen. To do this drag DisplayEnergy from My Definitions section under My Blocks. Put this under where we are setting the energy variable to 0. In the same way as above we should also drag the GameOver procedure into this block. Within the Restart button we need to change the position of the Mouse as we are starting a new game. To do this drag the Mouse.MoveTo function from the Mouse section in My Blocks on to the RestartButton.Click block. 31
32 In this case we are also making use of the random integer function (found within the Math section under Built-In). Once this has been dragged on to the block and connected to x we should change one of the numbers from 1 to 0. We should also delete the to number by pressing delete or dragging it to the bin. We are instead going to use the minus block to work out the maximum number. This can be found in the Math section under Built-In. Under FieldCanvas in My Blocks you will see FieldCanvas.Width, drag this to the first gap in the minus block. In the second gap drag the Mouse.Width value from the Mouse section under My Blocks. 32
33 For the y section on Mouse.MoveTo please follow the instructions from the previous page but replace Width with Height. Now we are going to add sound and vibration. When the Mouse eats a piece of cheese there should be a vibration. To do this go to the Sound1 section under My Blocks and drag Sound1.Vibrate into the EatCheese block. We need to set a number of milliseconds that the vibration runs for, to do this we need to use number which can be found in the Math section under Built-In. Drag this number to connect with Sound1.Vibrate and change the number to
34 Finally, go back to the Sound1 section under My Blocks and drag Sound1.Play out and insert it into the bottom of the Mouse.CollidedWith block. This will give a meow sound when the Cat has eaten the Mouse. That s it, the app is now ready for you to test it.
35 Step 4: Try it out Connect to the device and test the program In order for us to test to see if our Cat & Mouse game works we can set up an emulator this is a little on screen phone which acts like a real phone that allows us to test the app. We create a new emulator by clicking on the New emulator button at the top of our blocks editor. The following window will appear. This tells you that it will take a few minutes for the emulator to load. You must wait for the emulator to load fully before you test your app. Read this then Just click OK. Once the emulator is ready (that is when you have unlocked it and followed the above instructions) you can connect and send your app. Select the device from the device list. Click here. The list will populate with the name of your emulator device which is also found on the top of your loaded emulator. Click on the correct device name in this list. *You will notice the app is transferring to the emulator device. You will see the yellow phone appear beside Connect to Device when this changes to the green phone it means the application is ready.
36 Once it has transferred your app will appear on the emulator. Most of the functionality of this app cannot be emulated so to get the full experience it would be best to load this app on to the phone for testing. You have just created a functional Cat & Mouse Game, Well Done End Note: For the Cat & Mouse game we used sounds, images, accelerometer (movement sensors), image sprites and timers. Following these methods why don t you try different sounds and or images? You can also keep track of a score using the same type of variable Remember, if it can be done, the pieces will fit together like a jigsaw otherwise think of another way to try it. ~ Have fun ~ 36
Ladybug Chase. What You ll Build. What You ll Learn
Chapter 5 Ladybug Chase Games are among the most exciting mobile phone apps, both to play and to create. The recent smash hit Angry Birds was downloaded 50 million times in its first year and is played
Creating Animated Apps
Chapter 17 Creating Animated Apps This chapter discusses methods for creating apps with simple animations objects that move. You ll learn the basics of creating two-dimensional games with App Inventor
Mobile Apps with App Inventor
Mobile Apps with App Inventor written for 91.113 Michael Penta Table of Contents Mobile Apps... 4 Designing Apps in App Inventor... 4 Getting Started... 5 App Inventor Layout... 5 Your First App... 7 Making
What You ll Build. CHAPTER 3 MoleMash
CHAPTER 3 MoleMash This chapter shows you how to create MoleMash, a game inspired by the arcade classic Whac-A-Mole, in which mechanical critters pop out of holes, and players score points when they successfully
Hello Purr. What You ll Learn
Chapter 1 Hello Purr This chapter gets you started building apps. It presents the key elements of App Inventor the Component Designer and the Blocks Editor and leads you through the basic steps of creating
CHAPTER 1 HelloPurr. The chapter covers the following topics:
CHAPTER 1 HelloPurr This chapter gets you started building apps. It presents the key elements of App Inventor, the Component Designer and the Blocks Editor, and leads you through the basic steps of creating
Or working offline with the local server: Once you have the App Inventor running type into your browser http://localhost:8888
App Inventor Tutorial 10 Calculator This tutorial will help you develop a calculator using If statements and a ListPicker. You will be asked to enter 2 numbers, Number1 and Number2. When you have entered
Xylophone. What You ll Build
Chapter 9 Xylophone It s hard to believe that using technology to record and play back music only dates back to 1878, when Edison patented the phonograph. We ve come so far since then with music synthesizers,
App Inventor Tutorial 11 QR Code Reader
App Inventor Tutorial 11 QR Code Reader This is an app which will demonstrate the use of the phone s built in camera as an input device for a QR Code scanner. Note this app will not work on the emulator
Named Memory Slots. Properties. CHAPTER 16 Programming Your App s Memory
CHAPTER 16 Programming Your App s Memory Figure 16-1. Just as people need to remember things, so do apps. This chapter examines how you can program an app to remember information. When someone tells you
MIT App Inventor Getting Started Guide
MIT App Inventor Getting Started Guide What is App Inventor? App Inventor lets you develop applications for Android phones using a web browser and either a connected phone or an on-screen phone emulator.
PaintPot. Figure 2-1. The PaintPot app
Chapter 2 PaintPot This tutorial introduces the Canvas component for creating simple, two-dimensional (2D) graphics. You ll build PaintPot, an app that lets the user draw on the screen in different colors,
App Inventor Beginner Tutorials
App Inventor Beginner Tutorials 1 Four Simple Tutorials for Getting Started with App Inventor 1.1 TalkToMe: Your first App Inventor app 4 1.2 TalkToMe Part 2: Shaking and User Input 23 1.3 BallBounce:
BallBounce: A simple game app
BallBounce: A simple game app In this tutorial, you will learn about animation in App Inventor by making a Ball (a sprite) bounce around on the screen (on a Canvas). Start a New Project If you have another
Android Programming Family Fun Day using AppInventor
Android Programming Family Fun Day using AppInventor Table of Contents A step-by-step guide to making a simple app...2 Getting your app running on the emulator...9 Getting your app onto your phone or tablet...10
Mobile Programming (MIT App Inventor 2)
Mobile Programming (MIT App Inventor 2) http://www.plk83.edu.hk/cy/ai2 Contents 1. Understanding the working environment (Page 1) 2. First Android Program (HelloPurr) (Page 4) 3. Completing HelloPurr (Page
App Inventor Drum Machine Instructions (Project #1) (Version 2 of App Inventor) Description:
App Inventor Drum Machine Instructions (Project #1) (Version 2 of App Inventor) Description: App Inventor is a web based tool that allows the user to create apps for Android devices. The user interface
CHAPTER 14 Understanding an App s Architecture
CHAPTER 14 Understanding an App s Architecture Figure 14-1. This chapter examines the structure of an app from a programmer s perspective. It begins with the traditional analogy that an app is like a recipe
Fish Chomp. Level. Activity Checklist Follow these INSTRUCTIONS one by one. Test Your Project Click on the green flag to TEST your code
Introduction: We re going to make a game! Guide the large Hungry Fish and try to eat all the prey that are swimming around. Activity Checklist Follow these INSTRUCTIONS one by one Click on the green flag
Programming Your App to Make Decisions: Conditional Blocks
Chapter 18 Programming Your App to Make Decisions: Conditional Blocks Computers, even small ones like the phone in your pocket, are good at performing thousands of operations in just a few seconds. Even
How to Build a Simple Pac-Man Game
How to Build a Simple Pac-Man Game For today's program, we are going to build a simple Pac-Man game. Pac-Man was one of the very first arcade games developed around 1980. For our version of Pac-Man we
Presidents Quiz. What You ll Learn
Chapter 8 Presidents Quiz The Presidents Quiz is a trivia game about former leaders of the United States. Though this quiz is about presidents, you can use it as a template to build quizzes on any topic.
ClickView Digital Signage User Manual
ClickView Digital Signage User Manual Table of Contents 1. What is ClickView Digital Signage?... 3 2. Where do I find ClickView Digital Signage?... 3 2.1. To find ClickView Digital Signage... 3 3. How
1.0-Scratch Interface 1.1. Valuable Information
1.0-Scratch Interface 1.1 Valuable Information The Scratch Interface is divided to three: 1. Stage 2. Sprite/background properties 3. Scratch Action Blocks Building the game by designing the sprites and
Create a Poster Using Publisher
Contents 1. Introduction 1. Starting Publisher 2. Create a Poster Template 5. Aligning your images and text 7. Apply a background 12. Add text to your poster 14. Add pictures to your poster 17. Add graphs
BallBounce: A simple game app
BallBounce: A simple game app In this tutorial, you will learn about animation in App Inventor by making a Ball (a sprite) bounce around on the screen (on a Canvas). Name the Project Call it something
Whack-a-Witch. Level. Activity Checklist Follow these INSTRUCTIONS one by one. Test Your Project Click on the green flag to TEST your code
Introduction: This project is like the game Whack-a-Mole. You get points for hitting the witches that appear on the screen. The aim is to get as many points as possible in 30 seconds! Activity Checklist
GAMELOOPER DESKTOP APP
GAMELOOPER DESKTOP APP INTERFACE Home Screen Home Screen is the black screen that opens up when you open GameLooper. You can also reach Home Screen by pressing Go To Home button in the top left corner
Intellect Platform - Tables and Templates Basic Document Management System - A101
Intellect Platform - Tables and Templates Basic Document Management System - A101 Interneer, Inc. 4/12/2010 Created by Erika Keresztyen 2 Tables and Templates - A101 - Basic Document Management System
Dreamweaver and Fireworks MX Integration Brian Hogan
Dreamweaver and Fireworks MX Integration Brian Hogan This tutorial will take you through the necessary steps to create a template-based web site using Macromedia Dreamweaver and Macromedia Fireworks. The
Mobile App Design Tool for Smartphones: A Tutorial
Mobile App Design Tool for Smartphones: A Tutorial Hak. J. Kim and Jonathan Modell Abstract The paper presents the basics of mobile application creation for smartphones using the visual programming tool,
Adding A Student Course Survey Link For Fully Online Courses Into A Canvas Course
Adding A Student Course Survey Link For Fully Online Courses Into A Canvas Course Instructors who teach fully online courses using Canvas can add a link to the online course survey for their class to their
The first step is to upload the Helicopter images from a strip. 1) Click on Resources > Create Sprite 2) Name it spr_helicopter 3) Click Edit Sprite
GAME:IT Helicopter Objectives: Review skills in making directional sprites Create objects that shoot and destroy for points Create random enemies on the scene as game challenges Create random enemies on
Unit 21 - Creating a Button in Macromedia Flash
Unit 21 - Creating a Button in Macromedia Flash Items needed to complete the Navigation Bar: Unit 21 - House Style Unit 21 - Graphics Sketch Diagrams Document ------------------------------------------------------------------------------------------------
Creating and Using Links and Bookmarks in PDF Documents
Creating and Using Links and Bookmarks in PDF Documents After making a document into a PDF, there may be times when you will need to make links or bookmarks within that PDF to aid navigation through the
CHAPTER 18 Programming Your App to Make Decisions: Conditional Blocks
CHAPTER 18 Programming Your App to Make Decisions: Conditional Blocks Figure 18-1. Computers, even small ones like the phone in your pocket, are good at performing millions of operations in a single second.
Advanced Layer Popup Manual DMXzone Advanced Layer Popup Manual
Advanced Layer Popup Manual Page 1 of 42 Index Index... 2 About Advanced Layer Popup... 3 Features...3 Create a popup window with an image... 6 Introduction...6 Simple Layer Popup with an image...6 Applying
Introduction to Android Development
2013 Introduction to Android Development Keshav Bahadoor An basic guide to setting up and building native Android applications Science Technology Workshop & Exposition University of Nigeria, Nsukka Keshav
CHAPTER 12 NXT Remote Control
Chapter 12 NXT Remote Control In this chapter, you ll create an app that turns your Android phone into a remote control for a LEGO MINDSTORMS NXT robot. The app will have buttons for driving the robot
User Tutorial on Changing Frame Size, Window Size, and Screen Resolution for The Original Version of The Cancer-Rates.Info/NJ Application
User Tutorial on Changing Frame Size, Window Size, and Screen Resolution for The Original Version of The Cancer-Rates.Info/NJ Application Introduction The original version of Cancer-Rates.Info/NJ, like
TalkToMe Part 2: Shaking and User Input
TalkToMe Part 2: Shaking and User Input This tutorial shows you how to extend the basic TalkToMe app so that it responds to shaking, and so that the user can make the phone say any phrase s/he types in.
Crop and Frame Your Photos
Crop and Frame Your Photos Paint Shop Pro s crop tool gives you total control over your photo compositions. Cropping allows you to turn busy portraits into professional prints. And when you have a nicely
Adding Animation With Cinema 4D XL
Step-by-Step Adding Animation With Cinema 4D XL This Step-by-Step Card covers the basics of using the animation features of Cinema 4D XL. Note: Before you start this Step-by-Step Card, you need to have
Instructions for Creating a Poster for Arts and Humanities Research Day Using PowerPoint
Instructions for Creating a Poster for Arts and Humanities Research Day Using PowerPoint While it is, of course, possible to create a Research Day poster using a graphics editing programme such as Adobe
Introduction to Android Programming
S3 Computer Literacy 2 nd Term P.16 Introduction to Android Programming Programming languages can be classified into low-level languages and high-level languages. Low-level language High-level language
Intro to Excel spreadsheets
Intro to Excel spreadsheets What are the objectives of this document? The objectives of document are: 1. Familiarize you with what a spreadsheet is, how it works, and what its capabilities are; 2. Using
Tutorial 13: Object Animation
Tutorial 13: Object Animation In this tutorial we will learn how to: Completion time 40 minutes Establish the number of frames for an object animation Rotate objects into desired positions Set key frames
MAKE AN A-MAZE-ING GAME
STEM Fuse GAME:IT MAKE AN A-MAZE-ING GAME In this assignment, you will create your own maze game using Game Maker. The game you create will be a simple maze game. The object of the game will be for the
American Sign Language Alphabet App (Project #2) (Version 2 of App Inventor) Description:
American Sign Language Alphabet App (Project #2) (Version 2 of App Inventor) Description: This App will take text input and then translate each letter of the text to the corresponding American Sign Language
Hello. What s inside? Ready to build a website?
Beginner s guide Hello Ready to build a website? Our easy-to-use software allows to create and customise the style and layout of your site without you having to understand any coding or HTML. In this guide
Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102
Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Interneer, Inc. Updated on 2/22/2012 Created by Erika Keresztyen Fahey 2 Workflow - A102 - Basic HelpDesk Ticketing System
MAKE YOUR FIRST A-MAZE-ING GAME IN GAME MAKER 7
MAKE YOUR FIRST A-MAZE-ING GAME IN GAME MAKER 7 In this tutorial, you will learn how to create your first game in Game Maker. The game you will create will be a simple maze game. The object of the game
Creating Fill-able Forms using Acrobat 8.0: Part 1
Creating Fill-able Forms using Acrobat 8.0: Part 1 The first step in creating a fill-able form in Adobe Acrobat is to generate the form with all its formatting in a program such as Microsoft Word. Then
C-more Remote HMI App
Topic: CM630 C-more Remote HMI App SAFETY NOTICE: The C-more Remote HMI App allows the user to connect to remote C-more panels from Ethernet, Wi-Fi, or cellular network connections. The Remote user can
Sage Accountants Business Cloud EasyEditor Quick Start Guide
Sage Accountants Business Cloud EasyEditor Quick Start Guide VERSION 1.0 September 2013 Contents Introduction 3 Overview of the interface 4 Working with elements 6 Adding and moving elements 7 Resizing
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
Create an Art Collage
Create an Art Collage Anyone with children knows how much art they bring home from school everyday, those backpacks full of art add up fast. Now, you don t have to part with a single precious piece or
CREATE A 3D MOVIE IN DIRECTOR
CREATE A 3D MOVIE IN DIRECTOR 2 Building Your First 3D Movie in Director Welcome to the 3D tutorial for Adobe Director. Director includes the option to create three-dimensional (3D) images, text, and animations.
HELP CONTENTS INTRODUCTION...
HELP CONTENTS INTRODUCTION... 1 What is GMATPrep... 1 GMATPrep tip: to get the most from GMATPrep software, think about how you study best... 1 Navigating around... 2 The top navigation... 2 Breadcrumbs,
What is OneDrive for Business at University of Greenwich? Accessing OneDrive from Office 365
This guide explains how to access and use the OneDrive for Business cloud based storage system and Microsoft Office Online suite of products via a web browser. What is OneDrive for Business at University
2342-4. Scientific m-learning. 4-7 June 2012. Mobile Application Development using App Inventor for Android Devices
2342-4 Scientific m-learning 4-7 June 2012 Mobile Application Development using App Inventor for Android Devices TRIVEDI Kirankumar Rajnikant Shantilal Shah Engineering College New Sidsar Campu, PO Vartej
SCRATCH PROGRAMMING AND NUMERACY IN SENIOR PRIMARY CLASSES
SCRATCH PROGRAMMING AND NUMERACY IN SENIOR PRIMARY CLASSES Lero, NCTE 2012 Page 2 Table of Contents Page Number Course Introduction page 4 Module 1: page 5 Module 2: page 22 Module 3: page 32 Module 4:
Making Visio Diagrams Come Alive with Data
Making Visio Diagrams Come Alive with Data An Information Commons Workshop Making Visio Diagrams Come Alive with Data Page Workshop Why Add Data to A Diagram? Here are comparisons of a flow chart with
Joomla Article Advanced Topics: Table Layouts
Joomla Article Advanced Topics: Table Layouts An HTML Table allows you to arrange data text, images, links, etc., into rows and columns of cells. If you are familiar with spreadsheets, you will understand
Windows XP Managing Your Files
Windows XP Managing Your Files Objective 1: Understand your computer s filing system Your computer's filing system has three basic divisions: files, folders, and drives. 1. File- everything saved on your
USING WINDOWS MOVIE MAKER TO CREATE THE MOMENT BEHIND THE PHOTO STORY PART 1
PART 1 Windows Movie Maker lets you assemble a range of video, pictures, and sound elements to create a story. It is an application that comes with most PC computers. This tip sheet was created using Windows
Check out our website!
Check out our website! www.nvcc.edu/woodbr idge/computer-lab Contact Us Location: Open Computer Lab Seefeldt Building #336 NOVA Woodbridge Campus Hussna Azamy (OCL Supervisor) Phone: 703-878-5714 E-mail:
X-Trade Brokers Dom Maklerski S.A. XTB Expert Builder. Tutorial. Michał Zabielski 2010-08-05
X-Trade Brokers Dom Maklerski S.A. XTB Expert Builder Tutorial Michał Zabielski 2010-08-05 Table of Contents Installation...3 Legal notification...7 Initial adjustments / Preferences...8 Language...8 Platform
TUTORIAL 4 Building a Navigation Bar with Fireworks
TUTORIAL 4 Building a Navigation Bar with Fireworks This tutorial shows you how to build a Macromedia Fireworks MX 2004 navigation bar that you can use on multiple pages of your website. A navigation bar
Dreamweaver Tutorials Creating a Web Contact Form
Dreamweaver Tutorials This tutorial will explain how to create an online contact form. There are two pages involved: the form and the confirmation page. When a user presses the submit button on the form,
Computer Science Concepts in Scratch
Computer Science Concepts in Scratch (Scratch 1.4) Version 1.0 Michal Armoni and Moti Ben-Ari c 2013 by Michal Armoni, Moti Ben-Ari, Weizmann Institute of Science. This work is licensed under the Creative
Terminal Four (T4) Site Manager
Terminal Four (T4) Site Manager Contents Terminal Four (T4) Site Manager... 1 Contents... 1 Login... 2 The Toolbar... 3 An example of a University of Exeter page... 5 Add a section... 6 Add content to
Triggers & Actions 10
Triggers & Actions 10 CHAPTER Introduction Triggers and actions are the building blocks that you can use to create interactivity and custom features. Once you understand how these building blocks work,
Introduction to scripting with Unity
Introduction to scripting with Unity Scripting is an essential part of Unity as it defines the behaviour of your game. This tutorial will introduce the fundamentals of scripting using Javascript. No prior
After going through this lesson you would be able to:
18 :: Data Entry Operations 2 Operating System 2.1 INTRODUCTION The operating system in these days uses a graphical user interface (GUI). Here you do not have to remember all the commands by heart. The
Windows File Management A Hands-on Class Presented by Edith Einhorn
Windows File Management A Hands-on Class Presented by Edith Einhorn Author s Notes: 1. The information in this document is written for the Windows XP operating system. However, even though some of the
You can view, download or upload files through the WEB interface or FTP link depending on Type of access you have been granted.
Cannon FTP Site Instructions You can view, download or upload files through the WEB interface or FTP link depending on Type of access you have been granted. The typical rights assigned are: Read Only Allows
Setting Up Your Android Development Environment. For Mac OS X (10.6.8) v1.0. By GoNorthWest. 3 April 2012
Setting Up Your Android Development Environment For Mac OS X (10.6.8) v1.0 By GoNorthWest 3 April 2012 Setting up the Android development environment can be a bit well challenging if you don t have all
Help. Contents Back >>
Contents Back >> Customizing Opening the Control Panel Control Panel Features Tabs Control Panel Lists Control Panel Buttons Customizing Your Tools Pen and Airbrush Tabs 2D Mouse and 4D Mouse Tabs Customizing
Introduction to ProForm Rapid elearning Studio. What is ProForm? The ProForm Course Authoring Tool allows you to quickly create
Introduction to ProForm Rapid elearning Studio The ProForm Rapid elearning Studio includes the ProForm Course Authoring Tool, the SWiSH Rapid Animation Tool, and the RapidCam Screen Recording Tool. This
Information Technology Solutions
Connecting People, Process Information & Data Network Systems Diagnostic Testing Information Technology Solutions Getting started in Workflow Designer Prior Learning 1. While it helps to have some knowledge
The Richard Pate School. Draft Year 4 Scheme of Work for Scratch
The Richard Pate School Draft Year 4 Scheme of Work for Scratch Marcus Gilvear July 2014 (Acknowledgements: Phil Bagge and Duncan Hooper) Re Scratch: This work is licensed under the Creative Commons Attribution-NonCommercial
econtrol 3.5 for Active Directory & Exchange Self-Service Guide
econtrol 3.5 for Active Directory & Exchange Self-Service Guide This Guide Welcome to the econtrol 3.5 for Active Directory and Exchange Self-Service Guide. This guide is econtrol end-users who have been
How to create buttons and navigation bars
How to create buttons and navigation bars Adobe Fireworks CS3 enables you to design the look and functionality of buttons, including links and rollover features. After you export these buttons from Fireworks,
Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick Reference Guide
Open Crystal Reports From the Windows Start menu choose Programs and then Crystal Reports. Creating a Blank Report Ohio University Computer Services Center August, 2002 Crystal Reports Introduction Quick
Graphic Objects and Loading Them into TGF2/MMF2
Graphic Objects and Loading Them into TGF2/MMF2 There are a couple of ways of ensuring graphics appear in a game. Types of objects you can use: Active Object: Consider the active object any image that
Exercise 10: Basic LabVIEW Programming
Exercise 10: Basic LabVIEW Programming In this exercise we will learn the basic principles in LabVIEW. LabVIEW will be used in later exercises and in the project part, as well in other courses later, so
Using an Access Database
A Few Terms Using an Access Database These words are used often in Access so you will want to become familiar with them before using the program and this tutorial. A database is a collection of related
GeoGebra Statistics and Probability
GeoGebra Statistics and Probability Project Maths Development Team 2013 www.projectmaths.ie Page 1 of 24 Index Activity Topic Page 1 Introduction GeoGebra Statistics 3 2 To calculate the Sum, Mean, Count,
Scrolling Tutorial For The Games Factory 2 / Multimedia Fusion 2
Scrolling Tutorial For The Games Factory 2 / Multimedia Fusion 2 In this tutorial you will learn how to do scrolling in The Games Factory 2 and Multimedia Fusion 2. You will also see some different examples
MEDIAplus administration interface
MEDIAplus administration interface 1. MEDIAplus administration interface... 5 2. Basics of MEDIAplus administration... 8 2.1. Domains and administrators... 8 2.2. Programmes, modules and topics... 10 2.3.
REFERENCE GUIDE 1. INTRODUCTION
1. INTRODUCTION Scratch is a new programming language that makes it easy to create interactive stories, games, and animations and share your creations with others on the web. This Reference Guide provides
Fruit Machine. Level. Activity Checklist Follow these INSTRUCTIONS one by one. Test Your Project Click on the green flag to TEST your code
Introduction: This is a game that has three sprites that change costume. You have to stop them when they re showing the same picture (like a fruit machine!). Activity Checklist Follow these INSTRUCTIONS
Digital Marketing EasyEditor Guide Dynamic
Surveys ipad Segmentation Reporting Email Sign up Email marketing that works for you Landing Pages Results Digital Marketing EasyEditor Guide Dynamic Questionnaires QR Codes SMS 43 North View, Westbury
After that you can log in and start creating games or playing existing games.
Magos Lite http://magos.pori.tut.fi/ Magos Lite (ML) can be played directly from a browser. It is optimized for Chrome but will work on other major browsers, except Internet Explorer (not supported). ML
UNIVERSITY OF CALGARY Information Technologies WEBFORMS DRUPAL 7 WEB CONTENT MANAGEMENT
UNIVERSITY OF CALGARY Information Technologies WEBFORMS DRUPAL 7 WEB CONTENT MANAGEMENT Table of Contents Creating a Webform First Steps... 1 Form Components... 2 Component Types.......4 Conditionals...
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you
Communicating with Skype for Business
Communicating with Skype for Business Information Services Communicating with Skype for Business This guide is for people who are new to Skype for Business, and provides information on how to begin using
understand how image maps can enhance a design and make a site more interactive know how to create an image map easily with Dreamweaver
LESSON 3: ADDING IMAGE MAPS, ANIMATION, AND FORMS CREATING AN IMAGE MAP OBJECTIVES By the end of this part of the lesson you will: understand how image maps can enhance a design and make a site more interactive
