<?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>Emanuele Feronato</title>
	<atom:link href="http://www.emanueleferonato.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emanueleferonato.com</link>
	<description>italian geek and PROgrammer</description>
	<lastBuildDate>Wed, 16 May 2012 19:40:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Simulating mud/slime with Box2D, bitmaps and filters</title>
		<link>http://www.emanueleferonato.com/2012/05/16/simulating-mudslime-with-box2d-bitmaps-and-filters/</link>
		<comments>http://www.emanueleferonato.com/2012/05/16/simulating-mudslime-with-box2d-bitmaps-and-filters/#comments</comments>
		<pubDate>Wed, 16 May 2012 19:40:52 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Box2D]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=5460</guid>
		<description><![CDATA[An attempt to simulate slime using Box2D, bitmaps, filters and threshold. Interesting result.]]></description>
			<content:encoded><![CDATA[<p>This is an attempt to simulate something like mud/slime with Box2D for a game concept I am trying do develop.</p>
<p>I won&#8217;t go much in detail with the tutorial because at the moment I am still fine-tuning the effect, but I am showing you a step by step process to achieve a slime-looking effect.</p>
<p>First, let&#8217;s create some static objects:</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
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Sprite</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Dynamics<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.</span>Shapes<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Common<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Main <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> world<span style="color: #000066; font-weight: bold;">:</span>b2World=<span style="color: #0033ff; font-weight: bold;">new</span> b2World<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> worldScale<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> polygonShape<span style="color: #000066; font-weight: bold;">:</span>b2PolygonShape = <span style="color: #0033ff; font-weight: bold;">new</span> b2PolygonShape<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>restitution=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>density=<span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>friction=<span style="color: #000000; font-weight:bold;">0.4</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef= <span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">240</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> container<span style="color: #000066; font-weight: bold;">:</span>b2Body<span style="color: #000066; font-weight: bold;">;</span>
			container=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">132</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">144</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">200</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">60</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">276</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">60</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span>update<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugDraw<span style="color: #000066; font-weight: bold;">:</span>b2DebugDraw = <span style="color: #0033ff; font-weight: bold;">new</span> b2DebugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugSprite<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Sprite</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetSprite<span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetDrawScale<span style="color: #000000;">&#40;</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFlags<span style="color: #000000;">&#40;</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_shapeBit<span style="color: #000066; font-weight: bold;">|</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_jointBit<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFillAlpha<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0.5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>SetDebugDraw<span style="color: #000000;">&#40;</span>debugDraw<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> update<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>Step<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">6</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>ClearForces<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>DrawDebugData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>I am just creating some kind of container with a hole in the bottom.</p>
<p><embed src="/wp-content/uploads/2012/05/slime01.swf" menu="false" quality="high" width="640" height="480" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></p>
<p>Then, I skin the container with a transparent image and create one little ball at every frame, someone would call them particle. I remove them when they leave the stage to the bottom, and I don&#8217;t place more than 200 balls at the same time, although I was able to place about 300 of them without stressing that much my CPU.</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
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Sprite</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Dynamics<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.</span>Shapes<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Common<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Main <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> world<span style="color: #000066; font-weight: bold;">:</span>b2World=<span style="color: #0033ff; font-weight: bold;">new</span> b2World<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> worldScale<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> backgroundImage<span style="color: #000066; font-weight: bold;">:</span>BackgroundImage=<span style="color: #0033ff; font-weight: bold;">new</span> BackgroundImage<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>backgroundImage<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> polygonShape<span style="color: #000066; font-weight: bold;">:</span>b2PolygonShape = <span style="color: #0033ff; font-weight: bold;">new</span> b2PolygonShape<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>restitution=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>density=<span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>friction=<span style="color: #000000; font-weight:bold;">0.4</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef= <span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">240</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> container<span style="color: #000066; font-weight: bold;">:</span>b2Body<span style="color: #000066; font-weight: bold;">;</span>
			container=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">132</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">144</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">200</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">60</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">276</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">60</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span>update<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> addCircle<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">,</span>h<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> circleShape<span style="color: #000066; font-weight: bold;">:</span>b2CircleShape = <span style="color: #0033ff; font-weight: bold;">new</span> b2CircleShape<span style="color: #000000;">&#40;</span>h<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>density=<span style="color: #000000; font-weight:bold;">3</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>friction=<span style="color: #000000; font-weight:bold;">0.4</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>restitution=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=circleShape<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">type</span>=b2Body<span style="color: #000066; font-weight: bold;">.</span>b2_dynamicBody<span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span>userData=<span style="color: #0033ff; font-weight: bold;">new</span> WaterCircle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> box<span style="color: #000066; font-weight: bold;">:</span>b2Body=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			box<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugDraw<span style="color: #000066; font-weight: bold;">:</span>b2DebugDraw = <span style="color: #0033ff; font-weight: bold;">new</span> b2DebugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugSprite<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Sprite</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetSprite<span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetDrawScale<span style="color: #000000;">&#40;</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFlags<span style="color: #000000;">&#40;</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_shapeBit<span style="color: #000066; font-weight: bold;">|</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_jointBit<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFillAlpha<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0.5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>SetDebugDraw<span style="color: #000000;">&#40;</span>debugDraw<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> update<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> waterParticles<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>Step<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">6</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>ClearForces<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">:</span>b2Body = world<span style="color: #000066; font-weight: bold;">.</span>GetBodyList<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span> = <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetNext<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetUserData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">!</span>=<span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
					waterParticles<span style="color: #000066; font-weight: bold;">++;</span>
					<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight:bold;">480</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
						world<span style="color: #000066; font-weight: bold;">.</span>DestroyBody<span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #000000;">&#125;</span>
				<span style="color: #000000;">&#125;</span>
			<span style="color: #000000;">&#125;</span>
			<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>waterParticles<span style="color: #000066; font-weight: bold;">&lt;</span><span style="color: #000000; font-weight:bold;">300</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				addCircle<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,-</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>DrawDebugData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>At this time I have a continuous flux of balls falling down the container.</p>
<p><embed src="/wp-content/uploads/2012/05/slime02.swf" menu="false" quality="high" width="640" height="480" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></p>
<p>Next steps consists in rendering balls on a separate DisplayObject using a Bitmap</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="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Sprite</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">BitmapData</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Bitmap</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.geom</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Matrix</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Dynamics<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.</span>Shapes<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Common<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Main <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> world<span style="color: #000066; font-weight: bold;">:</span>b2World=<span style="color: #0033ff; font-weight: bold;">new</span> b2World<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> worldScale<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterBitmapData<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">BitmapData</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">BitmapData</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">640</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">480</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">,</span>0xFF333333<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterBitmap<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Bitmap</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Bitmap</span><span style="color: #000000;">&#40;</span>waterBitmapData<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterMatrix<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Matrix</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Matrix</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>waterBitmap<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> backgroundImage<span style="color: #000066; font-weight: bold;">:</span>BackgroundImage=<span style="color: #0033ff; font-weight: bold;">new</span> BackgroundImage<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>backgroundImage<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> polygonShape<span style="color: #000066; font-weight: bold;">:</span>b2PolygonShape = <span style="color: #0033ff; font-weight: bold;">new</span> b2PolygonShape<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>restitution=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>density=<span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>friction=<span style="color: #000000; font-weight:bold;">0.4</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef= <span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">240</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> container<span style="color: #000066; font-weight: bold;">:</span>b2Body<span style="color: #000066; font-weight: bold;">;</span>
			container=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">132</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">144</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">200</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">60</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">276</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">60</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span>update<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> addCircle<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">,</span>h<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> circleShape<span style="color: #000066; font-weight: bold;">:</span>b2CircleShape = <span style="color: #0033ff; font-weight: bold;">new</span> b2CircleShape<span style="color: #000000;">&#40;</span>h<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>density=<span style="color: #000000; font-weight:bold;">3</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>friction=<span style="color: #000000; font-weight:bold;">0.4</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>restitution=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=circleShape<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">type</span>=b2Body<span style="color: #000066; font-weight: bold;">.</span>b2_dynamicBody<span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span>userData=<span style="color: #0033ff; font-weight: bold;">new</span> WaterCircle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> box<span style="color: #000066; font-weight: bold;">:</span>b2Body=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			box<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugDraw<span style="color: #000066; font-weight: bold;">:</span>b2DebugDraw = <span style="color: #0033ff; font-weight: bold;">new</span> b2DebugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugSprite<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Sprite</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetSprite<span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetDrawScale<span style="color: #000000;">&#40;</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFlags<span style="color: #000000;">&#40;</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_shapeBit<span style="color: #000066; font-weight: bold;">|</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_jointBit<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFillAlpha<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0.5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>SetDebugDraw<span style="color: #000000;">&#40;</span>debugDraw<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> update<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> waterParticles<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">fillRect</span><span style="color: #000000;">&#40;</span>waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rect</span><span style="color: #000066; font-weight: bold;">,</span>0xFF333333<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>Step<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">6</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>ClearForces<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">:</span>b2Body = world<span style="color: #000066; font-weight: bold;">.</span>GetBodyList<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span> = <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetNext<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetUserData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">!</span>=<span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
					waterParticles<span style="color: #000066; font-weight: bold;">++;</span>
					<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight:bold;">480</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
						world<span style="color: #000066; font-weight: bold;">.</span>DestroyBody<span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #000000;">&#125;</span>
					<span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #000000;">&#123;</span>
						waterMatrix<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">tx</span>=<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">;</span>
						waterMatrix<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ty</span>=<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">;</span>
						waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">draw</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetUserData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span>waterMatrix<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #000000;">&#125;</span>
				<span style="color: #000000;">&#125;</span>
			<span style="color: #000000;">&#125;</span>
			<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>waterParticles<span style="color: #000066; font-weight: bold;">&lt;</span><span style="color: #000000; font-weight:bold;">300</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				addCircle<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,-</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>DrawDebugData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>Now I can remove the debug draw as all Box2D assets have their own DisplayObject representing them</p>
<p><embed src="/wp-content/uploads/2012/05/slime03.swf" menu="false" quality="high" width="640" height="480" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></p>
<p>And now, since I am using a Bitmap, I can add a blur filter to balls</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
90
91
92
93
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Sprite</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">BitmapData</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Bitmap</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.geom</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Matrix</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.filters</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">BlurFilter</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.filters</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">BitmapFilterQuality</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.geom</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Point</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Dynamics<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.</span>Shapes<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Common<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Main <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> world<span style="color: #000066; font-weight: bold;">:</span>b2World=<span style="color: #0033ff; font-weight: bold;">new</span> b2World<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> worldScale<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterBitmapData<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">BitmapData</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">BitmapData</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">640</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">480</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">,</span>0xFF333333<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterBitmap<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Bitmap</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Bitmap</span><span style="color: #000000;">&#40;</span>waterBitmapData<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterMatrix<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Matrix</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Matrix</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterBlur<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">BlurFilter</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">BlurFilter</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">15</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">15</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #004993;">flash.filters</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">BitmapFilterQuality</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">HIGH</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>waterBitmap<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> backgroundImage<span style="color: #000066; font-weight: bold;">:</span>BackgroundImage=<span style="color: #0033ff; font-weight: bold;">new</span> BackgroundImage<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>backgroundImage<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> polygonShape<span style="color: #000066; font-weight: bold;">:</span>b2PolygonShape = <span style="color: #0033ff; font-weight: bold;">new</span> b2PolygonShape<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>restitution=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>density=<span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>friction=<span style="color: #000000; font-weight:bold;">0.4</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef= <span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">240</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> container<span style="color: #000066; font-weight: bold;">:</span>b2Body<span style="color: #000066; font-weight: bold;">;</span>
			container=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">132</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">144</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">200</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">60</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">276</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">60</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span>update<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> addCircle<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">,</span>h<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> circleShape<span style="color: #000066; font-weight: bold;">:</span>b2CircleShape = <span style="color: #0033ff; font-weight: bold;">new</span> b2CircleShape<span style="color: #000000;">&#40;</span>h<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>density=<span style="color: #000000; font-weight:bold;">3</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>friction=<span style="color: #000000; font-weight:bold;">0.4</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>restitution=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=circleShape<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">type</span>=b2Body<span style="color: #000066; font-weight: bold;">.</span>b2_dynamicBody<span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span>userData=<span style="color: #0033ff; font-weight: bold;">new</span> WaterCircle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> box<span style="color: #000066; font-weight: bold;">:</span>b2Body=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			box<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugDraw<span style="color: #000066; font-weight: bold;">:</span>b2DebugDraw = <span style="color: #0033ff; font-weight: bold;">new</span> b2DebugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugSprite<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Sprite</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetSprite<span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetDrawScale<span style="color: #000000;">&#40;</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFlags<span style="color: #000000;">&#40;</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_shapeBit<span style="color: #000066; font-weight: bold;">|</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_jointBit<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFillAlpha<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0.5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>SetDebugDraw<span style="color: #000000;">&#40;</span>debugDraw<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> update<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> waterParticles<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">fillRect</span><span style="color: #000000;">&#40;</span>waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rect</span><span style="color: #000066; font-weight: bold;">,</span>0xFF333333<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>Step<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">6</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>ClearForces<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">:</span>b2Body = world<span style="color: #000066; font-weight: bold;">.</span>GetBodyList<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span> = <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetNext<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetUserData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">!</span>=<span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
					waterParticles<span style="color: #000066; font-weight: bold;">++;</span>
					<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight:bold;">480</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
						world<span style="color: #000066; font-weight: bold;">.</span>DestroyBody<span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #000000;">&#125;</span>
					<span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #000000;">&#123;</span>
						waterMatrix<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">tx</span>=<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">;</span>
						waterMatrix<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ty</span>=<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">;</span>
						waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">draw</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetUserData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span>waterMatrix<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #000000;">&#125;</span>
				<span style="color: #000000;">&#125;</span>
			<span style="color: #000000;">&#125;</span>
			<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>waterParticles<span style="color: #000066; font-weight: bold;">&lt;</span><span style="color: #000000; font-weight:bold;">300</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				addCircle<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,-</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
			waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">applyFilter</span><span style="color: #000000;">&#40;</span>waterBitmapData<span style="color: #000066; font-weight: bold;">,</span>waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rect</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Point</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span>waterBlur<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>At this time I&#8217;m getting a &#8220;smoke&#8221; effect, but this is not what I want</p>
<p><embed src="/wp-content/uploads/2012/05/slime04.swf" menu="false" quality="high" width="640" height="480" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></p>
<p>So the final step is to add a threshold to change some colors of my bitmap balls/smoke, play a bit with transparency and add a better background</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
90
91
92
93
94
95
96
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Sprite</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">BitmapData</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Bitmap</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.geom</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Matrix</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.filters</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">BlurFilter</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.filters</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">BitmapFilterQuality</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.geom</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Point</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Dynamics<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.</span>Shapes<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Common<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Main <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> world<span style="color: #000066; font-weight: bold;">:</span>b2World=<span style="color: #0033ff; font-weight: bold;">new</span> b2World<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> worldScale<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterBitmapData<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">BitmapData</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">BitmapData</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">640</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">480</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">,</span>0x00000000<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterBitmap<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Bitmap</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Bitmap</span><span style="color: #000000;">&#40;</span>waterBitmapData<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterMatrix<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Matrix</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Matrix</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> waterBlur<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">BlurFilter</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">BlurFilter</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">15</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">15</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #004993;">flash.filters</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">BitmapFilterQuality</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">HIGH</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> realBg<span style="color: #000066; font-weight: bold;">:</span>RealBg=<span style="color: #0033ff; font-weight: bold;">new</span> RealBg<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>realBg<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>waterBitmap<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> backgroundImage<span style="color: #000066; font-weight: bold;">:</span>BackgroundImage=<span style="color: #0033ff; font-weight: bold;">new</span> BackgroundImage<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>backgroundImage<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> polygonShape<span style="color: #000066; font-weight: bold;">:</span>b2PolygonShape = <span style="color: #0033ff; font-weight: bold;">new</span> b2PolygonShape<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>restitution=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>density=<span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>friction=<span style="color: #000000; font-weight:bold;">0.4</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef= <span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">240</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> container<span style="color: #000066; font-weight: bold;">:</span>b2Body<span style="color: #000066; font-weight: bold;">;</span>
			container=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">132</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">144</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">200</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">60</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			polygonShape<span style="color: #000066; font-weight: bold;">.</span>SetAsOrientedBox<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">12</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">276</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">60</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=polygonShape<span style="color: #000066; font-weight: bold;">;</span>
			container<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span>update<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> addCircle<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">,</span>h<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> circleShape<span style="color: #000066; font-weight: bold;">:</span>b2CircleShape = <span style="color: #0033ff; font-weight: bold;">new</span> b2CircleShape<span style="color: #000000;">&#40;</span>h<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>density=<span style="color: #000000; font-weight:bold;">3</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>friction=<span style="color: #000000; font-weight:bold;">0.4</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>restitution=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=circleShape<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">type</span>=b2Body<span style="color: #000066; font-weight: bold;">.</span>b2_dynamicBody<span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span>userData=<span style="color: #0033ff; font-weight: bold;">new</span> WaterCircle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> box<span style="color: #000066; font-weight: bold;">:</span>b2Body=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			box<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugDraw<span style="color: #000066; font-weight: bold;">:</span>b2DebugDraw = <span style="color: #0033ff; font-weight: bold;">new</span> b2DebugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugSprite<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Sprite</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetSprite<span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetDrawScale<span style="color: #000000;">&#40;</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFlags<span style="color: #000000;">&#40;</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_shapeBit<span style="color: #000066; font-weight: bold;">|</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_jointBit<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFillAlpha<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0.5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>SetDebugDraw<span style="color: #000000;">&#40;</span>debugDraw<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> update<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> waterParticles<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">fillRect</span><span style="color: #000000;">&#40;</span>waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rect</span><span style="color: #000066; font-weight: bold;">,</span>0x00000000<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>Step<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">6</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>ClearForces<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">:</span>b2Body = world<span style="color: #000066; font-weight: bold;">.</span>GetBodyList<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span> = <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetNext<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetUserData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">!</span>=<span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
					waterParticles<span style="color: #000066; font-weight: bold;">++;</span>
					<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight:bold;">480</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
						world<span style="color: #000066; font-weight: bold;">.</span>DestroyBody<span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #000000;">&#125;</span>
					<span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #000000;">&#123;</span>
						waterMatrix<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">tx</span>=<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">;</span>
						waterMatrix<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ty</span>=<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">;</span>
						waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">draw</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetUserData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span>waterMatrix<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #000000;">&#125;</span>
				<span style="color: #000000;">&#125;</span>
			<span style="color: #000000;">&#125;</span>
			<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span>waterParticles<span style="color: #000066; font-weight: bold;">&lt;</span><span style="color: #000000; font-weight:bold;">300</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				addCircle<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">,-</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
			waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">applyFilter</span><span style="color: #000000;">&#40;</span>waterBitmapData<span style="color: #000066; font-weight: bold;">,</span>waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rect</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Point</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span>waterBlur<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">threshold</span><span style="color: #000000;">&#40;</span>waterBitmapData<span style="color: #000066; font-weight: bold;">,</span>waterBitmapData<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rect</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Point</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #990000;">&quot;&gt;&quot;</span><span style="color: #000066; font-weight: bold;">,</span>0X11444444<span style="color: #000066; font-weight: bold;">,</span>0x88FF00FF<span style="color: #000066; font-weight: bold;">,</span>0xFFFFFFFF<span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>And that&#8217;s it! Not the best slime ever seen, but it&#8217;s dynamically generated by Box2D, this means it has a real mass, which is quite awesome.</p>
<p><embed src="/wp-content/uploads/2012/05/slime05.swf" menu="false" quality="high" width="640" height="480" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></p>
<p>How would you improve it?</p>
<p><a href="/wp-content/uploads/2012/05/slime.zip">Download the source code</a> of the last example.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2012/05/16/simulating-mudslime-with-box2d-bitmaps-and-filters/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Understanding Box2D kinematic bodies</title>
		<link>http://www.emanueleferonato.com/2012/05/11/understanding-box2d-kinematic-bodies/</link>
		<comments>http://www.emanueleferonato.com/2012/05/11/understanding-box2d-kinematic-bodies/#comments</comments>
		<pubDate>Fri, 11 May 2012 21:46:21 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Box2D]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=5452</guid>
		<description><![CDATA[You know everything about Box2D static and dynamic bodies, but what about kinematic bodies?]]></description>
			<content:encoded><![CDATA[<p>So you are used to work with Box2D and know everything about body types, such as static bodies and dynamic bodies&#8230; why nobody talks about kinematic bodies?</p>
<p>I think kinematic bodies are great to do some tasks, but first let me briefly explain the difference among body types.</p>
<p>A <strong>dynamic body</strong> is a body which is affected by world forces and react to collisions. And you already met a million of them.</p>
<p>A <strong>static body</strong> is a body which isn&#8217;t affected by world forces it does not react to collisions. It can&#8217;t be moved. Fullstop.</p>
<p>A <strong>kinematic body</strong> is an hybrid body which is not affected by forces and collisions like a static body but can moved with a linear velocity like a dynamic body.</p>
<p>So I made this little, commented script where dynamic spheres fall down at every second in a world full of moving kinematic bodies. The effect is unique and can be used in some games.</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
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Sprite</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.utils</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Timer</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">TimerEvent</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Dynamics<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.</span>Shapes<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Common<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Main <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> world<span style="color: #000066; font-weight: bold;">:</span>b2World=<span style="color: #0033ff; font-weight: bold;">new</span> b2World<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> worldScale<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">timer</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Timer</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Timer</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1000</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> i<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span> i<span style="color: #000066; font-weight: bold;">&lt;</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">;</span> i<span style="color: #000066; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				<span style="color: #009900; font-style: italic;">// building 10 kinematic spheres</span>
				<span style="color: #009900; font-style: italic;">// five on the left side of the stage moving right</span>
				<span style="color: #009900; font-style: italic;">// five on the right side of the stage moving left</span>
				kinematicSphere<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">640</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000;">&#40;</span>i<span style="color: #000066; font-weight: bold;">%</span>2<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">50</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">40</span><span style="color: #000066; font-weight: bold;">*</span>i<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000;">&#40;</span>i<span style="color: #000066; font-weight: bold;">%</span>2<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">random</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">+</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span>updateWorld<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #009900; font-style: italic;">// I will make a dynamic sphere fall from the top of the stage</span>
			<span style="color: #009900; font-style: italic;">// at every second</span>
			<span style="color: #004993;">timer</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">start</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">timer</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">TimerEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">TIMER</span><span style="color: #000066; font-weight: bold;">,</span>addSphere<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> addSphere<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">TimerEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			dynamicSphere<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">,-</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> dynamicSphere<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span><span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span><span style="color: #000066; font-weight: bold;">,</span>r<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef=<span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">type</span>=b2Body<span style="color: #000066; font-weight: bold;">.</span>b2_dynamicBody<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> circleShape<span style="color: #000066; font-weight: bold;">:</span>b2CircleShape=<span style="color: #0033ff; font-weight: bold;">new</span> b2CircleShape<span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef=<span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=circleShape<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> theDynamic<span style="color: #000066; font-weight: bold;">:</span>b2Body=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			theDynamic<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> kinematicSphere<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span><span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">int</span><span style="color: #000066; font-weight: bold;">,</span>r<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000066; font-weight: bold;">,</span>hV<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef=<span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span>pX<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span>pY<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #009900; font-style: italic;">// ************************** HERE IS THE MAGIC LINE ************************** \\</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">type</span>=b2Body<span style="color: #000066; font-weight: bold;">.</span>b2_kinematicBody<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> circleShape<span style="color: #000066; font-weight: bold;">:</span>b2CircleShape=<span style="color: #0033ff; font-weight: bold;">new</span> b2CircleShape<span style="color: #000000;">&#40;</span>r<span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef=<span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=circleShape<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> theKinematic<span style="color: #000066; font-weight: bold;">:</span>b2Body=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			theKinematic<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #009900; font-style: italic;">// look, I can set a linear velocity</span>
			theKinematic<span style="color: #000066; font-weight: bold;">.</span>SetLinearVelocity<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span>hV<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugDraw<span style="color: #000066; font-weight: bold;">:</span>b2DebugDraw=<span style="color: #0033ff; font-weight: bold;">new</span> b2DebugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugSprite<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Sprite</span>=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetSprite<span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetDrawScale<span style="color: #000000;">&#40;</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFlags<span style="color: #000000;">&#40;</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_shapeBit<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFillAlpha<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0.5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>SetDebugDraw<span style="color: #000000;">&#40;</span>debugDraw<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> updateWorld<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>Step<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>ClearForces<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">:</span>b2Body = world<span style="color: #000066; font-weight: bold;">.</span>GetBodyList<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span> = <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetNext<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				<span style="color: #009900; font-style: italic;">// changing kinematic sphere linear velocity if it touches stage edges</span>
				<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetType<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>==b2Body<span style="color: #000066; font-weight: bold;">.</span>b2_kinematicBody<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
					<span style="color: #6699cc; font-weight: bold;">var</span> xSpeed<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetLinearVelocity<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #6699cc; font-weight: bold;">var</span> xPos<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetWorldCenter<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>xPos<span style="color: #000066; font-weight: bold;">&lt;</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">&amp;&amp;</span>xSpeed<span style="color: #000066; font-weight: bold;">&lt;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000066; font-weight: bold;">||</span> <span style="color: #000000;">&#40;</span>xPos<span style="color: #000066; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight:bold;">630</span><span style="color: #000066; font-weight: bold;">&amp;&amp;</span>xSpeed<span style="color: #000066; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
						xSpeed<span style="color: #000066; font-weight: bold;">*</span>=<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>
						<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>SetLinearVelocity<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span>xSpeed<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #000000;">&#125;</span>
				<span style="color: #000000;">&#125;</span>
				<span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #000000;">&#123;</span>
					<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetWorldCenter<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight:bold;">480</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
						world<span style="color: #000066; font-weight: bold;">.</span>DestroyBody<span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #000000;">&#125;</span>
				<span style="color: #000000;">&#125;</span>
			<span style="color: #000000;">&#125;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>DrawDebugData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>This is the result:</p>
<p><embed src="/wp-content/uploads/2012/05/kinematic.swf" menu="false" quality="high" width="640" height="480" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></p>
<p>Also look how debug draw shows kinematic bodies.</p>
<p><a href="/wp-content/uploads/2012/05/kinematic.zip">Download the source code</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2012/05/11/understanding-box2d-kinematic-bodies/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Box2d Flash advergame for Malibu Rum</title>
		<link>http://www.emanueleferonato.com/2012/05/09/box2d-flash-advergame-for-malibu-rum/</link>
		<comments>http://www.emanueleferonato.com/2012/05/09/box2d-flash-advergame-for-malibu-rum/#comments</comments>
		<pubDate>Wed, 09 May 2012 21:52:12 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Box2D]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game design]]></category>
		<category><![CDATA[Monetize]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=5443</guid>
		<description><![CDATA[Case history: from an Angry Birds tutorial to an advergame for Malibu Rum company]]></description>
			<content:encoded><![CDATA[<p>Developing Flash games does not mean just creating a game and trying to get it sponsored. If you are a good developer, sometimes you can be hired to create an advergame, a video game used to advertise a product.</p>
<p>That&#8217;s what happened to me a couple of weeks ago, when the guys at <strong><a href="http://mutado.com/" target="_blank">Mutado</a></strong>, one of the biggest creative studios in Italy, asked me to develop the Box2D engine for their <a href="http://www.malibu-rum.com/" target="_blank">Malibu Rum</a> advergame.</p>
<p>The game is really easy, you just have to throw a coconut with a sling and make Malibu bottles fall down to be eligible to win some prizes, if you buy a bottle of Malibu.</p>
<p>You can play it at <a href="http://origin.demo.eyeblaster.com/Italy/TEST_AREA/GAME_EXPANDING/" target="_blank">this link</a> clicking on the 300&#215;200 banner.</p>
<p><a href="http://origin.demo.eyeblaster.com/Italy/TEST_AREA/GAME_EXPANDING/" target="_blank"><img src="/wp-content/uploads/2012/05/malibu_pic.jpg" alt="" title="malibu_pic" width="640" height="360" class="alignnone size-full wp-image-5444" /></a></p>
<p>The engine of the game is a modification of the concept seen on <a href="http://www.emanueleferonato.com/2011/10/10/develop-a-flash-game-like-angry-birds-using-box2d/">Develop a Flash game like Angry Birds using Box2D</a>, they saw the demo and they liked it. That&#8217;s why you should always, ALWAYS have at least one page around the web with your works.</p>
<p>The creation of an advergame has a monetization process which is similar to an exclusive sponsorship with no third-party ads: basically you get the money for the game and there isn&#8217;t any revenue share. Moreover, obviously no links or credits are allowed.</p>
<p>But hey, it&#8217;s a game, and making games is fun, and I want you to know that opportunities in game development come from different sides, that&#8217;s why you should always be up-to-date&#8230; anyway, if you are a regular reader, you already know it.</p>
<p>And if you like the look and feel of the game, the artist is <strong>Luca Cavalleri</strong> from <a href="http://mutado.com/" target="_blank">Mutado</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2012/05/09/box2d-flash-advergame-for-malibu-rum/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Creation of a Concentration game in 22 minutes using Stencyl</title>
		<link>http://www.emanueleferonato.com/2012/05/08/creation-of-a-concentration-game-in-22-minutes-using-stencyl/</link>
		<comments>http://www.emanueleferonato.com/2012/05/08/creation-of-a-concentration-game-in-22-minutes-using-stencyl/#comments</comments>
		<pubDate>Tue, 08 May 2012 07:49:00 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[StencylWorks]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=5435</guid>
		<description><![CDATA[Watch a video showing you how I created a Concentration game from scratch with Stencyl in 22 minutes]]></description>
			<content:encoded><![CDATA[<p>I always say you can make game in a matter of minutes if you are using the right tools like Stencyl.</p>
<p>Today I decided to prove it so I made a Concentration game from scratch, recording the screen during the entire process (graphic creation excluded).</p>
<p>What I got is a 22 minutes video which demonstrates how easy was to create the game. You can also see I wasted some minutes dealing with a couple of mistakes I made with windows and behaviors&#8230; that was because I really made it from scratch.</p>
<p>Looking at the video, you can also learn how to make the game, and you will see how easy is to make games with Stencyl. All in all, it was harder to manage Camtasia to export it in the right format.</p>
<p><iframe width="640" height="360" src="http://www.youtube.com/embed/h0IFHpSUGS8" frameborder="0" allowfullscreen></iframe></p>
<p>I suggest you to watch this video in <strong>720p full screen</strong>, I tried to do my best to preserve a good quality.</p>
<p>Also tell me what do you think about screencasts like this one, could it be a good way to learn visual tools like Stencyl?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2012/05/08/creation-of-a-concentration-game-in-22-minutes-using-stencyl/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Create a Flash game like Talesworth Adventure using Stencyl</title>
		<link>http://www.emanueleferonato.com/2012/05/04/create-a-flash-game-like-talesworth-adventure-using-stencyl/</link>
		<comments>http://www.emanueleferonato.com/2012/05/04/create-a-flash-game-like-talesworth-adventure-using-stencyl/#comments</comments>
		<pubDate>Fri, 04 May 2012 15:53:07 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game design]]></category>
		<category><![CDATA[StencylWorks]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=5424</guid>
		<description><![CDATA[Prototype of Talesworth Adventure made with Stencyl using custom blocks and the Tile API]]></description>
			<content:encoded><![CDATA[<p>In these days millions of people are playing <strong><a href="http://www.kongregate.com/games/MrJinx/talesworth-adventure-the-lost-artifacts?src=ref-x-dev-site-x-efblog" target = "_blank">Talesworth Adventure: The Lost Artifacts</a></strong>, the sequel of <a href="http://www.kongregate.com/games/MrJinx/talesworth-adventure-ep-1" target="_blank">Talesworth Adventure</a>, a great game I dissected in <a href="http://www.emanueleferonato.com/2010/05/27/create-a-flash-game-like-talesworth-adventure/">Create a Flash game like Talesworth Adventure step 1</a>, <a href="http://www.emanueleferonato.com/2010/05/31/create-a-flash-game-like-talesworth-step-2-line-of-sight/">2</a>, <a href="http://www.emanueleferonato.com/2010/06/05/create-a-flash-game-like-talesworth-step-3-the-loot/">3</a> and <a href="http://www.emanueleferonato.com/2010/06/10/create-a-flash-game-like-talesworth-step-4-one-way-doors/">4</a>.</p>
<p><a href="http://www.kongregate.com/games/MrJinx/talesworth-adventure-the-lost-artifacts?src=ref-x-dev-site-x-efblog" target = "_blank"><img src="/wp-content/uploads/2012/05/tales.jpg" alt="" title="tales" width="640" height="417" class="alignnone size-full wp-image-5430" /></a></p>
<p>So I thought it would be nice to publish the Stencyl version of the prototype, which uses some advanced features like custom blocks and the <a href="http://www.stencyl.com/help/viewArticle/47" target="_blank">Tile API</a> with some code directly written into proper blocks.</p>
<p>It&#8217;s very interesting as you can design levels directly into the scene editor, making level design easy and fun. Also, you can see how Stencyl can be used to make any kind of game regardless its nature of Flixel/Box2D engine.</p>
<p>This is what you&#8217;ll get:</p>
<p><embed src="/wp-content/uploads/2012/05/talesworth.swf" menu="false" quality="high" width="640" height="480" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></p>
<p>Place the loot on the path where the hero can see it to make it change his way.</p>
<p>Since it&#8217;s quite a complex prototype, due to the custom blocks and the Tile API, I&#8217;ll publish a detailed tutorial later, when I&#8217;ll add some more feature, meanwhile I shared it on StencylForge, look for Talesworth prototype.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2012/05/04/create-a-flash-game-like-talesworth-adventure-using-stencyl/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>An one-button way to control the player coming from the past &#8211; Box2D version (introducing friction joints)</title>
		<link>http://www.emanueleferonato.com/2012/05/01/an-one-button-way-to-control-the-player-coming-from-the-past-box2d-version-introducing-friction-joints/</link>
		<comments>http://www.emanueleferonato.com/2012/05/01/an-one-button-way-to-control-the-player-coming-from-the-past-box2d-version-introducing-friction-joints/#comments</comments>
		<pubDate>Tue, 01 May 2012 20:28:01 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Box2D]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game design]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=5412</guid>
		<description><![CDATA[ one-button game prototype previously done with AS3, now using Box2D and revolute joints]]></description>
			<content:encoded><![CDATA[<p>This is a quick attempt to port the engine of the <a href="http://www.emanueleferonato.com/2012/04/26/an-one-button-way-to-control-the-player-coming-from-the-past/">one-button way to control the player coming from the past</a> using Box2D, introducing for the first time the friction joint, a type of joint which is poorly explained in the tutorial you can see around the web, and it&#8217;s a pity because it&#8217;s very useful when you have to handle with top down simulations.</p>
<p>Basically I created a world with no gravity, then I created a friction joint between the ball controlled by the player and the &#8220;ground&#8221;, in this case the world body.</p>
<p>The final result is a lot more realistic than any other result you can achieve using linear damping or other tricks.</p>
<p>This is the source code:</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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Sprite</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.text</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">TextField</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Dynamics<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Collision<span style="color: #000066; font-weight: bold;">.</span>Shapes<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Common<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> Box2D<span style="color: #000066; font-weight: bold;">.</span>Dynamics<span style="color: #000066; font-weight: bold;">.</span>Joints<span style="color: #000066; font-weight: bold;">.*;</span>
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Main <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> world<span style="color: #000066; font-weight: bold;">:</span>b2World=<span style="color: #0033ff; font-weight: bold;">new</span> b2World<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> worldScale<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> theBall<span style="color: #000066; font-weight: bold;">:</span>b2Body<span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> ball<span style="color: #000066; font-weight: bold;">:</span>Ball=<span style="color: #0033ff; font-weight: bold;">new</span> Ball<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> directionArrow<span style="color: #000066; font-weight: bold;">:</span>DirectionArrow=<span style="color: #0033ff; font-weight: bold;">new</span> DirectionArrow<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> powerText<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">TextField</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">TextField</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">rotate</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Boolean</span>=<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> power<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> rotationSpeed<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">5</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			createBall<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>ball<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			ball<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span>=<span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">;</span>
			ball<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=<span style="color: #000000; font-weight:bold;">240</span><span style="color: #000066; font-weight: bold;">;</span>
			ball<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>directionArrow<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">textColor</span>=0xffffff<span style="color: #000066; font-weight: bold;">;</span>
			powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">;</span>
			powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span>=<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000066; font-weight: bold;">;</span>
			powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">visible</span>=<span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">;</span>
			ball<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>powerText<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span>update<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MOUSE_DOWN</span><span style="color: #000066; font-weight: bold;">,</span>prepareLaunch<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MOUSE_UP</span><span style="color: #000066; font-weight: bold;">,</span>launch<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> createBall<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> fixtureDef<span style="color: #000066; font-weight: bold;">:</span>b2FixtureDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FixtureDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>restitution=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>density=<span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> circleShape<span style="color: #000066; font-weight: bold;">:</span>b2CircleShape=<span style="color: #0033ff; font-weight: bold;">new</span> b2CircleShape<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			fixtureDef<span style="color: #000066; font-weight: bold;">.</span>shape=circleShape<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> bodyDef<span style="color: #000066; font-weight: bold;">:</span>b2BodyDef=<span style="color: #0033ff; font-weight: bold;">new</span> b2BodyDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span>userData=<span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">position</span><span style="color: #000066; font-weight: bold;">.</span>Set<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">240</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">type</span>=b2Body<span style="color: #000066; font-weight: bold;">.</span>b2_dynamicBody<span style="color: #000066; font-weight: bold;">;</span>
			bodyDef<span style="color: #000066; font-weight: bold;">.</span>userData=ball<span style="color: #000066; font-weight: bold;">;</span>
			theBall=world<span style="color: #000066; font-weight: bold;">.</span>CreateBody<span style="color: #000000;">&#40;</span>bodyDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			theBall<span style="color: #000066; font-weight: bold;">.</span>CreateFixture<span style="color: #000000;">&#40;</span>fixtureDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> frictionJointDef<span style="color: #000066; font-weight: bold;">:</span>b2FrictionJointDef = <span style="color: #0033ff; font-weight: bold;">new</span> b2FrictionJointDef<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> anchorA<span style="color: #000066; font-weight: bold;">:</span>b2Vec2=<span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> anchorB<span style="color: #000066; font-weight: bold;">:</span>b2Vec2=<span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">240</span><span style="color: #000066; font-weight: bold;">/</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			frictionJointDef<span style="color: #000066; font-weight: bold;">.</span>localAnchorA=anchorA<span style="color: #000066; font-weight: bold;">;</span>
			frictionJointDef<span style="color: #000066; font-weight: bold;">.</span>localAnchorB=anchorB<span style="color: #000066; font-weight: bold;">;</span>
			frictionJointDef<span style="color: #000066; font-weight: bold;">.</span>bodyA=theBall<span style="color: #000066; font-weight: bold;">;</span>
			frictionJointDef<span style="color: #000066; font-weight: bold;">.</span>bodyB=world<span style="color: #000066; font-weight: bold;">.</span>GetGroundBody<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			frictionJointDef<span style="color: #000066; font-weight: bold;">.</span>maxForce=<span style="color: #000000; font-weight:bold;">0.5</span><span style="color: #000066; font-weight: bold;">;</span>
			frictionJointDef<span style="color: #000066; font-weight: bold;">.</span>maxTorque=<span style="color: #000000; font-weight:bold;">5</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>CreateJoint<span style="color: #000000;">&#40;</span>frictionJointDef <span style="color: #0033ff; font-weight: bold;">as</span> b2JointDef<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> debugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugDraw<span style="color: #000066; font-weight: bold;">:</span>b2DebugDraw = <span style="color: #0033ff; font-weight: bold;">new</span> b2DebugDraw<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> debugSprite<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Sprite</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetSprite<span style="color: #000000;">&#40;</span>debugSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetDrawScale<span style="color: #000000;">&#40;</span>worldScale<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFlags<span style="color: #000000;">&#40;</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_shapeBit<span style="color: #000066; font-weight: bold;">|</span>b2DebugDraw<span style="color: #000066; font-weight: bold;">.</span>e_jointBit<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			debugDraw<span style="color: #000066; font-weight: bold;">.</span>SetFillAlpha<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">0.5</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>SetDebugDraw<span style="color: #000000;">&#40;</span>debugDraw<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> prepareLaunch<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">visible</span>=<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">rotate</span>=<span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> launch<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">!</span> <span style="color: #004993;">rotate</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">visible</span>=<span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">;</span>
				<span style="color: #004993;">rotate</span>=<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
				theBall<span style="color: #000066; font-weight: bold;">.</span>ApplyImpulse<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> b2Vec2<span style="color: #000000;">&#40;</span>power<span style="color: #000066; font-weight: bold;">*</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">cos</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>directionArrow<span style="color: #000066; font-weight: bold;">.</span>rotation<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">90</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">0.0174532925</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">,</span>power<span style="color: #000066; font-weight: bold;">*</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">sin</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>directionArrow<span style="color: #000066; font-weight: bold;">.</span>rotation<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">90</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">0.0174532925</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">,</span>theBall<span style="color: #000066; font-weight: bold;">.</span>GetWorldCenter<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
				power=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
				rotationSpeed<span style="color: #000066; font-weight: bold;">*</span>=<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> update<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>Step<span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">10</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">rotate</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				directionArrow<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rotation</span><span style="color: #000066; font-weight: bold;">+</span>=rotationSpeed<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
			<span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #000000;">&#123;</span>
				power<span style="color: #000066; font-weight: bold;">++;</span>
				power=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">min</span><span style="color: #000000;">&#40;</span>power<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">50</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
				powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span>=power<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">toString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
			<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">:</span>b2Body = world<span style="color: #000066; font-weight: bold;">.</span>GetBodyList<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">;</span> <span style="color: #004993;">b</span> = <span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetNext<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetUserData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">!</span>=<span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
					<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetUserData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span>=<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">;</span>
					<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetUserData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=<span style="color: #004993;">b</span><span style="color: #000066; font-weight: bold;">.</span>GetPosition<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">*</span>worldScale<span style="color: #000066; font-weight: bold;">;</span>
				<span style="color: #000000;">&#125;</span>
			<span style="color: #000000;">&#125;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>ClearForces<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			world<span style="color: #000066; font-weight: bold;">.</span>DrawDebugData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>and this is the result:</p>
<p><embed src="/wp-content/uploads/2012/05/pacco.swf" menu="false" quality="high" width="640" height="480" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></p>
<p>You know how to &#8220;play&#8221;: press and keep the mouse pressed to move the ball with a given direction and speed. Also look at the friction joint in the debug draw.</p>
<p><a href="/wp-content/uploads/2012/05/pacco.zip">Download the source code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2012/05/01/an-one-button-way-to-control-the-player-coming-from-the-past-box2d-version-introducing-friction-joints/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>An one-button way to control the player coming from the past</title>
		<link>http://www.emanueleferonato.com/2012/04/26/an-one-button-way-to-control-the-player-coming-from-the-past/</link>
		<comments>http://www.emanueleferonato.com/2012/04/26/an-one-button-way-to-control-the-player-coming-from-the-past/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 15:31:26 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game design]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=5404</guid>
		<description><![CDATA[Five years ago I saw an interesting one-button game which would be fine if someone ported it to mobile... so I am publishing the AS3 prototype]]></description>
			<content:encoded><![CDATA[<p>I always loved one-button games. First, they can be played with just one button. Second, in the mobile game era, it&#8217;s easy to port an on-button concept to an one-tap concept.</p>
<p>Almost <strong>five years</strong> ago (ages!!) I showed <a href="http://www.emanueleferonato.com/2007/05/30/a-strange-way-to-move-the-player-with-flash/">a strange way to move the player with Flash</a> made with AS2, and I find it interesting to port it to AS3, to be ported again in other languages.</p>
<p>Since you can find <a href="http://www.emanueleferonato.com/2007/05/30/a-strange-way-to-move-the-player-with-flash/">the complete theory</a> in the original post, I will just post the AS3 source code:</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
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Sprite</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.text</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">TextField</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Main <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> ball<span style="color: #000066; font-weight: bold;">:</span>Ball=<span style="color: #0033ff; font-weight: bold;">new</span> Ball<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> directionArrow<span style="color: #000066; font-weight: bold;">:</span>DirectionArrow=<span style="color: #0033ff; font-weight: bold;">new</span> DirectionArrow<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> powerText<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">TextField</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">TextField</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">rotate</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Boolean</span>=<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> power<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> xSpeed<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> ySpeed<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> friction<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">0.975</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> rotationSpeed<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span>=<span style="color: #000000; font-weight:bold;">5</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>ball<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			ball<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span>=<span style="color: #000000; font-weight:bold;">320</span><span style="color: #000066; font-weight: bold;">;</span>
			ball<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=<span style="color: #000000; font-weight:bold;">240</span><span style="color: #000066; font-weight: bold;">;</span>
			ball<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>directionArrow<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">textColor</span> = 0xffffff<span style="color: #000066; font-weight: bold;">;</span>
			powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span>=<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">;</span>
			powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span>=<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">5</span><span style="color: #000066; font-weight: bold;">;</span>
			powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">visible</span>=<span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">;</span>
			ball<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>powerText<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ENTER_FRAME</span><span style="color: #000066; font-weight: bold;">,</span>update<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MOUSE_DOWN</span><span style="color: #000066; font-weight: bold;">,</span>prepareLaunch<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MOUSE_UP</span><span style="color: #000066; font-weight: bold;">,</span>launch<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> prepareLaunch<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">visible</span>=<span style="color: #0033ff; font-weight: bold;">true</span>
			<span style="color: #004993;">rotate</span>=<span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> launch<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000066; font-weight: bold;">!</span> <span style="color: #004993;">rotate</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">visible</span>=<span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">;</span>
				<span style="color: #004993;">rotate</span>=<span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
				xSpeed<span style="color: #000066; font-weight: bold;">+</span>=power<span style="color: #000066; font-weight: bold;">*</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">cos</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>directionArrow<span style="color: #000066; font-weight: bold;">.</span>rotation<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">90</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">0.0174532925</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">;</span>
				ySpeed<span style="color: #000066; font-weight: bold;">+</span>=power<span style="color: #000066; font-weight: bold;">*</span><span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">sin</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>directionArrow<span style="color: #000066; font-weight: bold;">.</span>rotation<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">90</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">*</span><span style="color: #000000; font-weight:bold;">0.0174532925</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">/</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">;</span>
				power=<span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span>
				rotationSpeed<span style="color: #000066; font-weight: bold;">*</span>=<span style="color: #000066; font-weight: bold;">-</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
		<span style="color: #000000;">&#125;</span>
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> update<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">rotate</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				directionArrow<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rotation</span><span style="color: #000066; font-weight: bold;">+</span>=rotationSpeed<span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
			<span style="color: #0033ff; font-weight: bold;">else</span> <span style="color: #000000;">&#123;</span>
				power<span style="color: #000066; font-weight: bold;">++;</span>
				power=<span style="color: #004993;">Math</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">min</span><span style="color: #000000;">&#40;</span>power<span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">50</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
				powerText<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span>=power<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">toString</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
			ball<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">+</span>=xSpeed<span style="color: #000066; font-weight: bold;">;</span>
			ball<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">+</span>=ySpeed<span style="color: #000066; font-weight: bold;">;</span>
			xSpeed<span style="color: #000066; font-weight: bold;">*</span>=friction<span style="color: #000066; font-weight: bold;">;</span>
			ySpeed<span style="color: #000066; font-weight: bold;">*</span>=friction<span style="color: #000066; font-weight: bold;">;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>and this is the result:</p>
<p><embed src="/wp-content/uploads/2012/04/pacco.swf" menu="false" quality="high" width="640" height="480" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></p>
<p>Press and keep the mouse pressed to move the ball with a given direction and speed</p>
<p>During next days I&#8217;ll port this prototype into the most famous formats.</p>
<p><a href="/wp-content/uploads/2012/04/pacco.zip">Download the source code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2012/04/26/an-one-button-way-to-control-the-player-coming-from-the-past/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flash Toony prototype ported to Haxe</title>
		<link>http://www.emanueleferonato.com/2012/04/23/flash-toony-prototype-ported-to-haxe/</link>
		<comments>http://www.emanueleferonato.com/2012/04/23/flash-toony-prototype-ported-to-haxe/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 15:09:05 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[Users contributions]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=5392</guid>
		<description><![CDATA[Julian Liebl show us how to port Flash Toony prototype with Haxe, ready to be compiled for any platform]]></description>
			<content:encoded><![CDATA[<p>It seems <a href="http://www.emanueleferonato.com/2012/04/16/toony-flash-game-prototype/">Flash Toony prototype</a> is getting quite an interest because some days after the <a href="http://www.emanueleferonato.com/2012/04/17/toony-flash-game-prototype-ported-to-iphone-using-corona-sdk/">iPhone port</a> made with Corona SDK, it&#8217;s the time for <strong>Julian Liebl</strong> from <a href="http://northlight-games.com/" target="_blank">Nortlight Games</a> to show us the Haxe port of the prototype.</p>
<p><a href="http://haxe.org/" target="_blank">Haxe</a> can be compiled to all popular programming platforms with its fast compiler – JavaScript, Flash, NekoVM, PHP, C++, C# and Java (soon) – which means your apps will support all popular mobile devices, such as iOS, Android, Windows Mobile, webOS and more.</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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
</pre></td><td class="code"><pre class="haxe" style="font-family:monospace;">package;
&nbsp;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.Event;
import haxe.Timer;
import flash.Lib;
import flash.Vector;
import flash.geom.Point;
&nbsp;
/**
 * @author Emanuele Feronato ported by Julian Liebl from Flash to Haxe
 */
&nbsp;
class Toony extends Sprite {
&nbsp;
	var timer:Timer;
	var returnPoint:Point;
	var movingToony:Sprite;
	var draggableToonies:Array&lt;Sprite&gt;;
	var fallingToonies:Vector&lt;Sprite&gt;;
&nbsp;
	public function new() {
		super();
		init();
		construct();
		create();
	}
&nbsp;
	public function init(){
		movingToony = null;
		draggableToonies = new Array();
		fallingToonies = new Vector();
&nbsp;
		//init Timer
		timer = new Timer(2000);
		timer.run = newToony;
	}
&nbsp;
	public function construct(){
		//lets create a toony with the shape of a circle
		var circle:Sprite = constructShape(0);
&nbsp;
		//lets create a toony with the shape of a rectangle
		var rectangle:Sprite = constructShape(1);
&nbsp;
		//lets create a toony with the shape of a round rectangle
		var roundRectangle:Sprite = constructShape(2);
&nbsp;
		draggableToonies.push(circle);
		draggableToonies.push(rectangle);
		draggableToonies.push(roundRectangle);
	}
&nbsp;
	//let's code the shapes ourself. That's badass ;)
	public function constructShape(index:Int):Sprite{
		var returnSprite:Sprite = new Sprite();
		switch(index){
		    case 0:
		    	returnSprite.name = &quot;circle&quot;;
				returnSprite.graphics.beginFill(0x0621a9);
				returnSprite.graphics.drawCircle(40, 40, 40);
				returnSprite.graphics.endFill();
			case 1:
				returnSprite.name = &quot;rectangle&quot;;
				returnSprite.graphics.beginFill(0xff0000);
				returnSprite.graphics.drawRect(0 , 0, 80, 80);
				returnSprite.graphics.endFill();
			case 2:
				returnSprite.name = &quot;round rectangle&quot;;
				returnSprite.graphics.beginFill(0xFFCC00);
				returnSprite.graphics.drawRoundRect(0 , 0, 80, 80,40,40);
				returnSprite.graphics.endFill();
		    default:
		        trace(&quot;Not known index. Returing empty Sprite.&quot;);
		}
		return returnSprite;
	}
&nbsp;
	public function create(){
		// creation of the four draggable toonies
		var loops:Int = 0;
&nbsp;
		for (toony in draggableToonies) {
			toony.x=loops*100+80;
			toony.y=370;
			toony.buttonMode=true;
&nbsp;
			addChild(toony);
			toony.addEventListener(MouseEvent.MOUSE_DOWN,toonyClicked);
&nbsp;
			loops++;
		}
		// main game loop
		addEventListener(Event.ENTER_FRAME,update);
&nbsp;
		// event to be triggered when the player releases the mouse button
		Lib.current.addEventListener(MouseEvent.MOUSE_UP,toonyReleased);
	}
&nbsp;
	private function newToony():Void {
		// it's simple: I just create a new Toony instance and place it
		// randomly in the game field with a random frame shown
		var toony:Sprite = constructShape(Math.ceil(Math.random()*draggableToonies.length)-1);
		addChild(toony);
		toony.x=Math.random()*580;
		toony.y=-32;
&nbsp;
		toony.alpha=0.5;
		// pushing the newly created toony into toonies vector
		fallingToonies.push(toony);
	}
&nbsp;
	private function toonyClicked(e:MouseEvent):Void {
		returnPoint = new Point(e.target.x, e.target.y);
		// if I am not moving any toony...
		if (movingToony==null) {
			// setting the toony I am about to move to the toony I just pressed the mouse on
			movingToony=e.target;
		}
	}
&nbsp;
	private function toonyReleased(e:MouseEvent):Void {
		// if I am moving a toony...
		if (movingToony!=null) {
			// looping through toonies vector
			for (toony in fallingToonies) {
				// if I am touching a falling toony with the same shape as the toony I am currently moving...
				// (that is: if both toonies are showing the same frame...)
				if (toony.hitTestPoint(mouseX,mouseY,true) &amp;&amp; movingToony.name==toony.name) {
					// the toonies match!! Highlighting the falling toony
					toony.alpha=1;
				}
			}
			// putting the moved toony back to its place
			movingToony.y=returnPoint.y;
			movingToony.x=returnPoint.x;
			// setting the variable which hold the moving toony to null
			// I am not moving any toony now
			movingToony=null;
		}
	}
&nbsp;
	private function update(e:Event):Void {
		// if I am moving a toony...
		if (movingToony!=null) {
			// updating toony position according to mouse position
			movingToony.x=mouseX-movingToony.width/2;
			movingToony.y=mouseY-movingToony.height/2;
		}
&nbsp;
		var loop:Int = 0;
&nbsp;
		for (toony in fallingToonies) {
			// moving toonies down
			toony.y++;
			// removing toonies from the stage if they are too close to the bottom of the stage
			if (toony.y&gt;280) {
				toony.parent.removeChild(toony);
				fallingToonies.splice(loop,1);
			}
			loop++;
		}
	}
&nbsp;
	public static function main () {
		Lib.current.addChild(new Toony ());
	}
}</pre></td></tr></table></div>

<p>and the result, compiled as SWF, is:</p>
<p><embed src="/wp-content/uploads/2012/04/Toony.swf" menu="false" quality="high" width="640" height="480" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></p>
<p>You should know how to play, drag and drop the shapes in the bottom row to match falling shapes.</p>
<p>In the <a href="/wp-content/uploads/2012/04/Toony.zip">zipped archive</a> Julian shares with us, you can find the complete source code as well as the Flash and Mac App builds.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2012/04/23/flash-toony-prototype-ported-to-haxe/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>InkTd Flash game source code released</title>
		<link>http://www.emanueleferonato.com/2012/04/19/inktd-flash-game-source-code-released/</link>
		<comments>http://www.emanueleferonato.com/2012/04/19/inktd-flash-game-source-code-released/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 16:01:16 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game design]]></category>
		<category><![CDATA[Users contributions]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=5383</guid>
		<description><![CDATA[<strong>Ben Lowry</strong> from <a href = "https://playtomic.com/" target = "_blank">Playtomic</a> shares with us the full source code of InkTd, a Flash tower defense game]]></description>
			<content:encoded><![CDATA[<p>Did you ever wonder how a complete tower defense source code looks like?</p>
<p>This is your lucky day.</p>
<p>A couple of years ago <strong><strong>Ben Lowry</strong></strong>, also known for being the founder of <a href="https://playtomic.com/" target="_blank">Playtomic</a>, made a tower defense game with two game modes: path mode, which is the mode we all are used to play (minions running along a defined path, and towers to be placed on defined spots) and maze mode, where you can place towers anywhere and minions dynamically adjust their paths to reach the base.</p>
<p>Both modes have up to 100 levels, and the name of the game is <strong><a href="http://www.newgrounds.com/portal/view/538095" target="_blank">InkTd</a></strong></p>
<p><a href="http://www.newgrounds.com/portal/view/538095" target="_blank"><img src="/wp-content/uploads/2012/04/inktd.jpg" /></a></p>
<p>One of the things I liked the most is the feature to upgrade the cannons with various colors, to match with enemy colors. It adds strategy since red enemies can be hit by red towers, green enemies by green towers, and so on.</p>
<p>But I talked about the source code, because Ben shares with us the full source code, more than 40 classes to be studied to make your own tower defense game.</p>
<p>It&#8217;s a source code of a great value and I can&#8217;t thank enough Ben for giving it for free.</p>
<p><a href="/wp-content/uploads/2012/04/INKTD.zip">Download the source code</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2012/04/19/inktd-flash-game-source-code-released/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Toony Flash game prototype ported to iPhone using Corona SDK</title>
		<link>http://www.emanueleferonato.com/2012/04/17/toony-flash-game-prototype-ported-to-iphone-using-corona-sdk/</link>
		<comments>http://www.emanueleferonato.com/2012/04/17/toony-flash-game-prototype-ported-to-iphone-using-corona-sdk/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 13:59:52 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Users contributions]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=5375</guid>
		<description><![CDATA[... and now Toony prototype has been ported to mobile with Corona SDK!!]]></description>
			<content:encoded><![CDATA[<p>Yesterday I blogged about <a href="http://www.emanueleferonato.com/2012/04/16/toony-flash-game-prototype/">Toony Flash game</a> and I said it would be interesting to port the game to mobile devices.</p>
<p>Some hours later, <strong>Jason Ian Green</strong> from <a href="http://www.podwork.com/" target="_blank">PodWork</a> sent me the Corona SDK version of the prototype I made with AS3.</p>
<p>This is what you&#8217;ll get:</p>
<p><iframe width="640" height="480" src="http://www.youtube.com/embed/f2U_B61KyGE" frameborder="0" allowfullscreen></iframe></p>
<p>and this is <code>main.lua</code> file, with the complete script:</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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
</pre></td><td class="code"><pre class="lua" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">-----------------------------------------------------------------------------------------</span>
<span style="color: #808080; font-style: italic;">--</span>
<span style="color: #808080; font-style: italic;">-- main.lua</span>
<span style="color: #808080; font-style: italic;">--</span>
<span style="color: #808080; font-style: italic;">-----------------------------------------------------------------------------------------</span>
&nbsp;
<span style="color: #b1b100;">local</span> toonyVector <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span>
<span style="color: #b1b100;">local</span> toRemove <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span>
<span style="color: #b1b100;">local</span> interface <span style="color: #66cc66;">=</span> display.newGroup<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">local</span> toonyTypes <span style="color: #66cc66;">=</span> <span style="color: #66cc66;">&#123;</span><span style="color: #ff0000;">&quot;square.png&quot;</span>, <span style="color: #ff0000;">&quot;circle.png&quot;</span>, <span style="color: #ff0000;">&quot;hexagon.png&quot;</span>, <span style="color: #ff0000;">&quot;flower.png&quot;</span><span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">local</span> currentObj
<span style="color: #b1b100;">local</span> originX
<span style="color: #b1b100;">local</span> originY
&nbsp;
<span style="color: #b1b100;">local</span> score <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span>
&nbsp;
<span style="color: #b1b100;">local</span> <span style="color: #b1b100;">function</span> onTouch<span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span> 
	<span style="color: #b1b100;">if</span> event.phase <span style="color: #66cc66;">==</span> <span style="color: #ff0000;">&quot;began&quot;</span> <span style="color: #b1b100;">then</span>
		<span style="color: #808080; font-style: italic;">--print(&quot;began&quot;)</span>
		currentObj <span style="color: #66cc66;">=</span> event.target
		originX <span style="color: #66cc66;">=</span> currentObj.x
		originY <span style="color: #66cc66;">=</span> currentObj.y
	<span style="color: #b1b100;">end</span>
	<span style="color: #b1b100;">if</span> event.phase <span style="color: #66cc66;">==</span> <span style="color: #ff0000;">&quot;moved&quot;</span> <span style="color: #b1b100;">then</span>
		<span style="color: #808080; font-style: italic;">--print(&quot;moved&quot;)</span>
		currentObj.x <span style="color: #66cc66;">=</span> event.x
		currentObj.y <span style="color: #66cc66;">=</span> event.y
	<span style="color: #b1b100;">end</span>
	<span style="color: #b1b100;">if</span> event.phase <span style="color: #66cc66;">==</span> <span style="color: #ff0000;">&quot;ended&quot;</span> <span style="color: #b1b100;">or</span> event.phase <span style="color: #66cc66;">==</span> <span style="color: #ff0000;">&quot;cancelled&quot;</span> <span style="color: #b1b100;">then</span>
		<span style="color: #808080; font-style: italic;">--print(&quot;ednded&quot;)</span>
		<span style="color: #b1b100;">for</span> n <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>, #toonyVector, <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">do</span>
			<span style="color: #b1b100;">local</span> diffx <span style="color: #66cc66;">=</span> currentObj.x - toonyVector<span style="color: #66cc66;">&#91;</span>n<span style="color: #66cc66;">&#93;</span>.x
			<span style="color: #b1b100;">local</span> diffy <span style="color: #66cc66;">=</span> currentObj.y - toonyVector<span style="color: #66cc66;">&#91;</span>n<span style="color: #66cc66;">&#93;</span>.y
			<span style="color: #b1b100;">if</span> currentObj.id <span style="color: #66cc66;">==</span> toonyVector<span style="color: #66cc66;">&#91;</span>n<span style="color: #66cc66;">&#93;</span>.id <span style="color: #b1b100;">then</span>
				<span style="color: #b1b100;">if</span> <span style="color: #b1b100;">math.abs</span><span style="color: #66cc66;">&#40;</span>diffx<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">20</span> <span style="color: #b1b100;">and</span> <span style="color: #b1b100;">math.abs</span><span style="color: #66cc66;">&#40;</span>diffy<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">20</span> <span style="color: #b1b100;">then</span>
					toonyVector<span style="color: #66cc66;">&#91;</span>n<span style="color: #66cc66;">&#93;</span>.alpha <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1.0</span>
				<span style="color: #b1b100;">end</span>
			<span style="color: #b1b100;">end</span>
		<span style="color: #b1b100;">end</span>
		currentObj.x <span style="color: #66cc66;">=</span> originX
		currentObj.y <span style="color: #66cc66;">=</span> originY
&nbsp;
	<span style="color: #b1b100;">end</span>
<span style="color: #b1b100;">end</span>
&nbsp;
<span style="color: #b1b100;">local</span> <span style="color: #b1b100;">function</span> go<span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span> 
	<span style="color: #b1b100;">for</span> i <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>, #toonyVector, <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">do</span>
		toonyVector<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.y <span style="color: #66cc66;">=</span> toonyVector<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.y + <span style="color: #cc66cc;">1</span>
		<span style="color: #b1b100;">if</span> toonyVector<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.y <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">260</span> <span style="color: #b1b100;">then</span>
			<span style="color: #b1b100;">if</span> toonyVector<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.alpha <span style="color: #66cc66;">==</span> <span style="color: #cc66cc;">1.0</span> <span style="color: #b1b100;">then</span>
				score <span style="color: #66cc66;">=</span> score + <span style="color: #cc66cc;">1</span>
				<span style="color: #b1b100;">print</span><span style="color: #66cc66;">&#40;</span>score<span style="color: #66cc66;">&#41;</span>
			<span style="color: #b1b100;">end</span>
			toonyVector<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>:removeSelf<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
			<span style="color: #b1b100;">table.insert</span><span style="color: #66cc66;">&#40;</span>toRemove,i<span style="color: #66cc66;">&#41;</span>
		<span style="color: #b1b100;">end</span>
	<span style="color: #b1b100;">end</span>
	<span style="color: #b1b100;">for</span> j <span style="color: #66cc66;">=</span> #toRemove, <span style="color: #cc66cc;">1</span>, -<span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">do</span>
		<span style="color: #b1b100;">table.remove</span><span style="color: #66cc66;">&#40;</span>toonyVector,j<span style="color: #66cc66;">&#41;</span>
	<span style="color: #b1b100;">end</span>
	toRemove<span style="color: #66cc66;">=</span><span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span>
<span style="color: #b1b100;">end</span>
&nbsp;
<span style="color: #b1b100;">local</span> <span style="color: #b1b100;">function</span> newToony<span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span> 
	<span style="color: #b1b100;">local</span> rand <span style="color: #66cc66;">=</span> <span style="color: #b1b100;">math.random</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #b1b100;">local</span> newToon <span style="color: #66cc66;">=</span> display.newImage<span style="color: #66cc66;">&#40;</span> toonyTypes<span style="color: #66cc66;">&#91;</span>rand<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span>
	newToon.x <span style="color: #66cc66;">=</span> <span style="color: #b1b100;">math.random</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">400</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #cc66cc;">25</span>
	newToon.y <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">25</span>
	newToon.id <span style="color: #66cc66;">=</span> rand
	newToon.alpha <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0.5</span>
	<span style="color: #b1b100;">table.insert</span><span style="color: #66cc66;">&#40;</span>toonyVector,newToon<span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">end</span>
&nbsp;
<span style="color: #b1b100;">local</span> <span style="color: #b1b100;">function</span> main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #b1b100;">local</span> tSquare <span style="color: #66cc66;">=</span> display.newImage<span style="color: #66cc66;">&#40;</span> toonyTypes<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span>
		tSquare.x<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">100</span>
		tSquare.y<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">295</span>
		tSquare.id <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span>
		tSquare:addEventListener<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;touch&quot;</span>, onTouch <span style="color: #66cc66;">&#41;</span>
		interface:insert<span style="color: #66cc66;">&#40;</span>tSquare<span style="color: #66cc66;">&#41;</span>
&nbsp;
		<span style="color: #b1b100;">local</span> tCircle <span style="color: #66cc66;">=</span> display.newImage<span style="color: #66cc66;">&#40;</span> toonyTypes<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span>
		tCircle.x<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">200</span><span style="color: #66cc66;">;</span>
		tCircle.y<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">295</span><span style="color: #66cc66;">;</span>
		tCircle.id <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">2</span>
		tCircle:addEventListener<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;touch&quot;</span>, onTouch <span style="color: #66cc66;">&#41;</span>
		interface:insert<span style="color: #66cc66;">&#40;</span>tCircle<span style="color: #66cc66;">&#41;</span>
&nbsp;
		<span style="color: #b1b100;">local</span> tHexagon <span style="color: #66cc66;">=</span> display.newImage<span style="color: #66cc66;">&#40;</span> toonyTypes<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span>
		tHexagon.x<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">300</span><span style="color: #66cc66;">;</span>
		tHexagon.y<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">295</span><span style="color: #66cc66;">;</span>
		tHexagon.id <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">3</span>
		tHexagon:addEventListener<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;touch&quot;</span>, onTouch <span style="color: #66cc66;">&#41;</span>
		interface:insert<span style="color: #66cc66;">&#40;</span>tHexagon<span style="color: #66cc66;">&#41;</span>
&nbsp;
		<span style="color: #b1b100;">local</span> tFlower <span style="color: #66cc66;">=</span> display.newImage<span style="color: #66cc66;">&#40;</span> toonyTypes<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#41;</span>
		tFlower.x<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">400</span><span style="color: #66cc66;">;</span>
		tFlower.y<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">295</span><span style="color: #66cc66;">;</span>
		tFlower.id <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">4</span>
		tFlower:addEventListener<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;touch&quot;</span>, onTouch <span style="color: #66cc66;">&#41;</span>
		interface:insert<span style="color: #66cc66;">&#40;</span>tFlower<span style="color: #66cc66;">&#41;</span>
&nbsp;
		Runtime:addEventListener<span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;enterFrame&quot;</span>, go <span style="color: #66cc66;">&#41;</span>
		timer.performWithDelay<span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">2000</span>, newToony, <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#41;</span>
<span style="color: #b1b100;">end</span>
&nbsp;
&nbsp;
&nbsp;
main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>You can also <a href="/wp-content/uploads/2012/04/build.zip" target="_blank">download the entire project</a> to compile it on your own on Corona SDK.</p>
<p>If anyone wants to continue with the porting, I will be happy to host it on the blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2012/04/17/toony-flash-game-prototype-ported-to-iphone-using-corona-sdk/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Database Caching 11/14 queries in 0.022 seconds using disk: basic

Served from: www.emanueleferonato.com @ 2012-05-17 04:37:13 -->
