MinecraftTutorialTextAlienInvaders
MinecraftTutorialTextAlienInvaders
Oh no! Alien pixel spaceships are descending on the Minecraft world! You'll have to pilot a pixel
spaceship of your own and fire pixel bullets to stop them!
In this project, you will recreate a classic arcade game. You'll use Minecraft blocks to simulate the
iconic pixelated appearance of older video games.
Use the bot to place and remove the elements of the game, detect the presence of a "button" to
steer the player's ship, and manage everything in a game loop that runs periodically.
How the Game Works
To recreate this classic game in Minecraft, you will "draw" the visuals of the game--ships and bullets-
-with blocks. You need to repeatedly draw and redraw these blocks as the game's state changes.
That way you can animate the movement of the player's ship, enemy ships, and bullets.
In the code given to you, look for the "game loop" function:
Once this function is called, it repeatedly does several things over and over, several times per
second:
As it is right now, the "game loop" function will keep running forever. There's no point to leaving the
game running after the player has beat it, though!
Let's add a "win condition" to the loop so that if the player has won, the game ends.
1. Drag the above "if-else" block into the loop, in between "draw player bullet" and "change by."
2. Inside the "if-else" block, attach a "game over" function block. For the game over message, write
something like "Congratulations, you won!"
3. After the "game over" block, attach a "break" block. This will stop the game loop.
Add a Challenge
So far, you can shoot down the alien ships, but there is no danger to you! Let's make the game more
dangerous by making the alien ships fire back.
Drag the "draw alien bullet" function into the game loop, right after the "draw player bullet"
function, so that the loop looks something like this:
Test your game. Notice that the first alien ship will periodically fire a bullet downwards toward the
player.
The aliens are attacking now, but there's no danger yet; the alien bullet doesn't actually harm the
player ship. Let's fix this so the game is actually challenging.
1. Drag the above "if-else" statement into your game loop, after the "draw alien bullet" function. Its
conditional detects whether the player has not been flagged as "alive" (i.e. the player has been
hit/"killed") in the game's background code.
2. Inside the "if-else" block, add another "game over" block.
4. Add a "break" block next so that the loop will stop running.
Test your game. Now, if you allow the player ship to be hit by an alien bullet, the game should
disappear and display a loss message.
Change the Aliens' AI
You might have noticed how it is always the first alien that fires a bullet at the player, even if that
alien has already been destroyed!
Let's make this behavior more interesting, so that it is always a random (living) alien that fires.
Scroll down to the "draw alien bullet" function at the very bottom of the code area. It's complex, but
don't worry too much about how it works. Find the last section of the function, which looks like this:
1. Find the code block in this section that sets the "alien" variable to "get aliens[0]."
3. Replace it with the "get random alien" function that we have provided you:
Awesome! Your game is working pretty well now. Have fun playing it!
If you feel brave, you can play with the game's underlying code and try to make even more
improvements, such as...
● Adding a second "game over" condition: when the aliens reach the ground, you lose. Try
checking the value of the "game step" variable.
● Enhancing the "draw alien ship" and "draw player ship" functions to make more
interesting ships. Make sure to adjust "erase entity" as well.
● Increasing the number of aliens created in the "game setup" function.
● Challenge: Adding more alien bullets.
● Challenge: Adding "shields" above the player ship.