Вы находитесь на странице: 1из 20

You may not use this tutorial for any other purpose than learning, working or

having fun... In other words: You can use this PDF tutorial for anything you’d like,
as long as it doesn’t involve both a hammer and a squirrel.

marchewkowy@gmail.com

Page 1/20
Welcome, Spade Squadron pilots!

Welcome to another one of Koobare’s little tutorials, teaching you – as always – how to
effectively and efficiently use the best multimedia authoring tool ever – Multimedia Fusion 2
by Clickteam! This tutorial is meant for beginners, people who just began their adventurous
journey into the Fusion world. If you’re more of an advanced clicker, someone who already
played with a project or two on his own, you may want to either skip this one (you can find more
tuts I’ve created for ya’ at the Clickteam’s official website) or slide down to the programmer’s
part, omitting all the setups and explanation that you – with your experience – don’t really need.
Either way, you can take a look at this simple lesson guide, to show you where we’re at and
where are we going to afterwards (note that this is just a suggestion):

MMF2 Interface: Interface Guide + Image Editor Guide First time with MMF2

Basics: Smelly Claw tutorial Novices

Game tutorials: Risky Waters Beginners

Game tutorials: Glob Wars Beginners

You are here → The Spade Squadron Beginners

Next: You’ve Got Spacemail! and/or Mystery of Paris Beginner-intermediates

Next: Castle Defender and/or Space Corsair Beginner-intermediates

In this tutorial we’re going to create a simple, yet playable, space shoot’em-up game, in which
you become an astropilot, a member of the elite Spade Squadron that defends Earth and its
colonies from the evil, bloodthirsty Grazors – technologically advanced and yet culturally
barbaric invaders from the Zulux-Pai system. This is going to be a pretty straightforward
project, without any twists or special features… Well, you could call the fact that we’re going to
give our player the ability to choose the game’s difficulty at startup a “special feature”, but let’s
not get over the top with this – it’s gonna’ be a really simple system, since this tutorial is meant
to be that way, from start till end.

The Grazors are attacking!

Jeffrey J. Spade, both the fleet’s top gun and the commanding officer of the Spade Squadron,
was asleep for a mere hour when the intercoms went into full orchestra-mode, ringing so loud
that he could barely hear his own thoughts. He awakened momentarily (the tone of the
intercom was designed in such a way that only a dead man wouldn’t open his eyes when it

Page 2/20
went off), grabing the intercom’s console and pushing the big, yellow button situated on top, the
one that stated “open comlink”.
“This is Spade, Spade Squadron, officer three-two-seven-three,” he identified himself
straight away, still halfway in his sleep. “Dunno what’s happening, but you’ve got my attention.”
“I need more than just your attention,
Jeff. I need you in the cockpit, and about a
minute ago,” a deep-voiced man at the other
end of the line responded with a series of
sounds that resembled rather a hardly
understandable growl, than properly accented,
separate words. “It’s the Grazors, they’re all
over sectors E18 to E21. A full Grazor
squadron, four units at least. We need your
men out there right now or Katarn Station is
lost. They haven’t reached it yet, but…”.
“Katarn,” Jeff repeated the dreadfully
familiar name in his thoughts. The Kyle Katarn
Station was the single most important resupply
space station placed in Earth’s orbit. Without it,
organizing an expedition to one of Earth’s
colonies would take months, instead of just
days – perhaps even longer. Defending this
thing was absolutely crucial, there’s no way it
could get into Grazor cat-like paws.
Jeff nodded, even though he knew that his caller couldn’t see that.
“I’m on my way”, he said, “Get Nova, Kisgoori and the rest of our men to the hangars.
It’s time we show the Grazors all the tricks we’ve learned from our last encounter… I’m gonna’
show them how much I hate being woken up in the middle of the night”.
It took the Spade Squadron eight minutes and twenty seconds to get to their fighters,
launch the whole wing and assemble at sector E17, ready to move in into the next one. They
didn’t waste even a second, having all the routines memorized by hard, all the moves imprinted
onto their sub-conscience.
When the Grazors attacked for the first time, two years ago, they weren’t as prepared.
They lost seven pilots in the Battle of Saturn – a tragedy Jeff refused to forget. Since then, a lot
has changed. New fighters, new weaponry, new tactics… And better training. They weren’t
rookies anymore. They’ve dealt with the enemy on countless occasions, they defended Earth,
the space stations that surrounded it, it’s colonies and supply convoys. Each of them has shot

Page 3/20
down at least a dozen of Grazor starships, each of them dodged countless blasts of enemy fire
and won against horrific odds. Each… but one. GreenGoose, the newest addition to the team,
was fresh out of training. He wasn’t a kid anymore, but compared to his squadron mates… He
surely did seem like one.
“Oh yeah, it’s finally happening!”, a young voice filled the channel with awkward, over-
the-top exuberance, “finally some action!”
GreenGoose’s fighter made a rapid turn, breaking out of formation, shot two laser blasts
out into space and returned to his assigned position after no more than three seconds.
“Be patient, rookie! The Grazors are feeding on your mistakes like bears on honey, don’t
feed ‘em, eh?”, D-Tee commented over the intercom, echoing the commander’s own thoughts.
“Easy, kid. Don’t be such a cowboy, now,” Jeff curbed GreenGoose’s enthusiasm with
his razor-sharp, unforgiving tone. “And keep the
channel clear. No unnecessary chatter, no
unnecessary fire, keep it together or your
recklessness will get you blown to pieces.”
GreenGoose opened the channel, wanting
to say that he’s sorry, but suddenly changed the
topic, influenced by four little blips that appeared
on his radar…
“Twelve o’clock, four boogies,” he said.
“Roger that, Goose,” Jeff replied shortly.
“Engaging the enemy. ETA 3 minutes”.
They entered the combat area on full
throttle, covering each other’s tails. The whole
squadron modified their formation as soon as they
made visual contact with the enemy, trying to
predict their moves and respond to them as
quickly as possible… But even then they were
unsuspectingly moving right into an ambush! As
soon as they moved in closer, a fifth Grazor,
hidden behind a small piece of rock floating through the system, jumped to their view, aimed at
GreenGoose’s engines… and fired away. All in a matter of seconds…
Spade’s squadron’s newest starfighter exploded in a burst of flames.
“Goose!” Nova yelled into the microphone. “Sir, they got him! Goose… I think Goose is
KIA, sir. Dead as last year’s tuna sandwich…”
“No, I’m not,” GreenGoose replied, to Nova’s surprise. “They bashed me pretty hard, but
the cabin is still pressurized. I’m lucky to be alive, but alive nonetheless, sir!”

Page 4/20
Jeff blinked twice, trying to decide what to do next. They’ve lost the initiative.
GreenGoose was floating in a heavily shattered hunk of metal, easy target for any of the
Grazors… And they weren’t known for being merciful.
“Nova…” Jeff’s voice was almost a whisper.
“Yes, commander?”
“Take the rest of the boys and protect Goose at any cost. Push him out of this sector.”
“Excuse me, sir?”, Nova’s tone was that of unbelieving.
“You’ve heard me!” Jeff’s yell was so authoritative that all of the squadron members
grabbed the steering controls a bit firmer. “Protect Goose, no matter what. Those are your
orders, don’t try to disobey them or I will have you court-marshaled!”
“Yes… Yes, sir…” Nova replied. “But what about you, sir?”
“Me?”, Jeff smiled, “I’m gonna’ make myself a nice little Grazor-hunting.”
“Five to one, sir? You’re going to take all of them on your own?”
“Yes, lieutenant. That is exactly what I’m gonna’ do!” Jeff said, maximizing the speed of
his fighter. He prepped the shields and made sure that the laser cannon is fully loaded.
“Remember the Battle of Saturn?!” he shouted to the Grazors, even though they
couldn’t hear him. “Today is payback time! And you’re all mine!”

If you have any problems with this tutorial (or notice that there are some
mistakes present), please, contact me and I’ll do my best to help you.

Contact me at: marchewkowy@gmail.com


Alternative e-mail: koobare@panzerflakes.com

Note: I’ve been receiving several reports that not all e-mails get to me for some
reason. Seems that some of them (quite a lot) end up in my spambox or are
blocked out by the server. I dunno why this is happening, so if you’re experiencing
any difficulties with delivering me a message or haven’t received a reply in quite some
time, please, send me another e-mail at marchewkowy@wp.pl, making sure that its
title begins with “To Koobare:”. I’ll do my best to check both these e-mails regularly.

If you’re interested in all the other stuff I do, not just my tutorials, check out this
nifty little site: www.panzerflakes.com – there’s some free stuff there, wallpapers and
royalty-free resources for your games, plus you can hire the wackiest loony amongst
clicking mercenaries (yup, that would be me) to do your graphical bidding. Argh!

Page 5/20
Part I: Setting up the application…

So, here we are: Jeff (who is going to be controlled by


the player) is engaging the enemy on his own, the
Grazors are circling around him, preparing to unleash
their rage and go after him with everything they’ve got…
And we’re here, setting up our application, so that this
project has a nice lil’ beachhead on which it can be built.

First of all, create a new application and save it onto


your hard drive (whether you name it like me –
“TheSpadeSquadron.mfa” – or in a different way, is all up
to you), then change the game’s name to “The Spade
Squadron” (right-click on the app in the Workspace
toolbar and select “Rename”). Remember that it’s always
a good idea to have the Autobackup option of MMF2
turned on (check your MMF2’s Preferences). Now, go to
your application’s Properties window (if it didn’t open up
by itself, right click on your application’s name in the
workspace toolbar and select Properties from the drop-
down menu), and select the Window tab (second from
the left). Set the window size to 800x600. If MMF2 asks
you if you’d like to modify the size of the existing frame as well, select “Yes”. If it doesn’t ask
you for itself, just open up the Storyboard Editor and manually change the size of the existing
frame to 800x600. When we’re at it, you may easily brand our game – return to the Properties
window of your application (you may need to click the name of your application in the
Workspace toolbar), select the About tab (first from the right), and change the “Description”
field to “The Spade Squadron Tutorial Game”. You may want to change the app’s icon, but
that’s totally up to you.

Once you’re done with that, open up the Values tab


(third one from the right, the one with the “A-Z” symbol),
which will enable us to edit the Global Values for our
application. Globals are values assigned to the whole
app, not just to a single frame, which can be very helpful
to control the whole game and transfer data between

Page 6/20
frames (for example, letting the third frame know whether the player has picked up an item in
frame number two). We actually need just one GV: create it and name it “Difficulty”. This will
prove useful a bit later on, when we’ll be playing with the difficulty settings of our game.

Now, it’s time to create all the frames we’ll need and name them properly. You’ve already got a
single 800x600 empty frame in there, so rename it to “Difficulty” and… well, just leave it alone.
Now, create a second frame – this one’s gonna’ be a bit bigger… Rename it to “Game” and set
its size to 2000x2000 – this is going to be our playing field, so we’ll need a bit of space.

Interested in one game type in particular? Would like to learn about something
that hasn’t been covered in any of the released tutorials yet? Got an idea that
could interest other tutorial-readers? Just drop me an e-mail!

Contact me at: marchewkowy@gmail.com


or write to the auxiliary address: koobare@panzerflakes.com

Part II: We’re moving in!

Just to make your (and mine) life a bit easier, we’re now
going to open up a pre-prepared app, in which we’ll find
everything we need to prepare this game. To continue,
just close what you’ve done so far (the lesson’s learned, so don’t weep after those 5 minutes of
work) and open up the TheSpadeSquadron-starter.mfa file (should be in the same
directory as this tutorial, since they were packed together into the same archive).

Please note: most of the objects use alpha channels, a feature that is
unavailable in Games Factory 2 (TGF2 users should use basic library
objects or create their own graphics instead – I generally would advise you
to upgrade to MMF2 as soon as possible, since you’re missing out on some
really good stuff, a lot of quite impressive features).

Page 7/20
Once you’re done with that, open up the first frame (the one
named “Difficulty”) and take a look around, checking out all the
objects… Actually, there’s not really much to look at – four
objects, and that’s counting in the Quick Backdrop star
background. The big logo of our game (brilliantly named
“Big.Logo”) has a nice fade-in transition (set to 2 seconds), but
that’s basically all there is to see here. That’s why we need to
move on to the Event Editor and… well, code a little.

If you’re new to my tutorials, let me introduce you to the event-recording system that I use – it’s
really simple and easy to remember. If you know it already – just skip this frame below and
quickly move on to the coding part:

Koobare’s MMF-to-paper coding system

IF (Condition): [Object for the condition] >> Condition group >> Condition
THEN (Action): [Object for the action] >> Action group >> Action

Seems simple, right? Well, that’s just because IT IS simple. All the conditions are
marked in red, while actions are written in fancy blue. Object names are always
put in [square brackets]. The final condition/action is always in Italic. If we’ll have
a multi-condition event, then it’ll be like this:

IF (Condition 1): [Object for condition 1] >> Condition group 1 >> Condition 1
IF (Condition 2): [Object for condition 2] >> Condition group 2 >> Condition 2
THEN (Action): [Object for the action] >> Action group >> Action

Whereas a multi-action event looks like this:

IF (Condition): [Object for condition] >> Condition group >> Condition


THEN (Action 1): [Object for the action 1] >> Action group 1 >> Action 1
THEN (Action 2): [Object for the action 2] >> Action group 2 >> Action 2

Any additional comments, instructions and info (including everything you have to
input by keyboard) will be put in << double angle brackets >>, like this:

Page 8/20
<< Select any wave sound from the MMF2’s sound library >>

From time to time I’ll also use this style to throw in some extra tips and tricks
about MMF2 and more advanced coding techniques. All you have to do is to go
step-by-step through all the listed events and keep one eye on your Event Editor,
and the second one on this tutorial…

Eventing the first frame!

1) Firstly, let’s start off with the event I usually create at the very beginning – the “Start of
frame”-conditioned one… This won’t be too long, it’ll just play some background music:

IF: [Storyboard Controls] >> Start of frame


THEN: [Sound Object] >> Samples >> Play and loop sample
<< Choose the “Melting.wav” sound, loop it 0 times, which means infinitely >>
<< You can find this sample on MMF2’s Bonus Disc (or you can choose a different one) >>

Got it? Great! We’ve just prepared our first event, even if it was a bit whimpy…

2) This one’s not really a big step up, but – hey! – at least it’s got two actions instead of one,
that’s gotta’ be worth something, right?

IF: [Keyboard & Mouse Object] >> The Mouse >> User clicks on an object
<< select: LEFT BUTTON, SINGLE CLICK >>
<< choose the [Start.Casual] object >>

Page 9/20
THEN: [Special Object] >> Change a global value >> Set
<< Choose value Difficulty >>
<< input: 0 >>
THEN: [Storyboard Controls] >> Next frame

3) And here’s almost an identical event, but this one starts the game with the “Difficulty” Global
value set to 1 (instead of 0, as in the event above):

IF: [Keyboard & Mouse Object] >> The Mouse >> User clicks on an object
<< select: LEFT BUTTON, SINGLE CLICK >>
<< choose the [Start.Hardcore] object >>
THEN: [Special Object] >> Change a global value >> Set
<< Choose value Difficulty >>
<< input: 1 >>
THEN: [Storyboard Controls] >> Next frame

As you can see above, no matter which one of the button-actives the user clicks, he’s beamed
up to the next frame… The difference is in the Difficulty value (which is set to 0 or 1). And
that’s basically it for this frame of our app, get to the next one and open up the Frame Editor…
I’ll be waiting for ya’ there!

Part III: Let’s get this going!

Time to once again take a look at all the objects laying around – but this time in the second
frame (the “Game” one). There are seven objects in the frame, including the Quick Backdrop
space background and the Counter that measures the player’s energy shields and hull integrity
(two in one! Now that’s an occasion, folks!). We should check out all the other objects, since
some of them have a number of preferences set up that you could learn from.

Page 10/20
Hmm, what do we’ve got here? Oh, there are two laser objects: one blue
(used by the Grazors) and one red (coming from our player’s cannons),
both have a two-frame disappearing animation, and both of them have the
“Follow the frame” option turned off… This means that no matter how
many turns does the player make after shooting his projectile – the laser is
going to fly straight no matter what, independently from the frame’s scrolling. This may not
sound too good – actually, when I’m typing this right now I feel like I’m bending the rules of the
universe, but, hey, it does work in the game and it even looks kinda’ cool (kinda’), so wait a bit
until we see it in action before bestowing your judgment on these poor two lil’ laser beams. One
thing to mention here: when a red laser bumps into a blue laser they don’t really get along too
well… Basically, they both disappear, so keep that in mind until we get to the coding part.

Oh, and what’s that? Behold! The mighty Grazor warship! It’s
movement is set to basic Bouncing Ball (Speed 60,
Deceleration 0, 32 angles, Randomizer 20, Security 60), it
has a single Alterable Value named Hit, set to start with 0
(check the Values tab, third from the right). It’s fade-out
transition is set to Zoom (duration 1.35 sec.) and – last, but
not least – it has a nice rotating animation which was done in
MMF2’s Image Editor, from a single imported image.

The next thing on our list (note that I’m not really going in
alphabetical order)? Oh, yeah, then there’s that little logo of ours,
“The Spade Squadron” one. It’s basically just an Active object,
with the “Follow the frame” option set off.

Page 11/20
Aaaand finally, we’ve got Jeff’s fighter, Spade One, a highly
advanced, maneuverable, slick piece of machinery, ready to blast
all those Grazors into pieces. It has a basic Race car movement
set up, with the Initial direction set to 0 (right), Speed set to 65,
Acceleration set to 45, Deceleration set to 40, Rotating speed set
to 60 and 32 movement angles.

The basic idea is like this: the Grazors fly around the combat area randomly (they bounce
around, to be more precise), from time to time flying a bit closer to Spade One. If one of them is
shot, it abruptly enters combat mode, stops spinning, stops moving and starts shooting towards
Jeff’s fighter. Once the combat is commenced, Spade One must shoot the incoming enemy
laser beams (destroying them before they get to him) and try to destroy the Grazor, flooding it
with as much laser firepower as possible. If he’ll bump into a Grazor warship, he is damaged
and bounces away. And that’s basically all there is to it – now all we have to do is to turn this
theory into MMF2 code… Ready? Then let’s go! It’s now officially time for…

Part IV: Programmer’s delight.

1) Go into the Event Editor of this frame and let’s start off with this lil’ thingie:

IF: [Storyboard Controls] >> Start of frame


THEN: [Sound Object] >> Samples >> Play and loop sample
<< Choose the “Ethnic Science.wav” sound, loop it 0 times, which means infinitely >>
<< You can find this sample on MMF2’s Bonus Disc (or you can choose a different one) >>

And we’ve just got ourselves a nice little soundtrack for our game! If you want you may choose
any other music from MMF2’s Bonus Disc.

2) Now its time to create two events that will change the amount of our player’s health (or
rather: his armor and shield values), depending on the Difficulty he chose earlier:

IF: [Storyboard Controls] >> Start of frame


IF: [Special Object] >> Compare to a global value
<< Choose value Difficulty >>
<< compare if it is Equal to 0 >>
THEN: [Counter] >> Set Counter
<< input: 500 >>

Page 12/20
IF: [Storyboard Controls] >> Start of frame
IF: [Special Object] >> Compare to a global value
<< Choose value Difficulty >>
<< compare if it is Equal to 1 >>
THEN: [Counter] >> Set Counter
<< input: 150 >>

3) And here’s the usual “Always” event, setting up our scrollings correctly:

IF: [Special Object] >> Always


THEN: [Storyboard Controls] >> Scrollings >> Center window position in frame
<< Set it to 0,0 relative from [Spade.One] >>

4) And here’s a small four-event series of “dontcha’ leave that play area, or things will happen”:

IF: [Spade.One] >> Position >> Test position


<< Select “Leaves in the top?” – arrow leaving the frame at the top >>
<< Select “Leaves in the right?” – arrow leaving the frame to the right >>
<< Select “Leaves in the bottom?” – arrow leaving the frame at the bottom >>
<< Select “Leaves in the left?” – arrow leaving the frame to the left >>
THEN: [Spade.One] >> Movement >> Bounce

IF: [Grazor] >> Position >> Test position


<< Select “Leaves in the top?” – arrow leaving the frame at the top >>
<< Select “Leaves in the right?” – arrow leaving the frame to the right >>
<< Select “Leaves in the bottom?” – arrow leaving the frame at the bottom >>
<< Select “Leaves in the left?” – arrow leaving the frame to the left >>
THEN: [Grazor] >> Movement >> Bounce

Here are the events corresponding to the lasers (note that they don’t justbounce off):

IF: [Laser.Red] >> Position >> Test position


<< Select “Leaves in the top?” – arrow leaving the frame at the top >>
<< Select “Leaves in the right?” – arrow leaving the frame to the right >>
<< Select “Leaves in the bottom?” – arrow leaving the frame at the bottom >>
<< Select “Leaves in the left?” – arrow leaving the frame to the left >>
THEN: [Laser.Red] >> Destroy

Page 13/20
IF: [Laser.Blue] >> Position >> Test position
<< Select “Leaves in the top?” – arrow leaving the frame at the top >>
<< Select “Leaves in the right?” – arrow leaving the frame to the right >>
<< Select “Leaves in the bottom?” – arrow leaving the frame at the bottom >>
<< Select “Leaves in the left?” – arrow leaving the frame to the left >>
THEN: [Laser.Blue] >> Movement >> Bounce

5) This event will enable the player to shoot down those pesky Grazors:

IF: [Keyboard & Mouse Object] >> The Keyboard >> Upon pressing a key
<< press SPACE on your keyboard >>
IF: [Counter] >> Compare the counter to a value
<< check if it’s greater than 0 >>
THEN: [Spade.One] >> Shoot an Object…
<< Select the [Laser.Red] object >>
<< Set Speed of object to 100 >>
<< Select “Use the direction of [Spade.One]” >>
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “SUCKER2.wav” sound >>
<< You can find this sample on MMF2’s Bonus Disc (or you can choose a different one) >>

And here’s a screenshot of what we’ve got so far… If your Event Editor looks a bit different,
dontcha’ worry about it, it doesn’t have to be exactly the same – it takes just a single chaotic
click to mix up the column sequence (but as long as it works in the end – everything’s fine)…

6) Time for another short series of events, this time sorting out all the collisions that can pop up
in our game… Create these six events, one after the other:

Page 14/20
IF: [Laser.Red] >> Collisions >> Another object >> [Grazor]
THEN: [Grazor] >> Alterable Values >> Add to
<< Add 1 from Hit >>
THEN: [Grazor] >> Movement >> Stop
THEN: [Grazor] >> Animation >> Stop
THEN: [Laser.Red] >> Destroy
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “METAL9.wav” sound >>
<< You can find this sample on MMF2’s Bonus Disc (or you can choose a different one) >>

IF: [Laser.Red] >> Collisions >> Another object >> [Laser.Blue]


THEN: [Laser.Red] >> Destroy
THEN: [Laser.Blue] >> Destroy
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “HITSNTH3.wav” sound >>
<< You can find this sample on MMF2’s Bonus Disc (or you can choose a different one) >>

IF: [Spade.One] >> Collisions >> Another object >> [Laser.Blue]


IF: [Special Object] >> Compare to a global value
<< Choose value Difficulty >>
<< compare if it is Equal to 0 >>
IF: [Special Object] >> Limit conditions >> Only one action when event loops
THEN: [Laser.Blue] >> Destroy
THEN: [Counter] >> Subtract from Counter
<< input: 1 >>
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “PULSE07.wav” sound (you can find it on the MMF2’s Bonus Disc) >>
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “IMPACT01.wav” sound (you know where to look for it, right?) >>

IF: [Spade.One] >> Collisions >> Another object >> [Laser.Blue]


IF: [Special Object] >> Compare to a global value
<< Choose value Difficulty >>
<< compare if it is Equal to 1 >>
IF: [Special Object] >> Limit conditions >> Only one action when event loops
THEN: [Laser.Blue] >> Destroy
THEN: [Counter] >> Subtract from Counter
<< input: 5 >>
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “PULSE07.wav” sound (you can find it on the MMF2’s Bonus Disc) >>

Page 15/20
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “IMPACT01.wav” sound (you know where to look for it, right?) >>

IF: [Spade.One] >> Collisions >> Another object >> [Grazor]


THEN: [Spade.One] >> Movement >> Bounce
THEN: [Grazor] >> Movement >> Bounce
THEN: [Counter] >> Subtract from Counter
<< input: 10 >>
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “METAL9.wav” sound (as always: find it on MMF2’s Bonus Disc) >>
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “IMPACT01.wav” sound (MMF2BD) >>

IF: [Grazor] >> Collisions >> Another object >> [Grazor]


THEN: [Grazor] >> Movement >> Bounce

Got it? Great! Here’s a screenshot of all the collision events. Take a look and move on:

7) This event will give the Grazors a little bit of firepower:

IF: [Grazor] >> Alterable Values >> Compare to one of the alterable values
<< check if Hit is Greater or equal 1 >>
IF: [The Timer Object] >> Every
<< Set the timer to 1 second >>
THEN: [Grazor] >> Shoot an Object…
<< Select the [Laser.Blue] object >>
<< Set Speed of object to 100 >>
<< Select “Shoot in direction of” and choose 0,0 relative to [Spade.One] >>

Page 16/20
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “SUCKER1.wav” sound (MMF2BD) >>

8) Don’t forget about this one or Jeff won’t be able to destroy those pesky alien invaders!

IF: [Grazor] >> Alterable Values >> Compare to one of the alterable values
<< check if Hit is Greater or equal 10 >>
IF: [Special Object] >> Limit conditions >> Only one action when event loops
THEN: [Grazor] >> Destroy
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “Crash.wav” sound (MMF2BD) >>
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “Morpher 2.wav” sound (MMF2BD) >>

9) These two events will help us control the Grazor warships’ movement a bit… The first event
here will make one of the Grazors fly towards the player’s position every 2 seconds, the second
one is here to just randomize the alien movement a bit…

IF: [The Timer Object] >> Every


<< Set the timer to 2 seconds >>
IF: [Grazor] >> Pick or count >> Pick one at random
THEN: [Grazor] >> Direction >> Look in the direction of…
<< Select 0,0 relative to [Spade.One] >>

IF: [The Timer Object] >> Every


<< Set the timer to 9 seconds >>
THEN: [Grazor] >> Movement >> Bounce

10) We’re almost at the finish line – three more events to go. This event controls what happens
when the player’s hull & shield counter goes down to zero:

IF: [Counter] >> Compare the counter to a value


<< compare whether it is Equal 0 >>
IF: [Special Object] >> Limit conditions >> Only one action when event loops
THEN: [Spade.One] >> Destroy
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “Crash.wav” sound (MMF2BD) >>
THEN: [Sound Object] >> Samples >> Play sample
<< Choose the “Disintergrate.wav” sound (MMF2BD) >>

Page 17/20
11) And here are the two last events…

IF: [Grazor] >> Pick or count >> Have all been destroyed?
THEN: [Storyboard Controls] >> Previous frame

IF: [Spade.One] >> Pick or count >> Have all been destroyed?
THEN: [Storyboard Controls] >> Restart the application

Got it? Great! Here, take a look at this little screenshot and then… Well, just scroll down…

Aaaaand… That’s it! You’ve finished this tutorial! Congratulations!

And just like that… We’re done! “The Spade Squadron” tutorial is complete! If you want, you
may play a bit with this game, make it longer, add new features, try to implement all the things
you’ve learned from my other tutorials… There’s still much to do here! Oh, and I would almost
forgot… If you’re interested - here’s the ending of our Jeff J. Spade’s little story…

Jeff took his finger from the fighter’s trigger button. Last one of the Grazor warships has just
been ripped apart by decompression, disappearing slowly in a cloud of fire and smoke. Once a
powerful and deadly machine, it was dying in silence, bleeding with cooling fluid and small
metal parts. The fight was over.
“Spade Two, this is Spade One, come in,” Jeff breathed a sigh of relief, waiting for Nova
to answer his call. “Spade Two, is the little one safe?”

Page 18/20
“This is Spade Two, I read you loud and clear Spade Leader. Glad to hear you’re still
with us…” Nova’s response came in almost immediately. “Goose is a little bit dazed, but he’ll
make it. MedEvac and engineers are already on the way. Oh, and it seems that Command is so
excited that you’re gonna’ be swimming in medals for the rest of your life...”
Jeff smiled to himself, redirecting all of his ship’s fusion energy to the engines. He didn’t
care about the medals, he didn’t care about the glory. He finally made them pay. He finally got
his vengeance, and the Battle of Saturn will no longer hunt him in his dreams.
“Spade Leader, this is Spade five,” a young voice chased away his thoughts.
“I read you, Goose”, Jeff replied.
“Sir… I don’t know where to start…”, GreenGoose said.
“Well…” Jeff smiled again, this time a bit wider, “You can start by buying me a beer
once we get back to our base. See ya’ there. Spade Leader… Out.”

Thanks for your time and see you again soon!

Cheers!

If you have any questions, suggestions or just need help –


mail me at marchewkowy@gmail.com
oh, and remember to check out
www.panzerflakes.com

To answer a question that I find in my e-mail box ever so often: yes, I can help
you with your game, create you some graphics, design your levels, draw you a
menu screen and write you a story… But I cannot do it for free – I actually
upkeep myself from my designing, so there’s no chance for that. But if you’ve
got some spare cash, you can hire me to create whatever you’d like, you’ll
receive vehicles, monsters, explosions, dialogues and whatever else you need.
I’m a designer mercenary and I’m always for hire.

Oh, and by any chance don’t miss www.PanzerFlakes.com – it’s panzer!

Page 19/20
You have been reading…

Created for Multimedia Fusion 2 & Multimedia Fusion 2: Developer

Always be sure to have your MMF2 up-to-date!

Page 20/20

Вам также может понравиться