<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mr Sun Studios &#187; AS2</title>
	<atom:link href="http://www.mrsunstudios.com/category/flash/as2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mrsunstudios.com/blog</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Tue, 28 Jul 2009 15:03:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Tutorial: Create a Tower Defense Game in AS2 &#8211; Part 7</title>
		<link>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-7/</link>
		<comments>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-7/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:07:48 +0000</pubDate>
		<dc:creator>MrSun</dc:creator>
				<category><![CDATA[Advanced Tutorials]]></category>
		<category><![CDATA[All Tutorials]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[defense]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[tower]]></category>
		<category><![CDATA[tower defense]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.mrsunstudios.com/?p=1534</guid>
		<description><![CDATA[Table of Contents Setting up Level Adding Turrets Adding Enemies Making Turrets Attack Enemies Winning/Losing the Game Expanding on the Game Finishing Touches Step 7: Finishing Touches Welcome back! This part of the tutorial is where we just add all of the finishing touches to the game! Unlike the other parts of the tutorial, I [...]]]></description>
			<content:encoded><![CDATA[<div class="toc">
<h3>Table of Contents</h3>
<ol>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2/">Setting up Level</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-2/">Adding Turrets</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-3/">Adding Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-4/">Making Turrets Attack Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-5/">Winning/Losing the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-6/">Expanding on the Game</a></li>
<li class="c_chap"><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-7/">Finishing Touches</a></li>
</ol>
</div>
<h3>Step 7: Finishing Touches</h3>
<p>Welcome back! This part of the tutorial is where we just add all of the finishing touches to the game! Unlike the other parts of the tutorial, I won&#8217;t comment any of the code I give you, as the knowledge you have learned from this tutorial should tell you what&#8217;s going on. Luckily for you, there aren&#8217;t too many finishing touches for us to make, so your brain won&#8217;t hurt too much.</p>
<p>Now, what can we add to our little game? The answer is: it&#8217;s up to you to decide what to add. It&#8217;s also up to you to use what you&#8217;ve learned to do it right. Thank you and good night.</p>
<h4>Final Product</h4>
<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt7/source.swf" /><embed type="application/x-shockwave-flash" width="550" height="400" src="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt7/source.swf"></embed></object></p>
<p><a href="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt7/tower-defense-as2-source.zip">Source Files (Zipped)</a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-7/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Tutorial: Create a Tower Defense Game in AS2 &#8211; Part 6</title>
		<link>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-6/</link>
		<comments>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-6/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:06:07 +0000</pubDate>
		<dc:creator>MrSun</dc:creator>
				<category><![CDATA[Advanced Tutorials]]></category>
		<category><![CDATA[All Tutorials]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[defense]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[tower]]></category>
		<category><![CDATA[tower defense]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.mrsunstudios.com/?p=1531</guid>
		<description><![CDATA[Table of Contents Setting up Level Adding Turrets Adding Enemies Making Turrets Attack Enemies Winning/Losing the Game Expanding on the Game Finishing Touches Step 6: Expanding on the Game Welcome to the 6th part of the tutorial, Expanding on the Game! Well, what do I mean by &#8220;Expanding&#8221;? Well, by expanding, I mean that we&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<div class="toc">
<h3>Table of Contents</h3>
<ol>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2/">Setting up Level</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-2/">Adding Turrets</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-3/">Adding Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-4/">Making Turrets Attack Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-5/">Winning/Losing the Game</a></li>
<li class="c_chap"><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-6/">Expanding on the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-7/">Finishing Touches</a></li>
</ol>
</div>
<h3>Step 6: Expanding on the Game</h3>
<p>Welcome to the 6th part of the tutorial, Expanding on the Game! Well, what do I mean by &#8220;Expanding&#8221;? Well, by expanding, I mean that we&#8217;re going to create more enemies and more levels. Sounds pretty cool, doesn&#8217;t it?</p>
<p>Open up &#8220;source.fla&#8221; and find the <tt>makeEnemies</tt> function. We&#8217;re going to have some major renovations to this functions. Just replace the function with this new code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> makeEnemies<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Void</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//this function will add enemies to the field</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>enemyTime <span style="color: #66cc66;">&lt;</span> enemyLimit<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it isn't time to make them yet</span>
		enemyTime ++;<span style="color: #808080; font-style: italic;">//then keep on waiting</span>
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//otherwise</span>
		<span style="color: #000000; font-weight: bold;">var</span> theCode:<span style="color: #0066CC;">Number</span> = enemyArray<span style="color: #66cc66;">&#91;</span>currentLvl-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>currentEnemy<span style="color: #66cc66;">&#93;</span>;<span style="color: #808080; font-style: italic;">//get the code from the array</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>theCode <span style="color: #66cc66;">!</span>= <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&amp;&amp;</span> theCode <span style="color: #66cc66;">!</span>= <span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it's not set at 0</span>
			<span style="color: #808080; font-style: italic;">//then create a new enemy and add it to the enemy holder</span>
			enemyHolder.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy,enemyHolder.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//now we're going to draw the enemy. It'll just be a tiny red circle</span>
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFF0000<span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//coloring them red gray</span>
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">moveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">2.5</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//move the entire shape a certain way</span>
			<span style="color: #808080; font-style: italic;">//create 4 curves so that it'll look like a circle</span>
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span>;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span>;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span>;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//end the fill</span>
&nbsp;
			<span style="color: #808080; font-style: italic;">//add a few variables to the enemy</span>
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">enLevel</span> = theCode;<span style="color: #808080; font-style: italic;">//setting its level to be what # it is</span>
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span> = <span style="color: #cc66cc;">3</span>;<span style="color: #808080; font-style: italic;">//how fast it can possibly go</span>
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #cc66cc;">0</span>;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = <span style="color: #cc66cc;">0</span>;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">health</span> = <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">*</span>theCode;
&nbsp;
			<span style="color: #808080; font-style: italic;">//checking what the start direction is</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> == <span style="color: #ff0000;">'UP'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it's starting up</span>
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #cc66cc;">300</span>;<span style="color: #808080; font-style: italic;">//set the y value off the field</span>
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span>;<span style="color: #808080; font-style: italic;">//make the x value where it should be</span>
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//make it not move horizontally</span>
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = -enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;<span style="color: #808080; font-style: italic;">//make it move upwards</span>
			<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> == <span style="color: #ff0000;">'RIGHT'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//and so on for other directions</span>
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = -<span style="color: #cc66cc;">25</span>;
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span>;
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = <span style="color: #cc66cc;">0</span>;
			<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> == <span style="color: #ff0000;">'DOWN'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = -<span style="color: #cc66cc;">25</span>;
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span>;
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #cc66cc;">0</span>;
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;
			<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> == <span style="color: #ff0000;">'LEFT'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #cc66cc;">550</span>;
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span>;
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = -enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;
				enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = <span style="color: #cc66cc;">0</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> += <span style="color: #cc66cc;">5</span>;<span style="color: #808080; font-style: italic;">//fixing the x value</span>
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> += <span style="color: #cc66cc;">5</span>;<span style="color: #808080; font-style: italic;">//fixing up the y value</span>
&nbsp;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//give it some functions</span>
				<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span> += <span style="color: #0066CC;">this</span>.<span style="color: #006600;">xSpeed</span>;
				<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> += <span style="color: #0066CC;">this</span>.<span style="color: #006600;">ySpeed</span>;
&nbsp;
				<span style="color: #808080; font-style: italic;">//checking what direction it goes when finishing the path</span>
				<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">finDir</span> == <span style="color: #ff0000;">'UP'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it finishes at the top</span>
					<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">&lt;</span>= -<span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if the y value is too high</span>
						<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">lives</span> --;<span style="color: #808080; font-style: italic;">//take away a life</span>
						<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> -= <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">*</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">enLevel</span>;<span style="color: #808080; font-style: italic;">//don't let the player gain any money</span>
						<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//take it away from the stage</span>
					<span style="color: #66cc66;">&#125;</span>
				<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">finDir</span> == <span style="color: #ff0000;">'RIGHT'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//and so on for other directions</span>
					<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #cc66cc;">550</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
						<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">lives</span> --;
						<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> -= <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">*</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">enLevel</span>;
						<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #66cc66;">&#125;</span>
				<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">finDir</span> == <span style="color: #ff0000;">'DOWN'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
					<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #cc66cc;">300</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
						<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">lives</span> --;
						<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> -= <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">*</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">enLevel</span>;
						<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #66cc66;">&#125;</span>
				<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> == <span style="color: #ff0000;">'LEFT'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
					<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span> <span style="color: #66cc66;">&lt;</span>= <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
						<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">lives</span> --;
						<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> -= <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">*</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">enLevel</span>;
						<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #66cc66;">&#125;</span>
				<span style="color: #66cc66;">&#125;</span>
&nbsp;
				<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">health</span> <span style="color: #66cc66;">&lt;</span>= <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
					<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemiesLeft</span> --;
					<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> += <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">*</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">enLevel</span>;
					<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
		currentEnemy ++;<span style="color: #808080; font-style: italic;">//move on to the next enemy</span>
		enemyTime = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//and reset the time</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>There aren&#8217;t very many renovations that we&#8217;ve made, but they will make our code much more flexible. It allows us to create different enemy levels by setting the <tt>enLevel</tt> to be equal to the code that is placed into the enemy array. The <tt>enLevel</tt> in turn lets us dynamically change the amount of health the enemy has and the amount of money that it gives you when you kill it. Right now the health and money it gives you is 5 times the enemy level.</p>
<p>Now, we can make more levels with better enemies! You can customize your own levels, or use the ones I created by setting these values in the <tt>enemyArray</tt>:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">enemyArray = <span style="color: #66cc66;">&#91;</span><span style="color: #808080; font-style: italic;">//defining the array</span>
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>,<span style="color: #808080; font-style: italic;">//1's will just represent an enemy to be created</span>
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span>,<span style="color: #808080; font-style: italic;">//another row means another level</span>
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#93;</span>,
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#93;</span>,
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">7</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">7</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">7</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">7</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">7</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">7</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">7</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#93;</span>,
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">250</span>,<span style="color: #cc66cc;">250</span>,<span style="color: #cc66cc;">250</span><span style="color: #66cc66;">&#93;</span>
			  <span style="color: #66cc66;">&#93;</span>;</pre></div></div>

<p>Of course, I&#8217;d suggest creating your own levels, as mine aren&#8217;t what you would call the best. Anyways, this wraps up the second to last part of this tutorial. Join us next time when finish up this little game!</p>
<h4>Final Product</h4>
<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt6/source.swf" /><embed type="application/x-shockwave-flash" width="550" height="400" src="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt6/source.swf"></embed></object></p>
<p><a href="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt6/tower-defense-as2-source.zip">Source Files (Zipped)</a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: Create a Tower Defense Game in AS2 &#8211; Part 5</title>
		<link>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-5/</link>
		<comments>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-5/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:05:40 +0000</pubDate>
		<dc:creator>MrSun</dc:creator>
				<category><![CDATA[Advanced Tutorials]]></category>
		<category><![CDATA[All Tutorials]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[defense]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[tower]]></category>
		<category><![CDATA[tower defense]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.mrsunstudios.com/?p=1519</guid>
		<description><![CDATA[Table of Contents Setting up Level Adding Turrets Adding Enemies Making Turrets Attack Enemies Winning/Losing the Game Expanding on the Game Finishing Touches Step 5: Winning/Losing the Game Welcome back to the 5th installment of this tutorial series. In this lesson, we&#8217;ll make some playable levels, along with a winning and losing situation. Let&#8217;s dig [...]]]></description>
			<content:encoded><![CDATA[<div class="toc">
<h3>Table of Contents</h3>
<ol>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2/">Setting up Level</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-2/">Adding Turrets</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-3/">Adding Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-4/">Making Turrets Attack Enemies</a></li>
<li class="c_chap"><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-5/">Winning/Losing the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-6/">Expanding on the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-7/">Finishing Touches</a></li>
</ol>
</div>
<h3>Step 5: Winning/Losing the Game</h3>
<p>Welcome back to the 5th installment of this tutorial series. In this lesson, we&#8217;ll make some playable levels, along with a winning and losing situation. Let&#8217;s dig in, shall we?</p>
<p>Lets start off by opening up the main source file. Find where this code is:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">enemyArray = <span style="color: #66cc66;">&#91;</span><span style="color: #808080; font-style: italic;">//defining the array</span>
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>,<span style="color: #808080; font-style: italic;">//1's will just represent an enemy to be created</span>
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>,<span style="color: #808080; font-style: italic;">//another row means another level</span>
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>
			  <span style="color: #66cc66;">&#93;</span>;</pre></div></div>

<p>Let&#8217;s review this code for a bit. Each of those arrays within that <tt>enemyArray</tt> represents a level. So, right now, we&#8217;re set up for 3 different levels, with an increasing amount of enemies in each level. Now that we&#8217;ve covered this, we can continue on to making it possible to advance levels.</p>
<p>In order to do this, we must first count the number of enemies we actually have on stage. This is actually very easy to do. Find the <tt>startGame()</tt> function (~line 45) that has no code in it, and add the following:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">enemiesLeft = enemyArray<span style="color: #66cc66;">&#91;</span>currentLvl-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">length</span>;</pre></div></div>

<p>Now, we have to decrease this number every time an enemy is destroyed. We can do this by adding one line of code to where we remove the Enemy from the stage in the <tt>makeEnemies()</tt> function. Add the following code (~line 346):</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemiesLeft</span> --;</pre></div></div>

<p>Now, find the main <tt>_root.onEnterFrame()</tt> function (~line 287). There should only be one line of code in there right now. We&#8217;re going to add some. Add the following code to the bottom of it:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>enemiesLeft==<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if there are no more enemies left</span>
	currentLvl ++;<span style="color: #808080; font-style: italic;">//continue to the next level</span>
	currentEnemy = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//reset the amount of enemies there are</span>
	startGame<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//restart the game</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Now, try testing out the game. Functionally, it&#8217;s working 100%. Practically, it&#8217;s not a great game. In order to make this game better, we&#8217;re going to have to show some information to the user while they&#8217;re playing, like the current level, the score, etc. This is exactly what we&#8217;re going to do now.</p>
<p>Now, try testing out the game. Functionally, it&#8217;s working 100%. Practically, it&#8217;s not a great game. In order to make this game better, we&#8217;re going to have to show some information to the user while they&#8217;re playing, like the current level, the score, etc. This is exactly what we&#8217;re going to do now.</p>
<p>Create four dynamic text boxes at the bottom left portion of the stage, each at 12 point font. Here&#8217;s an example of what yours should look like, with an example of what information we&#8217;re going to put into them later:</p>
<p><center><img src="http://www.mrsunstudios.com/wp-content/uploads/2009/02/textboxes.gif" alt="The Text Fields" title="The Text Fields" width="146" height="88" class="size-full wp-image-1450" /></center></p>
<p>Got that? Now, we just have to give each of these dynamic text fields an instance name. Label them accordingly:</p>
<ul>
<li><tt>txtLevel</tt></li>
<li><tt>txtMoney</tt></li>
<li><tt>txtLives</tt></li>
<li><tt>txtEnemiesLeft</tt></li>
</ul>
<p>Now, let&#8217;s dive into some code, shall we?</p>
<p>The first thing we need to do is actually define the <tt>money</tt> and the <tt>lives</tt> variables. Just add this code to the top:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> money:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">100</span>;<span style="color: #808080; font-style: italic;">//how much money the player has to spend on turrets</span>
<span style="color: #000000; font-weight: bold;">var</span> lives:<span style="color: #0066CC;">Number</span>=<span style="color: #cc66cc;">20</span>;<span style="color: #808080; font-style: italic;">//how many lives the player has</span></pre></div></div>

<p>Okay, good stuff. Let&#8217;s first make these two variables mean something before we update the text. We first have to make it so the player loses lives so he/she can lose the game. </p>
<p>In order to do this, we must add the following code to the Enemy&#8217;s <tt>onEnterFrame()</tt> function (~line 353):</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//checking what direction it goes when finishing the path</span>
<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">finDir</span> == <span style="color: #ff0000;">'UP'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it finishes at the top</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">&lt;</span>= -<span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if the y value is too high</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">lives</span> --;<span style="color: #808080; font-style: italic;">//take away a life</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> -= <span style="color: #cc66cc;">5</span>;<span style="color: #808080; font-style: italic;">//don't let the player gain any money</span>
		<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//take it away from the stage</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">finDir</span> == <span style="color: #ff0000;">'RIGHT'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//and so on for other directions</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #cc66cc;">550</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">lives</span> --;
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> -= <span style="color: #cc66cc;">5</span>;
		<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">finDir</span> == <span style="color: #ff0000;">'DOWN'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #cc66cc;">300</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">lives</span> --;
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> -= <span style="color: #cc66cc;">5</span>;
		<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> == <span style="color: #ff0000;">'LEFT'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span> <span style="color: #66cc66;">&lt;</span>= <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">lives</span> --;
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> -= <span style="color: #cc66cc;">5</span>;
		<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>	
<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">health</span> <span style="color: #66cc66;">&lt;</span>= <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemiesLeft</span> --;
	<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> += <span style="color: #cc66cc;">5</span>;
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Note that we also are giving the player money for killing the enemies. Next, we&#8217;ll make each of the turrets cost a certain amount of money. I&#8217;m thinking $20 is a good price. Find the block&#8217;s <tt>onRelease</tt> function (~line 80). We have to wrap all of its contents with <tt>if(_root.money >= 20){money-=20;......}</tt>. This way, the final <tt>onRelease</tt> function will look like this:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onRelease</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if there's enough money</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">money</span> -= <span style="color: #cc66cc;">20</span>;<span style="color: #808080; font-style: italic;">//spend it and make a turret</span>
		<span style="color: #808080; font-style: italic;">//this function will run when the empty block is clicked on</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">//change this guy's color back</span>
		<span style="color: #000000; font-weight: bold;">var</span> newColor = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Color</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span>;
		newColor.<span style="color: #0066CC;">setRGB</span><span style="color: #66cc66;">&#40;</span>0x333333<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">//set all other mouse functions to null in order to keep it from being clicked again</span>
		<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">onRollOver</span> = <span style="color: #000000; font-weight: bold;">null</span>;
		<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">onRollOut</span> = <span style="color: #000000; font-weight: bold;">null</span>;
		<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">onRelease</span> = <span style="color: #000000; font-weight: bold;">null</span>;
		<span style="color: #808080; font-style: italic;">//create an empty turret movieclip that will be on the top root layer</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span>,<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #808080; font-style: italic;">//drawing the turret, it will have a gray, circular, base with a white gun</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0x999999<span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//coloring the base light gray</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">moveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">12.5</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//move the entire shape a certain way</span>
		<span style="color: #808080; font-style: italic;">//create 4 curves so that it'll look like a circle</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">12.5</span>,<span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">12.5</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">12.5</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">12.5</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//end the fill so we can make a new one</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">//creating the gun</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'gun'</span>,<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>-<span style="color: #cc66cc;">2</span>,-<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span>,-<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>-<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>-<span style="color: #cc66cc;">2</span>,-<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #808080; font-style: italic;">//setting the gun to be on the center of the turret</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #cc66cc;">12.5</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #cc66cc;">12.5</span>;
		<span style="color: #808080; font-style: italic;">//set the turrets coordinates to be the blocks coordinates</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>;
&nbsp;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">angle</span> = <span style="color: #cc66cc;">0</span>; <span style="color: #808080; font-style: italic;">//the angle that the turret is currently rotated at</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">radiansToDegrees</span> = <span style="color: #cc66cc;">180</span><span style="color: #66cc66;">/</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">PI</span>;<span style="color: #808080; font-style: italic;">//this is needed for the rotation</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">damage</span> = <span style="color: #cc66cc;">3</span>;<span style="color: #808080; font-style: italic;">//how much damage this little baby can inflict</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">range</span> = <span style="color: #cc66cc;">100</span>;<span style="color: #808080; font-style: italic;">//how far away (in pixels) it can hit a target</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">enTarget</span> = <span style="color: #000000; font-weight: bold;">null</span>;<span style="color: #808080; font-style: italic;">//the current target that it's rotating towards</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">cTime</span> = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//how much time since a shot was fired by this turret</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">reloadTime</span> = <span style="color: #cc66cc;">12</span>;<span style="color: #808080; font-style: italic;">//how long it takes to fire another shot</span>
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">loaded</span> = <span style="color: #000000; font-weight: bold;">true</span>;<span style="color: #808080; font-style: italic;">//whether or not this turret can shoot</span>
&nbsp;
		<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">//FINDING THE NEAREST ENEMY WITHIN RANGE</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">distance</span> = <span style="color: #0066CC;">this</span>.<span style="color: #006600;">range</span>;<span style="color: #808080; font-style: italic;">//let's define a variable which will be how far the nearest enemy is</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span> = <span style="color: #000000; font-weight: bold;">null</span>;<span style="color: #808080; font-style: italic;">//right now, we don't have a target to shoot at</span>
			<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i=<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">currentEnemy</span>-<span style="color: #cc66cc;">1</span>;i<span style="color: #66cc66;">&gt;</span>=<span style="color: #cc66cc;">0</span>;i--<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//loop through the children in enemyHolder</span>
				<span style="color: #000000; font-weight: bold;">var</span> cEnemy = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>;<span style="color: #808080; font-style: italic;">//define a movieclip that will hold the current child</span>
				<span style="color: #808080; font-style: italic;">//this simple formula with get us the distance of the current enemy</span>
				<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">pow</span><span style="color: #66cc66;">&#40;</span>cEnemy.<span style="color: #0066CC;">_y</span> - <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">pow</span><span style="color: #66cc66;">&#40;</span>cEnemy.<span style="color: #0066CC;">_x</span> - <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #0066CC;">this</span>.<span style="color: #006600;">distance</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
					<span style="color: #808080; font-style: italic;">//if the selected enemy is close enough, then set it as the target</span>
					<span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span> = cEnemy;
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
			<span style="color: #808080; font-style: italic;">//ROTATING TOWARDS TARGET</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span> <span style="color: #66cc66;">!</span>= <span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if we have a defined target</span>
				<span style="color: #808080; font-style: italic;">//turn this baby towards it</span>
				<span style="color: #0066CC;">this</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">_rotation</span> = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">atan2</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span>._y-<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span>._x-<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">PI</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">180</span>-<span style="color: #cc66cc;">90</span>;
				<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">loaded</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if the turret is able to shoot</span>
					<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">loaded</span> = <span style="color: #000000; font-weight: bold;">false</span>;<span style="color: #808080; font-style: italic;">//then make in unable to do it for a bit</span>
					<span style="color: #808080; font-style: italic;">//create a bullet</span>
					<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span>,<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #808080; font-style: italic;">//draw the bullet</span>
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
					<span style="color: #808080; font-style: italic;">//set the bullet's coordinates</span>
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>+<span style="color: #cc66cc;">12.5</span>;
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>+<span style="color: #cc66cc;">12.5</span>;
					<span style="color: #808080; font-style: italic;">//set the bullet's target and damage</span>
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">target</span> = <span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span>;
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">damage</span> = <span style="color: #0066CC;">this</span>.<span style="color: #006600;">damage</span>;
&nbsp;
					<span style="color: #808080; font-style: italic;">//add some functions to this bullet</span>
					<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
						<span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span>=<span style="color: #cc66cc;">8</span>;
						<span style="color: #0066CC;">this</span>.<span style="color: #006600;">yDist</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_y</span>+<span style="color: #cc66cc;">12.5</span> - <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>;<span style="color: #808080; font-style: italic;">//how far this guy is from the enemy (x)</span>
						<span style="color: #0066CC;">this</span>.<span style="color: #006600;">xDist</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_x</span>+<span style="color: #cc66cc;">12.5</span> - <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>;<span style="color: #808080; font-style: italic;">//how far it is from the enemy (y)</span>
						<span style="color: #0066CC;">this</span>.<span style="color: #006600;">angle</span>=<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">atan2</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">yDist</span>,<span style="color: #0066CC;">this</span>.<span style="color: #006600;">xDist</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//the angle that it must move</span>
						<span style="color: #0066CC;">this</span>.<span style="color: #006600;">ySpeed</span>=<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">angle</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span>;<span style="color: #808080; font-style: italic;">//calculate how much it should move the enemy vertically</span>
						<span style="color: #0066CC;">this</span>.<span style="color: #006600;">xSpeed</span>=<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">angle</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span>;<span style="color: #808080; font-style: italic;">//calculate how much it should move the enemy horizontally</span>
						<span style="color: #808080; font-style: italic;">//move the bullet towards the enemy</span>
						<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>+= <span style="color: #0066CC;">this</span>.<span style="color: #006600;">xSpeed</span>;
						<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>+= <span style="color: #0066CC;">this</span>.<span style="color: #006600;">ySpeed</span>;
						<span style="color: #808080; font-style: italic;">//check if it is close to the enemy</span>
						<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>+<span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&gt;</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_x</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>._x-<span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&lt;</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_x</span>
						<span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>+<span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&gt;</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>._y-<span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&lt;</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_y</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
							<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #006600;">health</span> -= <span style="color: #0066CC;">this</span>.<span style="color: #006600;">damage</span>;<span style="color: #808080; font-style: italic;">//make the enemy lose health</span>
							<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//remove this sucker</span>
						<span style="color: #66cc66;">&#125;</span>
					<span style="color: #66cc66;">&#125;</span>
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
			<span style="color: #808080; font-style: italic;">//LOADING THE TURRET</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">!</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">loaded</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it isn't loaded</span>
				<span style="color: #0066CC;">this</span>.<span style="color: #006600;">cTime</span> ++;<span style="color: #808080; font-style: italic;">//then continue the time</span>
				<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">cTime</span> == <span style="color: #0066CC;">this</span>.<span style="color: #006600;">reloadTime</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if time has elapsed for long enough</span>
					<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">loaded</span> = <span style="color: #000000; font-weight: bold;">true</span>;<span style="color: #808080; font-style: italic;">//load the turret</span>
					<span style="color: #0066CC;">this</span>.<span style="color: #006600;">cTime</span> = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//and reset the time</span>
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Now, we can update these text fields. Once again, find the <tt>_root.onEnterFrame()</tt> function (~line 300). Add the following code which will update all the text fields with the needed information:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//Updating the text fields</span>
txtLevel.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">'Level '</span>+currentLvl;
txtMoney.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">'$'</span>+money;
txtLives.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">'Lives: '</span>+lives;
txtEnemiesLeft.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">'Enemies Left:  '</span>+enemiesLeft;</pre></div></div>

<p>Now, let&#8217;s create some winning and losing scenarios for the player. When the player has beaten all of the levels, then a win screen should show up. The same thing should happen with a lose screen when the player loses all of his/her lives. Let&#8217;s create these two frames, shall we?</p>
<p>Before, we create the frames, we have to add a layer called &#8220;labels&#8221;. This will just let us easily navigate to the required frames. Next, create a frame labeled &#8220;win&#8221; and add whatever message you want to inform the player that they&#8217;ve won. Do the same with a &#8220;lose&#8221; frame.</p>
<p>Now, we have to make it possible for the player to restart the game. We&#8217;ll let them do it by clicking anywhere on the screen. Copy and paste this code to both the &#8220;win&#8221;  frame and the &#8220;lose&#8221; frame:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">timeElapsed = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//how many frames have elapsed since this screen has been shown</span>
&nbsp;
<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	timeElapsed ++;<span style="color: #808080; font-style: italic;">//increase the amount of frames that have elapsed</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>timeElapsed == <span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if 5 seconds (@24fps) have elapsed</span>
		<span style="color: #0066CC;">gotoAndStop</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//go back to restart the game</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>All right, the next thing we have to do is navigate to the desired frame when the player wins or loses. Go back to frame 1 and find the <tt>_root.onEnterFrame()</tt> function (~line 293). Add the following code to the <strong>very beginning</strong> of it:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//if there aren't any levels left</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>currentLvl <span style="color: #66cc66;">&gt;</span> enemyArray.<span style="color: #0066CC;">length</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		gameOver=<span style="color: #000000; font-weight: bold;">true</span>;<span style="color: #808080; font-style: italic;">//set the game to be over</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">//reset all the stats</span>
		currentLvl = <span style="color: #cc66cc;">1</span>;
		currentEnemy = <span style="color: #cc66cc;">0</span>;
		enemyTime = <span style="color: #cc66cc;">0</span>;
		enemyLimit = <span style="color: #cc66cc;">12</span>;
		enemiesLeft = <span style="color: #cc66cc;">0</span>;
&nbsp;
		roadHolder.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//remove the pieces of road</span>
		enemyHolder.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//remove the enemies</span>
		<span style="color: #808080; font-style: italic;">//remove all of the blocks</span>
		<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>i=<span style="color: #cc66cc;">0</span>;i<span style="color: #66cc66;">&lt;</span>lvlArray.<span style="color: #0066CC;">length</span>;i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//creating a loop that'll go through the level array</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>lvlArray<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> == <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if the current index is set to 0 </span>
				<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//destroy the empty block</span>
				<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'tblock'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//destroy the turret</span>
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">gotoAndStop</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'win'</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//go to the win frame</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">null</span><span style="color: #808080; font-style: italic;">//remove this function</span>
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>lives<span style="color: #66cc66;">&lt;</span>=<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if the user runs out of lives</span>
		gameOver=<span style="color: #000000; font-weight: bold;">true</span>;<span style="color: #808080; font-style: italic;">//set the game to be over</span>
&nbsp;
		<span style="color: #808080; font-style: italic;">//reset all the stats</span>
		currentLvl = <span style="color: #cc66cc;">1</span>;
		currentEnemy = <span style="color: #cc66cc;">0</span>;
		enemyTime = <span style="color: #cc66cc;">0</span>;
		enemyLimit = <span style="color: #cc66cc;">12</span>;
		enemiesLeft = <span style="color: #cc66cc;">0</span>;
&nbsp;
		roadHolder.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//remove the pieces of road</span>
		enemyHolder.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//remove the enemies</span>
		<span style="color: #808080; font-style: italic;">//remove all of the blocks</span>
		<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>i=<span style="color: #cc66cc;">0</span>;i<span style="color: #66cc66;">&lt;</span>lvlArray.<span style="color: #0066CC;">length</span>;i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//creating a loop that'll go through the level array</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>lvlArray<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> == <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if the current index is set to 0 </span>
				<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//destroy the empty block</span>
				<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'tblock'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//destroy the turret</span>
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #0066CC;">gotoAndStop</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'lose'</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//go to the win frame</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">null</span><span style="color: #808080; font-style: italic;">//remove this function</span>
	<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Sweet. This concludes this installment of the tutorial series. Join us next time when we expand on the game!</p>
<h4>Final Product</h4>
<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt5/source.swf" /><embed type="application/x-shockwave-flash" width="550" height="400" src="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt5/source.swf"></embed></object></p>
<p><a href="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt5/tower-defense-as2-source.zip">Source Files (Zipped)</a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutorial: Create a Tower Defense Game in AS2 &#8211; Part 4</title>
		<link>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-4/</link>
		<comments>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-4/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:04:22 +0000</pubDate>
		<dc:creator>MrSun</dc:creator>
				<category><![CDATA[Advanced Tutorials]]></category>
		<category><![CDATA[All Tutorials]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[defense]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[tower]]></category>
		<category><![CDATA[tower defense]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.mrsunstudios.com/?p=1509</guid>
		<description><![CDATA[Table of Contents Setting up Level Adding Turrets Adding Enemies Making Turrets Attack Enemies Winning/Losing the Game Expanding on the Game Finishing Touches Step 4: Making Turrets Attack Enemies Well, it&#8217;s now time to let the enemies we just created be destroyed. Let&#8217;s dig in, shall we? First, we&#8217;ll define a single health variable for [...]]]></description>
			<content:encoded><![CDATA[<div class="toc">
<h3>Table of Contents</h3>
<ol>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2/">Setting up Level</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-2/">Adding Turrets</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-3/">Adding Enemies</a></li>
<li class="c_chap"><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-4/">Making Turrets Attack Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-5/">Winning/Losing the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-6/">Expanding on the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-7/">Finishing Touches</a></li>
</ol>
</div>
<h3>Step 4: Making Turrets Attack Enemies</h3>
<p>Well, it&#8217;s now time to let the enemies we just created be destroyed. Let&#8217;s dig in, shall we?</p>
<p>First, we&#8217;ll define a single <tt>health</tt> variable for the Enemy. Find this code in the <tt>makeEnemies()</tt> function (~ Line 236):</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//add a few variables to the enemy</span>
enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span> = <span style="color: #cc66cc;">3</span>;<span style="color: #808080; font-style: italic;">//how fast it can possibly go</span>
enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #cc66cc;">0</span>;
enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = <span style="color: #cc66cc;">0</span>;</pre></div></div>

<p>Just add this code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">health</span> = <span style="color: #cc66cc;">5</span>;</pre></div></div>

<p>Now, we&#8217;re going to have to add some variables to the turrets. In the <tt>makeRoad()</tt> function, find the <tt>onRelease</tt> function of the Empty Block (~ Line 77). Add this code to the bottom of that function (~ Line 116).</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">angle</span> = <span style="color: #cc66cc;">0</span>; <span style="color: #808080; font-style: italic;">//the angle that the turret is currently rotated at</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">radiansToDegrees</span> = <span style="color: #cc66cc;">180</span><span style="color: #66cc66;">/</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">PI</span>;<span style="color: #808080; font-style: italic;">//this is needed for the rotation</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">damage</span> = <span style="color: #cc66cc;">3</span>;<span style="color: #808080; font-style: italic;">//how much damage this little baby can inflict</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">range</span> = <span style="color: #cc66cc;">100</span>;<span style="color: #808080; font-style: italic;">//how far away (in pixels) it can hit a target</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">enTarget</span> = <span style="color: #000000; font-weight: bold;">null</span>;<span style="color: #808080; font-style: italic;">//the current target that it's rotating towards</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">cTime</span> = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//how much time since a shot was fired by this turret</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">reloadTime</span> = <span style="color: #cc66cc;">12</span>;<span style="color: #808080; font-style: italic;">//how long it takes to fire another shot</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">loaded</span> = <span style="color: #000000; font-weight: bold;">true</span>;<span style="color: #808080; font-style: italic;">//whether or not this turret can shoot</span></pre></div></div>

<p>Those are a lot of variables, aren&#8217;t they? Well, this is a pretty complex task, so we&#8217;re going to need all of them. So, brace yourself, for we are now going to jump into some code. Add the following after the code you just added above:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">//FINDING THE NEAREST ENEMY WITHIN RANGE</span>
	<span style="color: #0066CC;">this</span>.<span style="color: #006600;">distance</span> = <span style="color: #0066CC;">this</span>.<span style="color: #006600;">range</span>;<span style="color: #808080; font-style: italic;">//let's define a variable which will be how far the nearest enemy is</span>
	<span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span> = <span style="color: #000000; font-weight: bold;">null</span>;<span style="color: #808080; font-style: italic;">//right now, we don't have a target to shoot at</span>
	<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i=<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">currentEnemy</span>-<span style="color: #cc66cc;">1</span>;i<span style="color: #66cc66;">&gt;</span>=<span style="color: #cc66cc;">0</span>;i--<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//loop through the children in enemyHolder</span>
		<span style="color: #000000; font-weight: bold;">var</span> cEnemy = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>;<span style="color: #808080; font-style: italic;">//define a movieclip that will hold the current child</span>
		<span style="color: #808080; font-style: italic;">//this simple formula with get us the distance of the current enemy</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">pow</span><span style="color: #66cc66;">&#40;</span>cEnemy.<span style="color: #0066CC;">_y</span> - <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">pow</span><span style="color: #66cc66;">&#40;</span>cEnemy.<span style="color: #0066CC;">_x</span> - <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>, <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #0066CC;">this</span>.<span style="color: #006600;">distance</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">//if the selected enemy is close enough, then set it as the target</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span> = cEnemy;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #808080; font-style: italic;">//ROTATING TOWARDS TARGET</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span> <span style="color: #66cc66;">!</span>= <span style="color: #000000; font-weight: bold;">null</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if we have a defined target</span>
		<span style="color: #808080; font-style: italic;">//turn this baby towards it</span>
		<span style="color: #0066CC;">this</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">_rotation</span> = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">atan2</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span>._y-<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span>._x-<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">/</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">PI</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">180</span>-<span style="color: #cc66cc;">90</span>;
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">loaded</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if the turret is able to shoot</span>
			<span style="color: #808080; font-style: italic;">//subtract the enemy's health</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span>.<span style="color: #006600;">health</span> -= <span style="color: #0066CC;">this</span>.<span style="color: #006600;">damage</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">loaded</span> = <span style="color: #000000; font-weight: bold;">false</span>;<span style="color: #808080; font-style: italic;">//then make in unable to do it for a bit</span>
			<span style="color: #808080; font-style: italic;">//create a bullet</span>
			<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span>,<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//draw the bullet</span>
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//set the bullet's coordinates</span>
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>+<span style="color: #cc66cc;">12.5</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>+<span style="color: #cc66cc;">12.5</span>;
			<span style="color: #808080; font-style: italic;">//set the bullet's target and damage</span>
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">target</span> = <span style="color: #0066CC;">this</span>.<span style="color: #006600;">enTarget</span>;
&nbsp;
			<span style="color: #808080; font-style: italic;">//add some functions to this bullet</span>
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'b'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span>=<span style="color: #cc66cc;">4</span>;
				<span style="color: #0066CC;">this</span>.<span style="color: #006600;">yDist</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_y</span>+<span style="color: #cc66cc;">12.5</span> - <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>;<span style="color: #808080; font-style: italic;">//how far this guy is from the enemy (x)</span>
				<span style="color: #0066CC;">this</span>.<span style="color: #006600;">xDist</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_x</span>+<span style="color: #cc66cc;">12.5</span> - <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>;<span style="color: #808080; font-style: italic;">//how far it is from the enemy (y)</span>
				<span style="color: #0066CC;">this</span>.<span style="color: #006600;">angle</span>=<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">atan2</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">yDist</span>,<span style="color: #0066CC;">this</span>.<span style="color: #006600;">xDist</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//the angle that it must move</span>
				<span style="color: #0066CC;">this</span>.<span style="color: #006600;">ySpeed</span>=<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">angle</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span>;<span style="color: #808080; font-style: italic;">//calculate how much it should move the enemy vertically</span>
				<span style="color: #0066CC;">this</span>.<span style="color: #006600;">xSpeed</span>=<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">angle</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span>;<span style="color: #808080; font-style: italic;">//calculate how much it should move the enemy horizontally</span>
				<span style="color: #808080; font-style: italic;">//move the bullet towards the enemy</span>
				<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>+= <span style="color: #0066CC;">this</span>.<span style="color: #006600;">xSpeed</span>;
				<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>+= <span style="color: #0066CC;">this</span>.<span style="color: #006600;">ySpeed</span>;
				<span style="color: #808080; font-style: italic;">//check if it is close to the enemy</span>
				<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>+<span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&gt;</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_x</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>._x-<span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&lt;</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_x</span>
				<span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>+<span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&gt;</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>._y-<span style="color: #0066CC;">this</span>.<span style="color: #006600;">maxSpeed</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&lt;</span>=<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #0066CC;">_y</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
					<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">target</span>.<span style="color: #006600;">health</span> -= <span style="color: #0066CC;">this</span>.<span style="color: #006600;">damage</span>;<span style="color: #808080; font-style: italic;">//make the enemy lose health</span>
					<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//remove this sucker</span>
				<span style="color: #66cc66;">&#125;</span>
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #808080; font-style: italic;">//LOADING THE TURRET</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">!</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">loaded</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it isn't loaded</span>
		<span style="color: #0066CC;">this</span>.<span style="color: #006600;">cTime</span> ++;<span style="color: #808080; font-style: italic;">//then continue the time</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">cTime</span> == <span style="color: #0066CC;">this</span>.<span style="color: #006600;">reloadTime</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if time has elapsed for long enough</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">loaded</span> = <span style="color: #000000; font-weight: bold;">true</span>;<span style="color: #808080; font-style: italic;">//load the turret</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">cTime</span> = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//and reset the time</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Now, if you test out the game and create some turrets, they should start shooting at those darn enemies! Next, we have to make it so the enemy dies when shot. This will be pretty easy to do. Find the code where we added the <tt>onEnterFrame()</tt> code to the enemy and made it move (~line 342). Just add this little tidbit of code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">health</span> <span style="color: #66cc66;">&lt;</span>= <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Pretty hot stuff, ain&#8217;t it? Well, this concludes the fourth installment of this tutorial. Join us next time when we make levels and have winning and losing scenarios!</p>
<h4>Final Product</h4>
<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt4/source.swf" /><embed type="application/x-shockwave-flash" width="550" height="400" src="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt4/source.swf"></embed></object></p>
<p><a href="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt4/tower-defense-as2-source.zip">Source Files (Zipped)</a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial: Create a Tower Defense Game in AS2 &#8211; Part 3</title>
		<link>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-3/</link>
		<comments>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-3/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:03:10 +0000</pubDate>
		<dc:creator>MrSun</dc:creator>
				<category><![CDATA[Advanced Tutorials]]></category>
		<category><![CDATA[All Tutorials]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[defense]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[tower]]></category>
		<category><![CDATA[tower defense]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.mrsunstudios.com/?p=1498</guid>
		<description><![CDATA[Table of Contents Setting up Level Adding Turrets Adding Enemies Making Turrets Attack Enemies Winning/Losing the Game Expanding on the Game Finishing Touches Step 3: Adding Enemies Welcome back. In this part of the tutorial, we are going to add enemies to the field and we&#8217;re going to program them to move through the paths. [...]]]></description>
			<content:encoded><![CDATA[<div class="toc">
<h3>Table of Contents</h3>
<ol>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2/">Setting up Level</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-2/">Adding Turrets</a></li>
<li class="c_chap"><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-3/">Adding Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-4/">Making Turrets Attack Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-5/">Winning/Losing the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-6/">Expanding on the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-7/">Finishing Touches</a></li>
</ol>
</div>
<h3>Step 3: Adding Enemies</h3>
<p>Welcome back. In this part of the tutorial, we are going to add enemies to the field and we&#8217;re going to program them to move through the paths.</p>
<p>Let&#8217;s begin by adding the enemy to the stage. Like the other symbols, we&#8217;re going to do it by creating an empty MovieClip and drawing the shape into it. In order to do this, however, we must first define some variables. Do this at the top of the code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> currentEnemy:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//the current enemy that we're creating from the array</span>
<span style="color: #000000; font-weight: bold;">var</span> enemyTime:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//how many frames have elapsed since the last enemy was created</span>
<span style="color: #000000; font-weight: bold;">var</span> enemyLimit:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">12</span>;<span style="color: #808080; font-style: italic;">//how many frames are allowed before another enemy is created</span>
<span style="color: #000000; font-weight: bold;">var</span> enemyArray:<span style="color: #0066CC;">Array</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//this array will tell the function when to create an enemy</span>
<span style="color: #000000; font-weight: bold;">var</span> enemiesLeft:<span style="color: #0066CC;">Number</span>;<span style="color: #808080; font-style: italic;">//how many enemies are left on the field</span>
enemyArray = <span style="color: #66cc66;">&#91;</span><span style="color: #808080; font-style: italic;">//defining the array</span>
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>,<span style="color: #808080; font-style: italic;">//1's will just represent an enemy to be created</span>
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>,<span style="color: #808080; font-style: italic;">//another row means another level</span>
			<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>
			  <span style="color: #66cc66;">&#93;</span>;</pre></div></div>

<p>I&#8217;ve extensively commented on what each variable does. Next, we need to create an <tt>onEnterFrame()</tt> function with a few actions, along with a few other stuff. Program this into the bottom of the code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'enemyHolder'</span>,<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//create a movieclip that will hold the enemy</span>
&nbsp;
<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	makeEnemies<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//we'll just make some enemies</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> makeEnemies<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Void</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//this function will add enemies to the field</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>enemyTime <span style="color: #66cc66;">&lt;</span> enemyLimit<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it isn't time to make them yet</span>
		enemyTime ++;<span style="color: #808080; font-style: italic;">//then keep on waiting</span>
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//otherwise</span>
		<span style="color: #000000; font-weight: bold;">var</span> theCode:<span style="color: #0066CC;">Number</span> = enemyArray<span style="color: #66cc66;">&#91;</span>currentLvl-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>currentEnemy<span style="color: #66cc66;">&#93;</span>;<span style="color: #808080; font-style: italic;">//get the code from the array</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>theCode == <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it's set as 1</span>
			<span style="color: #808080; font-style: italic;">//then create a new enemy and add it to the enemy holder</span>
			enemyHolder.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy,enemyHolder.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//now we're going to draw the enemy. It'll just be a tiny red circle</span>
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFF0000<span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//coloring them red gray</span>
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">moveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">2.5</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//move the entire shape a certain way</span>
			<span style="color: #808080; font-style: italic;">//create 4 curves so that it'll look like a circle</span>
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">10</span><span style="color: #66cc66;">&#41;</span>;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span>;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span>;
			enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//end the fill</span>
		<span style="color: #66cc66;">&#125;</span>
		currentEnemy ++;<span style="color: #808080; font-style: italic;">//move on to the next enemy</span>
		enemyTime = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//and reset the time</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Now, if you test out the game, a red dot should appear on the top left corner of the screen. But, this isn&#8217;t what we want for our game, is it? In order to place the enemy so that it&#8217;s right next to the start point, we&#8217;re going to have to add some code. Remember the variables <tt>startDir</tt> and <tt>finDir</tt> that we created all that time ago? If you don&#8217;t here&#8217;s what it should look like at around line 11:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> startDir:<span style="color: #0066CC;">String</span>;<span style="color: #808080; font-style: italic;">//the direction the enemies go when they enter</span>
<span style="color: #000000; font-weight: bold;">var</span> finDir:<span style="color: #0066CC;">String</span>;<span style="color: #808080; font-style: italic;">//the direction the enemies go when they exit</span>
<span style="color: #000000; font-weight: bold;">var</span> startCoord:<span style="color: #0066CC;">Number</span>;<span style="color: #808080; font-style: italic;">//the coordinates of the beginning of the road</span></pre></div></div>

<p>Well, we&#8217;re going to use these variables. Find in the <tt>makeRoad()</tt> function where we create add in the <strong>SPECIAL DIRECTIONAL ROAD PIECE</strong> (around line 129). Add the following code to the bottom of that <tt>if</tt> statement:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>lvlArray<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> == <span style="color: #ff0000;">'START'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if this is a start block</span>
	<span style="color: #808080; font-style: italic;">//then define the startDir and StartCoord based on it's coordinates</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> == <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> = <span style="color: #ff0000;">'RIGHT'</span>;
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span> = roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> == <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> = <span style="color: #ff0000;">'DOWN'</span>;
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span> = roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> == <span style="color: #cc66cc;">525</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> = <span style="color: #ff0000;">'LEFT'</span>;
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span> = roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> == <span style="color: #cc66cc;">275</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> = <span style="color: #ff0000;">'UP'</span>;
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span> = roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//this level won't work if not any of these values</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>lvlArray<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> == <span style="color: #ff0000;">'FINISH'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if this is a finish block</span>
	<span style="color: #808080; font-style: italic;">//then define the finDir based on it's coordinates</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> == <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">finDir</span> = <span style="color: #ff0000;">'LEFT'</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> == <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">finDir</span> = <span style="color: #ff0000;">'UP'</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> == <span style="color: #cc66cc;">525</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">finDir</span> = <span style="color: #ff0000;">'RIGHT'</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> == <span style="color: #cc66cc;">275</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">finDir</span> = <span style="color: #ff0000;">'DOWN'</span>;
	<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//this level won't work if not any of these values</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Next, we have to take the variables we just defined in this code and make the enemy use them. We also have to make the enemy move along the path. Go back to the <tt>makeEnemies()</tt> function and add the following code in the <tt>if(theCode == 1){</tt> statement:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//add a few variables to the enemy</span>
enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span> = <span style="color: #cc66cc;">3</span>;<span style="color: #808080; font-style: italic;">//how fast it can possibly go</span>
enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #cc66cc;">0</span>;
enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = <span style="color: #cc66cc;">0</span>;
<span style="color: #808080; font-style: italic;">//checking what the start direction is</span>
<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> == <span style="color: #ff0000;">'UP'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it's starting up</span>
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #cc66cc;">300</span>;<span style="color: #808080; font-style: italic;">//set the y value off the field</span>
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span>;<span style="color: #808080; font-style: italic;">//make the x value where it should be</span>
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//make it not move horizontally</span>
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = -enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;<span style="color: #808080; font-style: italic;">//make it move upwards</span>
<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> == <span style="color: #ff0000;">'RIGHT'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//and so on for other directions</span>
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = -<span style="color: #cc66cc;">25</span>;
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span>;
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = <span style="color: #cc66cc;">0</span>;
<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> == <span style="color: #ff0000;">'DOWN'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = -<span style="color: #cc66cc;">25</span>;
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span>;
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #cc66cc;">0</span>;
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;
<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startDir</span> == <span style="color: #ff0000;">'LEFT'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #cc66cc;">550</span>;
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">startCoord</span>;
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = -enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;
	enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = <span style="color: #cc66cc;">0</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> += <span style="color: #cc66cc;">5</span>;<span style="color: #808080; font-style: italic;">//fixing the x value</span>
enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> += <span style="color: #cc66cc;">5</span>;<span style="color: #808080; font-style: italic;">//fixing up the y value</span>
&nbsp;
enemyHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+currentEnemy<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//give it some functions</span>
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span> += <span style="color: #0066CC;">this</span>.<span style="color: #006600;">xSpeed</span>;
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> += <span style="color: #0066CC;">this</span>.<span style="color: #006600;">ySpeed</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>The final thing we have to do in this lesson is make the enemy turn when it should turn. To do this, we must go back to the <strong>Directional Block</strong>. We&#8217;re going to use the directional block to access all of the enemies coordinates. If the coordinates are close enough to the block, then it will make the enemy change direction. Find the <tt>if(String(lvlArray[i])){</tt> statement in the <tt>makeRoad()</tt> function. Add this code to the end of it:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">directType</span> = lvlArray<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>;<span style="color: #808080; font-style: italic;">//accessing the type of block it is</span>
roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//add some functions to this block</span>
	<span style="color: #808080; font-style: italic;">//then it'll act as a directioning block</span>
	<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>i = <span style="color: #cc66cc;">0</span>;i<span style="color: #66cc66;">&lt;</span>_root.<span style="color: #006600;">enemyArray</span><span style="color: #66cc66;">&#91;</span>currentLvl-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">length</span>;i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//create a loop</span>
		<span style="color: #808080; font-style: italic;">//if the enemy's coordinates are too close to this block</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> - <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_width</span><span style="color: #66cc66;">*</span>.5
		<span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span> +<span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&lt;</span>= <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> + <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_width</span><span style="color: #66cc66;">*</span>.5
		<span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> - <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_height</span><span style="color: #66cc66;">*</span>.5
		<span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> +<span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&lt;</span>= <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> + <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_height</span><span style="color: #66cc66;">*</span>.5<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #808080; font-style: italic;">//then move the enemy's direction based on what direction this block points to</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">directType</span> == <span style="color: #ff0000;">'UP'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #cc66cc;">0</span>;
				<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = -<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;
			<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">directType</span> == <span style="color: #ff0000;">'RIGHT'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;
				<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = <span style="color: #cc66cc;">0</span>;
			<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">directType</span> == <span style="color: #ff0000;">'DOWN'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #cc66cc;">0</span>;
				<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;
			<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #006600;">directType</span> == <span style="color: #ff0000;">'LEFT'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">xSpeed</span> = <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">maxSpeed</span>;
				<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">enemyHolder</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'enemy'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">ySpeed</span> = <span style="color: #cc66cc;">0</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<h4>Final Product</h4>
<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt3/source.swf" /><embed type="application/x-shockwave-flash" width="550" height="400" src="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt3/source.swf"></embed></object></p>
<p><a href="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt3/tower-defense-as2-source.zip">Source Files (Zipped)</a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tutorial: Create a Tower Defense Game in AS2 &#8211; Part 2</title>
		<link>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-2/</link>
		<comments>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-2/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:02:57 +0000</pubDate>
		<dc:creator>MrSun</dc:creator>
				<category><![CDATA[Advanced Tutorials]]></category>
		<category><![CDATA[All Tutorials]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[defense]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[tower]]></category>
		<category><![CDATA[tower defense]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.mrsunstudios.com/?p=1491</guid>
		<description><![CDATA[Table of Contents Setting up Level Adding Turrets Adding Enemies Making Turrets Attack Enemies Winning/Losing the Game Expanding on the Game Finishing Touches Step 2: Adding Turrets Okay, so in this part of the tutorial, we are going to make it so when the user clicks on any of the empty blocks, a turret is [...]]]></description>
			<content:encoded><![CDATA[<div class="toc">
<h3>Table of Contents</h3>
<ol>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2/">Setting up Level</a></li>
<li class="c_chap"><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-2/">Adding Turrets</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-3/">Adding Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-4/">Making Turrets Attack Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-5/">Winning/Losing the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-6/">Expanding on the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-7/">Finishing Touches</a></li>
</ol>
</div>
<h3>Step 2: Adding Turrets</h3>
<p>Okay, so in this part of the tutorial, we are going to make it so when the user clicks on any of the empty blocks, a turret is created. Let&#8217;s begin, shall we?</p>
<p>Open up your main flash file and find the code where we set the empty block&#8217;s <tt>onRollOver()</tt> and <tt>onRollOut</tt> functions. Well, now we&#8217;re going to create a <tt>onRelease()</tt> function, which just means clicking. Add this code to around <strong>Line 65</strong>, or after you set the <tt>onRollOver</tt> and <tt>onRollOut</tt> functions:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onRelease</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">//this function will run when the empty block is clicked on</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">//change this guy's color back</span>
	<span style="color: #000000; font-weight: bold;">var</span> newColor = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Color</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span>;
	newColor.<span style="color: #0066CC;">setRGB</span><span style="color: #66cc66;">&#40;</span>0x333333<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">//set all other mouse functions to null in order to keep it from being clicked again</span>
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">onRollOver</span> = <span style="color: #000000; font-weight: bold;">null</span>;
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">onRollOut</span> = <span style="color: #000000; font-weight: bold;">null</span>;
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">onRelease</span> = <span style="color: #000000; font-weight: bold;">null</span>;
	<span style="color: #808080; font-style: italic;">//create an empty turret movieclip that will be on the top root layer</span>
	<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span>,<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//drawing the turret, it will have a gray, circular, base with a white gun</span>
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0x999999<span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//coloring the base light gray</span>
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">moveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">12.5</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//move the entire shape a certain way</span>
	<span style="color: #808080; font-style: italic;">//create 4 curves so that it'll look like a circle</span>
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">12.5</span>,<span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">12.5</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">12.5</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">curveTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">12.5</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//end the fill so we can make a new one</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">//creating the gun</span>
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'gun'</span>,<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0xFFFFFF<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>-<span style="color: #cc66cc;">2</span>,-<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span>,-<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>-<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">15</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>-<span style="color: #cc66cc;">2</span>,-<span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #808080; font-style: italic;">//setting the gun to be on the center of the turret</span>
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #cc66cc;">12.5</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">gun</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #cc66cc;">12.5</span>;
	<span style="color: #808080; font-style: italic;">//set the turrets coordinates to be the blocks coordinates</span>
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span>;
	<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'t'</span>+<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_name</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Well, it&#8217;s a lot of code, but it gets the job done.</p>
<p>That&#8217;s it for this part of the tutorial. Next time, we&#8217;ll create and program some enemies!</p>
<h4>Final Product</h4>
<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt2/source.swf" /><embed type="application/x-shockwave-flash" width="550" height="400" src="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt2/source.swf"></embed></object></p>
<p><a href="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt2/tower-defense-as2-source.zip">Source Files (Zipped)</a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2-part-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tutorial: Create a Tower Defense Game in AS2</title>
		<link>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2/</link>
		<comments>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 12:01:32 +0000</pubDate>
		<dc:creator>MrSun</dc:creator>
				<category><![CDATA[Advanced Tutorials]]></category>
		<category><![CDATA[All Tutorials]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[defense]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[tower]]></category>
		<category><![CDATA[tower defense]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.mrsunstudios.com/?p=1481</guid>
		<description><![CDATA[Table of Contents Setting up Level Adding Turrets Adding Enemies Making Turrets Attack Enemies Winning/Losing the Game Expanding on the Game Finishing Touches Step 1: Setting Up a Level The tower defense genre is one that has become extremely popular over the years. Although they can become quite complicated to develop, they are almost always [...]]]></description>
			<content:encoded><![CDATA[<div class="toc">
<h3>Table of Contents</h3>
<ol>
<li class="c_chap"><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2/">Setting up Level</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-2/">Adding Turrets</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-3/">Adding Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-4/">Making Turrets Attack Enemies</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-5/">Winning/Losing the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-6/">Expanding on the Game</a></li>
<li><a href="http://mrsunstudios.com/2009/04/tutorial-create-a-tower-defense-game-in-as2-part-7/">Finishing Touches</a></li>
</ol>
</div>
<h3>Step 1: Setting Up a Level</h3>
<p>The tower defense genre is one that has become extremely popular over the years. Although they can become quite complicated to develop, they are almost always very fun to play. I am here to walk you through the creation of one of these games. Let us begin, shall we?</p>
<p>In this section of the tutorial, we&#8217;re going to set up the roads and stuff onto the stage. However, the first thing we need to do is create a blank flash document with a black background with the frames per second set at 24.</p>
<p>Now, we can dive into some code. Let&#8217;s first create some code that will lay down the track for the enemies to go through. Create a new layer called &#8220;actions&#8221; and add the following code to it:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">stop</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//setting vars to step in for turns and special blocks</span>
<span style="color: #000000; font-weight: bold;">var</span> S:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">'START'</span>;
<span style="color: #000000; font-weight: bold;">var</span> F:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">'FINISH'</span>;
<span style="color: #000000; font-weight: bold;">var</span> U:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">'UP'</span>;
<span style="color: #000000; font-weight: bold;">var</span> R:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">'RIGHT'</span>;
<span style="color: #000000; font-weight: bold;">var</span> D:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">'DOWN'</span>;
<span style="color: #000000; font-weight: bold;">var</span> L:<span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">'LEFT'</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> startDir:<span style="color: #0066CC;">String</span>;<span style="color: #808080; font-style: italic;">//the direction the enemies go when they enter</span>
<span style="color: #000000; font-weight: bold;">var</span> finDir:<span style="color: #0066CC;">String</span>;<span style="color: #808080; font-style: italic;">//the direction the enemies go when they exit</span>
<span style="color: #000000; font-weight: bold;">var</span> startCoord:<span style="color: #0066CC;">Number</span>;<span style="color: #808080; font-style: italic;">//the coordinates of the beginning of the road</span>
<span style="color: #000000; font-weight: bold;">var</span> lvlArray:<span style="color: #0066CC;">Array</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//this array will hold the formatting of the roads</span>
&nbsp;
lvlArray = <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,
			<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,
			<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,R,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,D,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,R,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,D,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,R,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,D,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,
			<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,
			<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,
			S,D,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,R,<span style="color: #cc66cc;">1</span>,F,
			<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,
			<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,
			<span style="color: #cc66cc;">0</span>,R,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,U,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,R,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,U,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,R,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,U,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,
			<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,
			<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,
			<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>
			<span style="color: #66cc66;">&#93;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">//the names of these variables explain what they do</span>
<span style="color: #000000; font-weight: bold;">var</span> currentLvl:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">1</span>;
<span style="color: #000000; font-weight: bold;">var</span> gameOver:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">false</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> startGame<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Void</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//we'll run this function every time a new level begins</span>
	<span style="color: #808080; font-style: italic;">//right now we don't have any code</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'roadHolder'</span>,<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//add a MovieClip to hold the road</span>
<span style="color: #000000; font-weight: bold;">function</span> makeRoad<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Void</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> row:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//the current row we're working on</span>
	<span style="color: #000000; font-weight: bold;">var</span> block;<span style="color: #808080; font-style: italic;">//this will act as the block that we're placing down</span>
	<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>i=<span style="color: #cc66cc;">0</span>;i<span style="color: #66cc66;">&lt;</span>lvlArray.<span style="color: #0066CC;">length</span>;i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//creating a loop that'll go through the level array</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>lvlArray<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> == <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if the current index is set to 0 </span>
			<span style="color: #808080; font-style: italic;">/////*****EMPTY BLOCK*****/////</span>
			<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'block'</span>+i,<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//create a gray empty block</span>
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0x333333<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #808080; font-style: italic;">//and set the coordinates to be relative to the place in the array</span>
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span>= <span style="color: #66cc66;">&#40;</span>i-row<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">22</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span>;
			<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = row<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span>;
		<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>lvlArray<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> == <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if there is supposed to be a row</span>
			<span style="color: #808080; font-style: italic;">/////*****EMPTY ROAD*****/////</span>
			<span style="color: #808080; font-style: italic;">//just add a box that will be a darker color and won't have any actions</span>
			roadHolder.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'block'</span>+i,roadHolder.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0x111111<span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span>= <span style="color: #66cc66;">&#40;</span>i-row<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">22</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = row<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span>;
		<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#40;</span>lvlArray<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it's a string, meaning a special block</span>
			<span style="color: #808080; font-style: italic;">/////*****SPECIAL DIRECTIONAL ROAD PIECE*****/////</span>
			roadHolder.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'block'</span>+i,roadHolder.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0x111111<span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">25</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span>= <span style="color: #66cc66;">&#40;</span>i-row<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">22</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span>;
			roadHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = row<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> c:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">1</span>;c<span style="color: #66cc66;">&lt;</span>=<span style="color: #cc66cc;">16</span>;c++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>i == c<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">22</span>-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				<span style="color: #808080; font-style: italic;">//if 22 columns have gone by, then we move onto the next row</span>
				row++;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #808080; font-style: italic;">//run these functions at the start</span>
makeRoad<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
startGame<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>That&#8217;s a lot of code, ain&#8217;t it? Hopefully, I&#8217;ve given you enough instructions in the comments. If you test out our game, a nice little path should be shown which the enemies will travel through, along with some blank gray boxes where we&#8217;ll be able to place some turrets.</p>
<p>Before I end this part of the tutorial, I want to give these empty boxes some <tt>rollOver</tt> and <tt>rollOut</tt> effects. Find where I added the comment saying <tt>/////*****EMPTY BLOCK*****/////</tt> (lines 44-54). Add this code to the bottom of that section of the <tt>if</tt> statement:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onRollOver</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">//Change the color to green</span>
	<span style="color: #000000; font-weight: bold;">var</span> newColor = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Color</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span>;
	newColor.<span style="color: #0066CC;">setRGB</span><span style="color: #66cc66;">&#40;</span>0x006600<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'block'</span>+i<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onRollOut</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">//Change this color back to gray</span>
	<span style="color: #000000; font-weight: bold;">var</span> newColor = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Color</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#41;</span>;
	newColor.<span style="color: #0066CC;">setRGB</span><span style="color: #66cc66;">&#40;</span>0x333333<span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<h4>Final Product</h4>
<p><center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt1/source.swf" /><embed type="application/x-shockwave-flash" width="550" height="400" src="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt1/source.swf"></embed></object></p>
<p><a href="http://www.mrsunstudios.com/obj/tuts/tower-defense-as2/pt1/tower-defense-as2-source.zip">Source Files (Zipped)</a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrsunstudios.com/blog/flash/tutorial-create-a-tower-defense-game-in-as2/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>So You Wanna Make a Game? A Step-by-Step Guide to Becoming a Flash Game Developer</title>
		<link>http://www.mrsunstudios.com/blog/flash/so-you-wanna-make-a-game-a-step-by-step-guide-to-becoming-a-flash-game-developer/</link>
		<comments>http://www.mrsunstudios.com/blog/flash/so-you-wanna-make-a-game-a-step-by-step-guide-to-becoming-a-flash-game-developer/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 12:00:18 +0000</pubDate>
		<dc:creator>MrSun</dc:creator>
				<category><![CDATA[All Tutorials]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[develop]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[steps]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.mrsunstudios.com/?p=1416</guid>
		<description><![CDATA[So you want to be a flash game developer, eh?  It's something that's easy to get into, but hard to get good at.  I'm going to guide you through the process that a total newbie must get into in order to get into the business.]]></description>
			<content:encoded><![CDATA[<p>So you want to be a flash game developer, eh?  It&#8217;s something that&#8217;s easy to get into, but hard to get good at.  I&#8217;m going to guide you through the process that a total newbie must get into in order to get into the business.</p>
<h3>Step 1: Get Flash</h3>
<p>The first obvious step in becoming a flash game developer is to actually get the program.  There are two ways to get flash, expensively or cheaply.  </p>
<p>If you want to get it expensively, you can just go to <a href="http://www.adobe.com">Adobe&#8217;s Site</a> and buy it for a couple hundred dollars.</p>
<p>If you want it for only a fraction of the price, you&#8217;ll have to meet a few requirements.  You either have to be a student, a teacher, a parent of a student, part of a non-profit organization, or anybody that has to do with education.  If you are any of these things, you can get an academic discount!  Just go to any of the following discount online academic stores:</p>
<ul>
<li><a href="http://www.academicsuperstore.com/">Academic Superstore</a></li>
<li><a href="http://www.campustech.com/">CampusTech</a></li>
<li><a href="http://www.gradware.com/">Gradware</a></li>
<li><a href="http://www.ccvsoftware.com/">CCV Software</a></li>
</ul>
<p>You can either get Flash for a few bucks ($248.95 compared to $699.99 from Adobe), or even a suite of programs for even less than Flash costs on Adobe itself ($398.95 &#8211; $598.95). It&#8217;s a pretty sweet deal, ain&#8217;t it?</p>
<h3>Step 2:  Get used to the Program (Optional)</h3>
<p>This step is optional, but still very highly recommended.  I suggest looking at some <a href="http://www.tutorialized.com/tutorials/Flash/1">online tutorials</a> or even buying some <a href="http://www.lynda.com/home/ViewCourses.aspx?lpk0=392">video lessons</a>.  A combination of both is what got me to be comfortable with Flash.  I&#8217;ll just give you a brief description of some panels you&#8217;ll need to learn in order to be efficient with Flash.</p>
<h4>The Toolbar</h4>
<p><img src="http://www.mrsunstudios.com/wp-content/uploads/2009/02/picture-1.gif" alt="Toolbar" title="Toolbar" width="251" height="145" class="alignleft size-full wp-image-1420" /> This is the toolbar.  This is your utility belt.  You&#8217;re going to need this in your journeys as a game developer very much.  I also suggest learning some of the hot keys.</p>
<h4>The Properties Panel</h4>
<p><img src="http://www.mrsunstudios.com/wp-content/uploads/2009/02/picture-2.gif" alt="Properties Panel" title="Properties Panel" width="281" height="153" class="alignright size-full wp-image-1423" /> This is the properties panel.  Depending on what version of flash you have, it&#8217;ll either be horizontal on the bottom or vertical on the sidebar. This is a pretty important panel, as it gives you all of the information you need about a selected object.</p>
<h4>Other Panels that You&#8217;ll Need to Be Familiar With</h4>
<p><strong>The Actions Panel</strong> &#8211; This is where you will type in all of your code.  If you&#8217;re going to be a game developer, you&#8217;ll want to make this as large as possible</p>
<p><strong>The Compiler Errors Panel</strong> &#8211; This is useful if you mess up with your code.  It&#8217;ll pop up whenever a problem occurs with your code and the game won&#8217;t work.</p>
<p><strong>The Output Panel</strong> &#8211; This panel is similar to the compiler errors.  This is where Flash will output warnings.  Your trace statements will also appear here.</p>
<h4>A Good Layout of Panels for a Game Developer</h4>
<p><a href="http://www.mrsunstudios.com/wp-content/uploads/2009/02/screen.gif"><img src="http://www.mrsunstudios.com/wp-content/uploads/2009/02/screensmall.gif" alt="A Screenshot of a Good Layout for Flash" title="A Screenshot of a Good Layout for Flash" width="610" height="356" class="alignnone size-full wp-image-1429" /></a></p>
<h4>Online Tutorials to Get Used to Flash</h4>
<ul>
<li><a href="http://www.w3schools.com/Flash/default.asp">W3 Schools</a></li>
<li><a href="http://www.entheosweb.com/Flash/default.asp">Entheos Web Flash Tutorials</a></li>
<li><a href="http://www.kirupa.com/developer/flash/index.htm">Kirupa</a></li>
<li><a href="http://www.flashdesignerzone.com/tutorials/">Flash Designer Zone Flash Tutorials</a></li>
</ul>
<h3>Step 3: Learn Some ActionScript</h3>
<p>Finally! It&#8217;s time for you to learn some code.  But, which version of ActionScript should you learn first? In my opinion, ActionScript 2.0 is probably the best to gain knowledge of first, as it isn&#8217;t as strict as ActionScript 3.0.  Then, later, once you&#8217;ve gotten the hang of it, you can learn AS3. But, it&#8217;s all up to you.  There are many tutorials online (including on <a href="http://www.mrsunstudios.com/tutorials">my site</a>). Here are some of the ones I suggest:</p>
<ul>
<li><a href="http://www.kirupa.com/developer/flash/index.htm#ActionScript_Basics">Kirupa</a></li>
<li><a href="http://www.flashkit.com/tutorials/Actionscripting/">Flash Kit Tutorials</a></li>
<li><a href="http://www.actionscript.org/resources/categories/Tutorials/Flash/">ActionScript.org Tutorials</a></li>
</ul>
<h3>Step 4: Make some Practice Games (Optional)</h3>
<p>Hopefully, the above tutorials have helped you learn to code.  If you&#8217;re still shaky, then I suggest creating some simple games as &#8220;practice&#8221;.  Tutorials are a must for this step.  I suggest finding some that will walk you through the entire process.  Don&#8217;t expect to make any money with these games, or maybe even to release them to the public.  These games are just for practice.  Games that are great to make as practice are: brick breakers, simple platformers, Pacman, vertical shooters, mouse mazes, and other classic games.  Here are some great tutorials:</p>
<h4>AS2</h4>
<ul>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-create-a-brick-breaker-game-in-as2/">Brick Breaker Game</a></li>
<li>Avoiding Game</li>
<li><a href="http://www.emanueleferonato.com/2006/10/29/flash-game-creation-tutorial-part-1/">A Game Like Ball Revamped</a></li>
<li><a href="http://www.emanueleferonato.com/2007/04/28/create-a-flash-artillery-game-step-1/">Artillery Game</a></li>
</ul>
<h4>AS3</h4>
<ul>
<li><a href="http://www.mrsunstudios.com/2008/07/tutorial-create-a-brick-breaker-game-in-as3/">Brick Breaker Game</a></li>
<li><a href="http://www.8bitrocket.com/newsdisplay.aspx?newspage=6077">Setting Up a Pacman Game</a></li>
<li><a href="http://www.mrsunstudios.com/2008/08/tutorial-create-a-platform-game-in-as3/">Platform Game</a></li>
</ul>
<h3>Step 5: Develop Some Killer Flash Games!</h3>
<p>Now, assuming that you&#8217;ve done all of the previous steps, you can unleash your inner game developer.  The possibilities are now virtually endless for you.  You can create any game you want.  You can make some simple innovative new concept, or maybe even create an epic MMORPG.  Develop your own world.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrsunstudios.com/blog/flash/so-you-wanna-make-a-game-a-step-by-step-guide-to-becoming-a-flash-game-developer/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Tutorial: Make a Vertical Shooter in AS2 &#8211; Part 6</title>
		<link>http://www.mrsunstudios.com/blog/flash/tutorial-make-a-vertical-shooter-in-as2-part-6/</link>
		<comments>http://www.mrsunstudios.com/blog/flash/tutorial-make-a-vertical-shooter-in-as2-part-6/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 12:06:47 +0000</pubDate>
		<dc:creator>MrSun</dc:creator>
				<category><![CDATA[All Tutorials]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Intermediate Tutorials]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[learn]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[shooter]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[vertical]]></category>

		<guid isPermaLink="false">http://www.mrsunstudios.com/?p=1148</guid>
		<description><![CDATA[Table of Contents Programming the Character Programming the Character &#8211; Part 2 Creating the Enemies Programming the Enemies Scoring Finishing Touches Step 6: Finishing Touches As always, the finishing touches of this game won&#8217;t be explained too much by me, in hopes that you actually can do some of this stuff by yourself. Of course, [...]]]></description>
			<content:encoded><![CDATA[<div class="toc">
<h3>Table of Contents</h3>
<ol>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2">Programming the Character</a></li>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2-part-2">Programming the Character &#8211; Part 2</a></li>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2-part-3">Creating the Enemies</a></li>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2-part-4">Programming the Enemies</a></li>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2-part-5">Scoring</a></li>
<li class="c_chap"><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2-part-6">Finishing Touches</a></li>
</ol>
</div>
<h3>Step 6: Finishing Touches</h3>
<p>As always, the finishing touches of this game won&#8217;t be explained too much by me, in hopes that you actually can do some of this stuff by yourself. Of course, there will always be source files at the bottom if you need to clear anything up.</p>
<p>The first thing I want to do is show the score on the &#8220;lose&#8221; screen. That&#8217;ll be pretty easy, just add a dynamic text field there.</p>
<p>Next, we can make some particles move down the screen so it looks like the player is actually moving forward. We&#8217;re going to make them the same speed as the enemies. I&#8217;m actually show some code for this one, because it&#8217;s also a pretty new thing for me. We&#8217;re not going to make a MovieClip for this, we&#8217;re going to make dynamic shapes through ActionScript. First, we have to add a <tt>totalBgShapes</tt> variable to the top of the code. Next, create an empty MovieClip called <tt>bgHolder</tt> Then, here&#8217;s the code to place at the bottom of the <tt>onEnterFrame</tt> function:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//creating background particles</span>
bgHolder.<span style="color: #0066CC;">createEmptyMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;bg&quot;</span>+totalBgShapes, bgHolder.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
bgHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;bg&quot;</span>+totalBgShapes<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">beginFill</span><span style="color: #66cc66;">&#40;</span>0x333333<span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//this just determines the shape's color</span>
bgHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;bg&quot;</span>+totalBgShapes<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">550</span><span style="color: #66cc66;">&#41;</span>;
gHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;bg&quot;</span>+totalBgShapes<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = -<span style="color: #cc66cc;">50</span> - bgHolder.<span style="color: #0066CC;">_y</span>;
<span style="color: #808080; font-style: italic;">//creating 4 random points to make a random shape</span>
bgHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;bg&quot;</span>+totalBgShapes<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
bgHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;bg&quot;</span>+totalBgShapes<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
bgHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;bg&quot;</span>+totalBgShapes<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
bgHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;bg&quot;</span>+totalBgShapes<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span>, <span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #cc66cc;">25</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
bgHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;bg&quot;</span>+totalBgShapes<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">endFill</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//finishes up the shape</span>
&nbsp;
bgHolder<span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">&quot;bg&quot;</span>+totalBgShapes<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//giving it some actions</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">450</span> - bgHolder.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">||</span> <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">gameOver</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if it goes off the stage or game is over</span>
		<span style="color: #808080; font-style: italic;">//then destroy it</span>
		<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
&nbsp;
totalBgShapes ++;
bgHolder.<span style="color: #0066CC;">_y</span> += <span style="color: #cc66cc;">2</span>;</pre></div></div>

<p>Pretty intense, eh? Well, this is a finishing touch, and most finishing touches <em>are</em> pretty intense. Now, we have to make it so <tt>mcMain</tt> is on top of everything with this code at the end:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">mcMain.<span style="color: #0066CC;">swapDepths</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1000</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>Also, remove <tt>mcMain</tt> when <tt>gameOver</tt> is true or else strange things will happen.</p>
<p>There is one final thing that I want to do before actually wrapping up this tutorial.  For some reason, there is a bug where a bullet disappears for some strange reason.  I think I know exactly how to fix it.  When we added the bullet to the stage, we made its depth the <tt>_root.getNextHighestDepth</tt>. I&#8217;m sorry, it should actually be <tt>bulletHolder.getNextHighestDepth</tt>.</p>
<p>Well, that&#8217;s actually all that I really have to finish off the game. I hope you had fun making it!</p>
<h4>The Final Product:</h4>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="300" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://mrsunstudios.com/obj/tuts/vert-shooter-as2/pt6/source.swf" /><embed type="application/x-shockwave-flash" width="300" height="400" src="http://mrsunstudios.com/obj/tuts/vert-shooter-as2/pt6/source.swf"></embed></object></p>
<p><a href="http://mrsunstudios.com/obj/tuts/vert-shooter-as2/pt6/source.fla">Source .fla File</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrsunstudios.com/blog/flash/tutorial-make-a-vertical-shooter-in-as2-part-6/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Tutorial: Make a Vertical Shooter in AS2 &#8211; Part 5</title>
		<link>http://www.mrsunstudios.com/blog/flash/tutorial-make-a-vertical-shooter-in-as2-part-5/</link>
		<comments>http://www.mrsunstudios.com/blog/flash/tutorial-make-a-vertical-shooter-in-as2-part-5/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 12:05:02 +0000</pubDate>
		<dc:creator>MrSun</dc:creator>
				<category><![CDATA[All Tutorials]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game Development]]></category>
		<category><![CDATA[Intermediate Tutorials]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[learn]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[shooter]]></category>
		<category><![CDATA[teaching]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[vertical]]></category>

		<guid isPermaLink="false">http://www.mrsunstudios.com/?p=1140</guid>
		<description><![CDATA[Table of Contents Programming the Character Programming the Character &#8211; Part 2 Creating the Enemies Programming the Enemies Scoring Finishing Touches Step 5: Scoring Now that we&#8217;ve got the hardest part down, it all gets easier from here. This chapter will be simple, just some code that has scoring. Also, as promised, we&#8217;re going to [...]]]></description>
			<content:encoded><![CDATA[<div class="toc">
<h3>Table of Contents</h3>
<ol>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2">Programming the Character</a></li>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2-part-2">Programming the Character &#8211; Part 2</a></li>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2-part-3">Creating the Enemies</a></li>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2-part-4">Programming the Enemies</a></li>
<li class="c_chap"><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2-part-5">Scoring</a></li>
<li><a href="http://www.mrsunstudios.com/2009/01/tutorial-make-a-vertical-shooter-in-as2-part-6">Finishing Touches</a></li>
</ol>
</div>
<h3>Step 5: Scoring</h3>
<p>Now that we&#8217;ve got the hardest part down, it all gets easier from here. This chapter will be simple, just some code that has scoring. Also, as promised, we&#8217;re going to have a function run when the player is hit by an enemy. Let&#8217;s start with this one first, eh?</p>
<p>In order to do this, we have to make a frame called &#8220;lose&#8221;. This will be the frame that we&#8217;ll navigate to when we get hit. It&#8217;ll be simple, just some text that says &#8220;You Lose&#8221; and a listener for keystrokes  that will return us to play another game. First, make the frame called &#8220;lose&#8221;. I recommend making an entire new layer for labels, but this isn&#8217;t required. In that frame, draw or type in whatever you want to signify that the player has lost the game. I&#8217;m just going to put the text, &#8220;YOU LOSE&#8221; and, in smaller text, &#8220;Press Space to Restart&#8221;.</p>
<p>Then, in the actions, type in the following code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">stop</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//stops the game so nothing goes wrong</span>
&nbsp;
<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">//create a function to check for keystrokes</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Key</span>.<span style="color: #0066CC;">isDown</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//if the space key is down...</span>
		<span style="color: #0066CC;">gotoAndStop</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">//then go back to the first frame, restarting the game</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Now, I&#8217;ve noticed a bit of a problem in the main code.  For some reason, the game thinks that you get hit whenever you shoot an enemy.  I&#8217;ve found a way around this strange behavior, however. First of all, add this variable to the top of the code:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//showing the amount of enemies that have been added to the stage</span>
<span style="color: #000000; font-weight: bold;">var</span> enemyTotal:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;</pre></div></div>

<p>Next, find the code where we have to create the enemy and add it to the stage.  Change it to this:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">attachMovie</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'mcEnemy'</span>, <span style="color: #ff0000;">'en'</span>+enemyTotal,<span style="color: #0066CC;">_root</span>.<span style="color: #0066CC;">getNextHighestDepth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//then add the enemy</span>
<span style="color: #808080; font-style: italic;">//setting it's coordinates</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'en'</span>+enemyTotal<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> = <span style="color: #0066CC;">int</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span><span style="color: #0066CC;">Stage</span>.<span style="color: #0066CC;">width</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//randomly within the boundaries</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'en'</span>+enemyTotal<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span> = -<span style="color: #cc66cc;">50</span>; <span style="color: #808080; font-style: italic;">//sets this offstage at first</span>
<span style="color: #0066CC;">_root</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'en'</span>+enemyTotal<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">onEnterFrame</span> = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #808080; font-style: italic;">//then give it some functions</span>
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> += <span style="color: #cc66cc;">5</span>;
&nbsp;
	<span style="color: #808080; font-style: italic;">//run a loop checking if it's touching any bullets</span>
	<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> cBullet:<span style="color: #0066CC;">String</span> <span style="color: #b1b100;">in</span> <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">bulletHolder</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//if it's touching the bullet</span>
		<span style="color: #808080; font-style: italic;">//we have to use coordinates because hit testing doesn't seem to work</span>
		<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">bulletHolder</span><span style="color: #66cc66;">&#91;</span>cBullet<span style="color: #66cc66;">&#93;</span>._y-<span style="color: #cc66cc;">30</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_y</span> <span style="color: #66cc66;">&lt;</span>= <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">bulletHolder</span><span style="color: #66cc66;">&#91;</span>cBullet<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_y</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span> <span style="color: #66cc66;">&lt;</span>= <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">bulletHolder</span><span style="color: #66cc66;">&#91;</span>cBullet<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span>+<span style="color: #cc66cc;">5</span> <span style="color: #66cc66;">&amp;&amp;</span> <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">_x</span> <span style="color: #66cc66;">&gt;</span>= <span style="color: #0066CC;">_root</span>.<span style="color: #006600;">bulletHolder</span><span style="color: #66cc66;">&#91;</span>cBullet<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">_x</span> -<span style="color: #cc66cc;">35</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
				<span style="color: #808080; font-style: italic;">//then destroy this guy</span>
				<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
				<span style="color: #808080; font-style: italic;">//and destroy the bullet</span>
				<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">bulletHolder</span><span style="color: #66cc66;">&#91;</span>cBullet<span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">//hit testing with the user</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">hitTest</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">mcMain</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #808080; font-style: italic;">//we'll add code here in the next part</span>
		<span style="color: #808080; font-style: italic;">//but for now, we'll just trace something</span>
		<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'You just got hit!'</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
enemyTime = <span style="color: #cc66cc;">0</span>;<span style="color: #808080; font-style: italic;">//reset the time</span>
enemyTotal ++; <span style="color: #808080; font-style: italic;">//add 1 more to the amount of enemies total</span></pre></div></div>

<p>I&#8217;m sorry about this delay, but we need this to continue on with our game.</p>
<p>Now, we have to create a new variable at the top that will say whether or not the game has been ended:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">stop</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<span style="color: #808080; font-style: italic;">//add a stop function too!</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> gameOver:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">false</span>;</pre></div></div>

<p>Then, add this code to both the <tt>mcBullet</tt>&#8216;s and <tt>mcEnemy</tt>&#8216;s <tt>onEnterFrame</tt> functions:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//checking if the game is over</span>
<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>gameOver<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">//destroy this guy if the game is over</span>
	<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">removeMovieClip</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Now, we can make this Boolean false when the user gets touched by the enemy. Find where we hit test for <tt>mcMain</tt> and replace that trace statement with:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//hit testing with the user</span>
<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">hitTest</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">_root</span>.<span style="color: #006600;">mcMain</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #808080; font-style: italic;">//set the game to be over and go to lose screen</span>
	gameOver = <span style="color: #000000; font-weight: bold;">true</span>;
	<span style="color: #0066CC;">gotoAndStop</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'lose'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Phew, that was a lot of work, wasn&#8217;t it? Now we can move onto actually scoring the game. First, we have to define a score variable at the top:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//the player's score</span>
<span style="color: #000000; font-weight: bold;">var</span> score:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;</pre></div></div>

<p>Then, increment the score every time an enemy is killed. Place this code in the Enemy&#8217;s hit testing for the bullet.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//up the score</span>
<span style="color: #0066CC;">_root</span>.<span style="color: #006600;">score</span> += <span style="color: #cc66cc;">5</span>;</pre></div></div>

<p>Now, we can show the score to the user with a dynamic text field. Make one at the bottom of the stage and give it an instance name of <tt>txtScore</tt>. Next, place this code into the <tt>onEnterFrame</tt> function.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">//updating the score text field</span>
txtScore.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">'Score:  '</span>+score;</pre></div></div>

<p>Pretty easy, right? Well, that&#8217;s all we&#8217;re going to do for scoring. Next, we&#8217;ll add some sweet finishing touches, eh?</p>
<h4>The Final Product:</h4>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="300" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://mrsunstudios.com/obj/tuts/vert-shooter-as2/pt5/source.swf" /><embed type="application/x-shockwave-flash" width="300" height="400" src="http://mrsunstudios.com/obj/tuts/vert-shooter-as2/pt5/source.swf"></embed></object></p>
<p><a href="http://mrsunstudios.com/obj/tuts/vert-shooter-as2/pt5/source.fla">Source .fla File</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mrsunstudios.com/blog/flash/tutorial-make-a-vertical-shooter-in-as2-part-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

