Make sure, at this point, to rename the original - Polk STEM

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
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
1) Click File > Create from Strip and select the
helicopter.png file
1) In the Loading a strip image pop-up box, enter the
following:
Number of images: 3
Images per row: 3
Image width: 64
Image height: 64
Click OK
This creates the 3
sub-images that will
be used for the
animation
1. Click the Show Preview check box to view the
animation
1. Click the green check mark icon to save the
changes
Now we will program the animated helicopters that face the
direction of the arrow keys located on the side number pad.
7. Right click on the sprite helicopter and
find the duplicate function.
8. Rename the sprite spr_helicopter_right—the picture is not
currently facing right-----------------that is the next set of directions.
9. Click on the Edit Sprite button pulling up the Sprite Editor
10. Click on the Transform menu
11. Select the Rotate function
12. Set the angle to 90 degrees (is the helicopter facing right?)
13. Make sure this “Applies to all images in the sprite”
14. Click OK
15. Click the checkmark to save
16. Click the OK button to save
Repeat the procedure to create your left (180
degrees) and down sprite (270 degrees).
Make sure, at this point, to rename the original
sprite spr_helicopter_up
Programming the NEW sprites to turn to correct direction
1) Create an obj_helicopter
2) Create all these events (we will use the number keypad to
control the helicopter (include a <no key> event).
Starting with the 8 key (up):
Select the Change Spite action from the Main 1 folder
Select spr_helicopter_up as the image, enter 0-2 subimage, and speed 1
Note: Specifying subimage 0-2 creates the animation. The computer is
continually displaying subimage 0, subimage 1, subimage 2 ….
(helicopter blades in different locations)
The second action is to actually create the movement and
direction with the Move Fixed action.
Select the Up arrow key and a Speed of 8
Using that programming as an example, create a
helicopter that flies and points in the 7 other
directions (using the numeric keypad)
You will also need to create 4 more sprites at 1, 3, 7, and 9 positions.
7
8
4
9
6
1
2
3
And the 5 key will be used for . . . . . firing
Part 2: Programming the ability to shoot (in all directions).
Add a create event. Add action Set Variable. Call it “angle_of_bullet”.
The sprite helicopter is facing up so the initial value should be
90 (degrees).
In Game Maker the program interprets degrees like the
figure below.
90
45
135
0
180
315
225
270
In the case of number 1 on the keypad, the direction of the
helicopter is facing 225 degrees, so the variable
angle_of_bullet needs to be set at 225 degrees.
Set all the keypads (EXCLUDING #5) to their proper degrees
Call up the #5 key—this is our trigger.
The key action is called Create Moving. This will create an
obj_bullet at the center of the sprite. It will be heading in the
direction of “angle_of_bullet” at a speed of 10.
Since we don’t have any type of delay, the bullets
come out as a stream of bullets.
Many of the objects you will program will have bullets
coming out, not at the center, but at the edges.
When the bullet comes from 0,0—it’s easy to program—it
always stays at 0,0. But when you have 2 bullets, and the
helicopter is facing up—one bullet comes from -10 (x),0 (y) and
one bullet comes from +10 (x), 0 (y).
-10,0
0,0
+10,0
But when the helicopter is facing right—one bullet
comes from 0 (x), -10 (y) and one bullet comes from
0 (x), +10 (y)—x and y are switched.
And what about the 45 degree shots. . .
ALL can be solved with a formula:
x= 16*cos((obj_helicopter.angle_of_bullet+270)*pi/180)
Bullet 1
y= 16*-sin((obj_helicopter.angle_of_bullet+270)*pi/180)
x= 16*cos((obj_helicopter.angle_of_bullet+90)*pi/180)
Bullet 2
y= 16*-sin((obj_helicopter.angle_of_bullet+90)*pi/180)
?,?
0,0
?,?
That’s why it’s important to take math classes (trigonometry)
Finished Product
Part 3: Something to shoot at?
How about random Hot Air Balloons?
Create a spr_balloon and then an obj_balloon.
To program balloons appearing at random points along the top of the
screen:
1) An object controller needs to be created (obj_controller_balloon).
No sprite will be assigned to this object.
2) Add a Create EVENT and a Create Instance action to create a balloon
somewhere off the top of the screen: x=random(room_width), y= -16
Set an alarm (Alarm 0) action to go off after 50 steps.
Then add an Alarm 0 Event.
And when the Alarm goes off—what happens?
It will do 2 things: 1) Create a new instance of obj_balloon
(same x,y coordinates as the previous Create instance).
2) Reset the alarm for another, in this case, 100 steps.
How are the actual balloons programmed?
1) Create EVENT: Set Vertical Speed to 1.
2) Step EVENT (always checking): Check Variable to see if y is larger
than room_height (the +32 allows the balloon to completely float off
the screen before it does the next item)
Jump to Position action (where it restarts at a random spot at the top
of the room, using the same x and y coordinates).
3) The last EVENT—if the balloon Collides with a bullet—what do you
want to happen?
It could just disappear (destroy instance of self (balloon) and
a 2nd destroy instance (other—the bullet)).
Why not obj_bullet —it will destroy ALL bullets on the screen.
But why just have the balloon disappear? Why not have it explode?
Design your own explosion sprite with multiple images (see below for
an example)
Program the game so when the obj_balloon collides with obj_bullet it
changes into the explosion sprite.
We also need to program the obj_explosion so the animation ends and
the instance is destroyed. Do this with an Other Event and select
Animation End and then a Destroy Instance action.
Save this game as Game8_yourname and play and test. If it plays
correctly, move onto the assignment.
The President of the United States has come to stay on your tropical
island. Terrorists (hot air balloonists) want to destroy your island.
Your Assignment is to create a game in
which you protect your island from any
wayward hot air balloonists and thus
save the President!
Helicopter must fly and fire in all 8 directions.
Requirements:
Program balloons to be coming from at least 3 different sides of the screen (each
balloon will be a different color combination). They will reset randomly if not
destroyed.
If a balloon touches the island, the island disintegrates into a massive explosion
and the game ends.
Make sure to put the controller in
the room!!!!