game maker tutorial
DESCRIPTION
Game Maker Tutorial. Where to Get. Game Maker Tutorials http://ictmindtools.net/gamemaker/tutorials/ Introduction Clickball Where is it? Shooting Maze Game Monsters Maze Game 2 Scoring & Lives Sprites Platform Moves Jumping Ladders Backgrounds Variables Programming Challenges - PowerPoint PPT PresentationTRANSCRIPT
Game Maker TutorialGame Maker Tutorial
Where to Get..■ Game Maker Tutorials
http://ictmindtools.net/gamemaker/tutorials/• Introduction Clickball • Where is it? Shooting • Maze Game Monsters Maze Game 2 • Scoring & Lives Sprites Platform Moves Jumping • Ladders Backgrounds Variables • Programming Challenges
■ Game Maker 8.0 Download http://www.yoyogames.com/
Introduction■ User Interface
rooms: the scenes (levels) in which the objects live
backgrounds: the images used as background for the rooms
objects: the things in the game • instances: one particular
occurrence of an object sprites: images that are used to
show the objects sounds: these can be used in
games, either as background music or as effects
scripts: small pieces of code that can be used to extend the possibilities of your game
Your First Game
■ Step 1: Set up the Game area Start Game Maker and create a room where the action will
happen: Click the 'Add Room' icon Choose a background colour In settings, make the room caption 'Catch the Ball'
Addroom.swf
Your First Game
■ Step 2: Add in the Sprites you need - a ball and a wall Click the 'Add Sprite' icon
• Name it sprBall Click Load Sprite, and find the ball image. We also need a wall sprite.
• Find it in the Pacman folder. • Name it sprWall
■ Naming Sprites, Sounds & Objects every sprite sprXXXX the sounds sndXXXX the objects objXXXX.
add_sprite.swf
Your First Game
■ Step 3: Create the objects create ball and wall objects
• need an object to put in your game. • A sprite just represents the object.
Click the Add Object icon • Name it objBall• Choose the Ball sprite to represent the object
don't make it solid. (It's best not to make moving objects solid.) It interferes with the Game Maker collision detection system and
your object may become 'stuck' Add in a wall object.
• Name it objWall, choose the Wall sprite, and make it solid.
addobject.swf
Your First Game
■ Step 4: add them to the room Put it in the room and add a wall Open the room
• Add in a ball (left click) Delete (right click)
• Add in walls (hold Shift and click) Copy Multiple Object (Shift + Left click) Move Object (Ctrl + Left Click)
object_to_room.swf
Your First Game
■ Step 5: Set up the Events for when your game is played Events are the things that happen in your game. We want the ball to start moving in a random direction. Open the properties for the ball object Add in an Event for when the ball is created. Choose start moving in all directions at speed 8
• the ball moves 8 pixels for each step of the game. • If the game is running at the normal speed of 30 frames per
second, then there will be 30 steps every second. You can change the game speed in the settings tab of the room
properties
eventmove.swf
Your First Game
■ Step 6: set a bounce action for when the ball collides with the wall. Add in an event for when the ball collides with the wall. Set the ball to bounce.
■ Step 7: add score Add in an event to the ball object for when the left mouse button is
pressed. • Set the score to 1, but make sure you choose Relative.
Left Button vs Left Press ?? Relative vs Absolute ??
Bounce.swf
Score.swf
Your First Game
■ Step 8: add alarm Approx every second we will make the ball change direction. setting an alarm clock to trigger an event every second.
• set the alarm clock when the game first starts, • each time the alarm goes we will make the ball change
direction• reset the alarm.
Alarms.swf
Your First Game
■ Step 9: add sounds set a sound(sndBeef1) for when the ball collides with the wall. set a sound(sndGunshot1) to the ball object for when the left
mouse button is pressed. • Create beef1 and gunshot1 sounds• the collision event with the wall
Play sndBeef1• the left button press event
Play sndGunshot1
Your First Game
■ Step 10: setting a background improve the appearance by setting a background.
■ Step 11: add information add information to tell the user how to play the game
background.swf
information.swf
Your First Game
■ Step 12: Ending your Game Let's say we want the game to end when the player's score is 20.
• Each time we add to the score, we will check whether the score is equal to 20 Ending the Game more Gracefully
■ Extension improve the Ending Game by creating a text object and putting it
in an ending room
Endgame.swf
Gameover.swf
Your First Game
■ Extension Making your Ball Bounce Accurately off Walls
• you need to treat horizontal and vertical walls separately. Create sprites and objects for a ball, a horizontal wall block and a
vertical wall block.
• Add a room and draw a box around the ball using the sprites.
• start the ball moving in a random direction and set events to make the ball bounce
bouncing1.swf
bouncing2.swf
bouncing3.swf
Shooting
■ In this exercise we are going to have a monster that shoots a bullet. Create a new game with a bullet and monster sprite and a
bullet and monster object. • You can find the sprites in the Breakout folder
Place the monster object in a room
shooting1.swf
Shooting
■ Open the properties window for the Monster object. Add a keypress event for when the space bar is pressed. Choose the Main1 tab, and choose the 'Create an Instance of
an Object' Select the following options: shooting2.swf
Shooting
■ Now we need to make the bullet move. Open the properties window for the objBullet. Add a create event. From the movement tab, choose Set the Vertical Speed Set the speed to be -6
• Making the vertical speed -6 means the bullet will move upwards
shooting3.swf
Shooting
■ After the bullet disappears from the play area, even though we can't see it, it is still in the game moving upwards forever
■ adding an event to destroy the bullet after it leaves the play area. Open the properties for objBullet. Add an 'Other' Event > Choose Outside Room From the Main1 tab, choose Destroy the Instance
shooting4.swf
Shooting
■ Making an explosion when the bullet hits something Add bullet and animated explosion sprites and objects to
your game Place the bullet at the bottom of the room and make it move
up the screen: We want the bullet to explode when it is 50 pixels from the
top of the screen.
explosion.swf
Shooting
■ Blocks of Code You will notice in the code above the actions for starting and
ending a block of code
if the question at the top is true, • the entire block of code (all the actions) will be executed,
otherwise if the question is false, • none of it will be executed.
Shooting■ Changing Direction of Sprites
this plane appears to be flying upwards: When you change directions to fly left, it does not look right,
so you need a sprite that looks like this:
To do this you must first create the sprites to face in each of the directions.
change the sprite for the object whenever the left, right, up or down keys are pressed.
stop your object to stop moving when you are no longer pressing a key and you would like the object to change to a 'stopped' sprite.
gm_sprite_directions1.swf
gm_sprite_directions2.swf
sprite_nokey.swf
Shooting
■ Extension Shooting in the Direction You are Facing ??
• It can be quite challenging to make your character shoot in the direction it is facing.
Maze Game■ Add 2 rooms : Set the room size to be 480x480 pixels and set the
grid to be 32x32 pixels■ adding 3 sprite
sprWall sprPerson sprTarget ■ Create objects
Now create a wall object: Name it objWall• Use the wall sprite• Make it solid (so things can't pass through it)
Create the person object : Name it objPerson• Use the person sprite
Create a target object : Name it objTarget• The target object should not be solid, as the player needs to be able to
move on top of it. When the player collides with the target object, the game will continue on to the next room.
Maze Game
■ Set up movement for the person Add an event to the person object for the Keyboard <Left>
• Add the action from the Control tab 'If instance is aligned with grid‘
• Set the snap horizontal and snap vertical to be 32 pixels.• Add a start moving in direction • Set the direction to be left and speed to be 4
Add actions for the up, down and right keys. (You can use the duplicate event option to make this job easier)
To stop the person moving• add actions for the <No Key> event• Click the centre block in the 'Start moving in a direction'
options.
Maze Game
■ Set up collision handling If the person collides with a wall it should stop, so add a
collision event
Add a collision event to the target object for a collision with objPerson
Maze Game
■ Draw 2 maze-like rooms making sure that you have walls all around the outside. Place the person and target at the beginning and end of your
maze
Monsters
■ Add in 2 sprites one facing left and the other facing right objMonsterleft, bjMonsterRight Make a monster object : objMonster
■ Add a create event for objMonster Add in a Start Moving action make it start moving to the right.
■ Add a collision event for objMonster add in the following actions:
Paths are another way of doing the same thing, but without using collisions with blocks to turn the monster around.
Maze Game 2
■ To make the maze more interesting, we should be collecting diamonds along the way. A door stops the person from getting to the target. When all
the diamonds are gone, the door disappears. The target does not appear in the room until all the diamonds
are collected. ■ Add 2 new sprites
sprDoor and sprDiamond
■ Add 2 new objects objDoor and objDiamond. Make the door solid as it acts like a wall
Maze Game 2
■ Add sounds for picking up the diamonds : sndDiamond for opening the door : sndDoor.
■ Place diamonds around your maze. The objDiamond should have a collision event with the
person It should then play the diamond sound and destroy itself
Maze Game 2
■ Place the door so that it blocks access to the target Don't put any diamonds on the other side of the door!
■ In the person object add a collision event with the door object, stopping the
person and aligning it with the grid. Just the same as you did with the wall object
■ When all the diamonds are gone, the door should play a sound and destroy itself. Add the step event to the door object Add the 'If the number of instances is a value' action. (On the
Control tab) Choose these options:
Step event : occurs once for every step of the game, which is usually 30 times a second.
Maze Game 2 play a sound and destroy the door if there are no diamonds
left add block markers to our actions
■ Save and play your game to test whether it works as expected.
Maze Game 2■ The Target Marker
use a target that does not appear in the room until all the diamonds are collected
■ Create a marker sprite and object. Call them sprMarker and objMarker. Make it invisible by unchecking the Visible option.
■ use the step event add an action 'If the number of instances (of the diamond) is zero,
Change the Instance to change the marker to the actual Target object
■ Place the target marker in the room where you want the target to appear.
Reference
■ Reference http://ictmindtools.net/gamemaker/tutorials/ http://www.yoyogames.com/make/tutorials http://forums.tigsource.com/index.php?topic=3251.0 http://www.learningplace.com.au/deliver/content.asp?
pid=35421 http://madebyluke.com/gamedesign/tutorials/index.html http://en.wikibooks.org/wiki/Game_Maker_Programming http://en.wikipedia.org/wiki/Game_Maker http://gamemaker.info/en http://www.gmlscripts.com/gm8help/help/index.html