STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
197015
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2143 · P4286

swfchan now supports swf files with LZMA compression.
Update: The Android App generator service (APK maker) has been fixed.

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/85413036?noj=FRM85413036-21DC" width="1" height="1"></div>

redballplatformer.swf

This is the info page for
Flash #207578

(Click the ID number above for more basic data on this flash file.)


Text
<p align="left"><font face="Kronika" size="16" color="#333333" letterSpacing="0.000000" kerning="1">Level 12: Sleep slope</font></p>

<p align="center"><font face="Kronika" size="14" color="#000000" letterSpacing="0.000000" kerning="1">If you want to play 5 more levels, please</font></p><p align="center"><font face="Kronika" size="14" color="#000000" letterSpacing="0.000000" kerning="1">go to King.com and you will start from level 13. </font></p>

<p align="left"><font face="Kronika" size="16" color="#333333" letterSpacing="0.000000" kerning="1">Level 8: Car</font></p>

Level 15: Shop burglary

<p align="left"><font face="Kronika" size="16" color="#333333" letterSpacing="0.000000" kerning="1">$</font></p>

<p align="left"><font face="Kronika" size="16" color="#333333" letterSpacing="0.000000" kerning="1">Level 4: Axes</font></p>

<p align="left"><font face="Kronika" size="14" color="#333333" letterSpacing="0.000000" kerning="1">?</font></p>

<p align="left"><font face="Kronika" size="12" color="#333333" letterSpacing="0.000000" kerning="1">Axes! =)</font></p>

Use Left/Right or A/D keys to move

Use Up or W keys to jump

This is the level goal

Level 1: Move and jump

Level 13: Pakman

<p align="left"><font face="Kronika" size="16" color="#333333" letterSpacing="0.000000" kerning="1">Level 11: Train</font></p>

<p align="left"><font face="Kronika" size="12" color="#333333" letterSpacing="0.000000" kerning="1">Get to the first cart!</font></p>

Level 17: The King

<p align="center"><font face="Kronika" size="14" color="#000000" letterSpacing="0.000000" kerning="1">Want to play more games?</font></p><p align="center"><font face="Kronika" size="14" color="#000000" letterSpacing="0.000000" kerning="1">Visit King.com!</font></p>

Use "R" to restart

Level 16: Short cut

Wrong way!

<p align="left"><font face="Kronika" size="16" color="#332513" letterSpacing="0.000000" kerning="1">Level 6: Springboards</font></p>

<p align="left"><font face="Kronika" size="14" color="#332513" letterSpacing="0.000000" kerning="1">??? =)</font></p>

<p align="left"><font face="Kronika" size="14" color="#333333" letterSpacing="0.000000" kerning="1">Level 3: Lifts and thorns</font></p>

<p align="left"><font face="Kronika" size="12" color="#333333" letterSpacing="0.000000" kerning="1">Danger!</font></p>

<p align="left"><font face="Kronika" size="16" color="#333333" letterSpacing="0.000000" kerning="1">Level 9: Ninja on the bridge</font></p>

Level 2: Funny ball

Wait for moving
platform

Use "R" to restart
Use "P" to pause
Use "Esc" to quit

Check point

<p align="left"><font face="Kronika" size="16" color="#333333" letterSpacing="0.000000" kerning="1">Level 10: Red ball on the ball</font></p>

Level 14: Catapult

1 ton

Use "R" to restart

<p align="left"><font face="Kronika" size="16" color="#333333" letterSpacing="0.000000" kerning="1">Level 7: Box bridge</font></p>

<p align="left"><font face="Kronika" size="16" color="#333333" letterSpacing="0.000000" kerning="1">Level 5: Jump!</font></p>

<p align="left"><font face="Kronika" size="12" color="#333333" letterSpacing="0.000000" kerning="1">Press button to destroy wall</font></p>

Use "R" to restart

This site does not support this game.
Please visit King.com to play.

<p align="left"><font face="Kronika" size="50" color="#ff0000" letterSpacing="0.000000" kerning="1">Red ball</font></p>

<p align="left"><font face="Kronika" size="30" color="#ffff00" letterSpacing="0.000000" kerning="1">Play</font></p>

<p align="left"><font face="Kronika" size="32" color="#ff9900" letterSpacing="0.000000" kerning="1">Play</font></p>

<p align="left"><font face="Kronika" size="30" color="#ff9900" letterSpacing="0.000000" kerning="1">Play</font></p>

<p align="left"><font face="Kronika" size="30" color="#00ff00" letterSpacing="0.000000" kerning="1">Play</font></p>

<p align="left"><font face="Kronika" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">More games</font></p>

<p align="left"><font face="Kronika" size="21" color="#ff9900" letterSpacing="0.000000" kerning="1">More games</font></p>

<p align="left"><font face="Kronika" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">More games</font></p>

<p align="left"><font face="Kronika" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">Credits</font></p>

<p align="left"><font face="Kronika" size="21" color="#ff9900" letterSpacing="0.000000" kerning="1">Credits</font></p>

<p align="left"><font face="Kronika" size="20" color="#ff9900" letterSpacing="0.000000" kerning="1">Credits</font></p>

<p align="left"><font face="Verdana" size="10" color="#000000" letterSpacing="0.000000" kerning="1">ver.1.6.23</font></p>

<p align="left"><font face="Kronika" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">Download</font></p>

<p align="left"><font face="Kronika" size="21" color="#ff9900" letterSpacing="0.000000" kerning="1">Download</font></p>

<p align="left"><font face="Kronika" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">Download</font></p>

<p align="left"><font face="Kronika" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">Download</font></p>

<p align="left"><font face="Kronika" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">Walkthrough </font></p>

<p align="left"><font face="Kronika" size="21" color="#ff9900" letterSpacing="0.000000" kerning="1">Walkthrough </font></p>

<p align="left"><font face="Kronika" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">Walkthrough </font></p>

<p align="left"><font face="Kronika" size="16" color="#ffff00" letterSpacing="0.000000" kerning="1">Walkthrough </font></p>

<p align="left"><font face="Kronika" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">Highscore</font></p>

<p align="left"><font face="Kronika" size="21" color="#ff9900" letterSpacing="0.000000" kerning="1">Highscore</font></p>

<p align="left"><font face="Kronika" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">Highscore</font></p>

<p align="left"><font face="Kronika" size="20" color="#ffff00" letterSpacing="0.000000" kerning="1">Download</font></p>

<p align="left"><font face="Kronika" size="24" color="#cc9933" letterSpacing="0.000000" kerning="1">Credits</font></p>

<p align="left"><font face="Kronika" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Developed by:</font></p>

<p align="left"><font face="Kronika" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Thanks to:</font></p>

<p align="left"><font face="Kronika" size="12" color="#000000" letterSpacing="0.000000" kerning="1"><a href="mailto:evgeniy_fedoseev@yahoo.com" target = "_blank">Evgeniy Fedoseev</a></font></p>

<p align="left"><font face="Kronika" size="12" color="#000000" letterSpacing="0.000000" kerning="1"><a href="http://www.flashgamelicense.com/" target = "_blank">FlashGameLicense.com</a></font></p>

<p align="left"><font face="Kronika" size="20" color="#0099ff" letterSpacing="0.000000" kerning="1">Back</font></p>

<p align="left"><font face="Kronika" size="21" color="#0099ff" letterSpacing="0.000000" kerning="1">Back</font></p>

<p align="left"><font face="Kronika" size="20" color="#0099ff" letterSpacing="0.000000" kerning="1">Back</font></p>

<p align="left"><font face="Kronika" size="12" color="#000000" letterSpacing="0.000000" kerning="1"><a href="http://www.box2d.org/" target = "_blank">Box2d.org</a></font></p>

<p align="left"><font face="Kronika" size="12" color="#000000" letterSpacing="0.000000" kerning="1"><a href="http://cross666.newgrounds.com/" target = "_blank">Music by Dj Harlock </a></font></p>

<p align="left"><font face="Kronika" size="16" color="#000000" letterSpacing="0.000000" kerning="1">Sponsored by:</font></p>

<p align="left"><font face="Kronika" size="24" color="#cc9933" letterSpacing="0.000000" kerning="1">Select level</font></p>

<p align="left"></p>

<p align="left"><font face="Kronika" size="12" color="#333333" letterSpacing="0.000000" kerning="1">Available on King.com only!</font></p>

<p align="left"><font face="Kronika" size="14" color="#ff0000" letterSpacing="0.000000" kerning="1">Highscore is available on King.com only!</font></p>

Are you want to quit?

("Y"-Yes/"N"-No)

<p align="left"><font face="Kronika" size="16" color="#000000" letterSpacing="0.000000" kerning="1">PAUSE</font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Return to the game</font></p>

<p align="left"><font face="Kronika" size="14" color="#000000" letterSpacing="0.000000" kerning="1">Return to the game</font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Return to the game</font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Return to the game</font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Back to Main menu</font></p>

<p align="left"><font face="Kronika" size="14" color="#000000" letterSpacing="0.000000" kerning="1">Back to Main menu</font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Back to Main menu</font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Back to Main menu</font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Walkthrough </font></p>

<p align="left"><font face="Kronika" size="14" color="#000000" letterSpacing="0.000000" kerning="1">Walkthrough </font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Walkthrough </font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Walkthrough </font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Play more games on King.com</font></p>

<p align="left"><font face="Kronika" size="14" color="#000000" letterSpacing="0.000000" kerning="1">Play more games on King.com</font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Play more games on King.com</font></p>

<p align="left"><font face="Kronika" size="14" color="#003366" letterSpacing="0.000000" kerning="1">Play more games on King.com</font></p>

<p align="left"><font face="Kronika" size="12" color="#000000" letterSpacing="0.000000" kerning="1">Death: </font></p>

<p align="left"><font face="Kronika" size="12" color="#333333" letterSpacing="0.000000" kerning="1">Menu</font></p>

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleShape extends b2Shape { public var m_localPosition:b2Vec2; public var m_radius:Number; public function b2CircleShape(_arg1:b2ShapeDef){ m_localPosition = new b2Vec2(); super(_arg1); var _local2:b2CircleDef = (_arg1 as b2CircleDef); m_type = e_circleShape; m_localPosition.SetV(_local2.localPosition); m_radius = _local2.radius; } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local10:Number; var _local6:b2Mat22 = _arg1.R; var _local7:Number = (_arg1.position.x + ((_local6.col1.x * m_localPosition.x) + (_local6.col2.x * m_localPosition.y))); var _local8:Number = (_arg1.position.y + ((_local6.col1.y * m_localPosition.x) + (_local6.col2.y * m_localPosition.y))); var _local9:Number = (_arg4.p1.x - _local7); _local10 = (_arg4.p1.y - _local8); var _local11:Number = (((_local9 * _local9) + (_local10 * _local10)) - (m_radius * m_radius)); if (_local11 < 0){ return (false); }; var _local12:Number = (_arg4.p2.x - _arg4.p1.x); var _local13:Number = (_arg4.p2.y - _arg4.p1.y); var _local14:Number = ((_local9 * _local12) + (_local10 * _local13)); var _local15:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local16:Number = ((_local14 * _local14) - (_local15 * _local11)); if ((((_local16 < 0)) || ((_local15 < Number.MIN_VALUE)))){ return (false); }; var _local17:Number = -((_local14 + Math.sqrt(_local16))); if ((((0 <= _local17)) && ((_local17 <= (_arg5 * _local15))))){ _local17 = (_local17 / _local15); _arg2[0] = _local17; _arg3.x = (_local9 + (_local17 * _local12)); _arg3.y = (_local10 + (_local17 * _local13)); _arg3.Normalize(); return (true); }; return (false); } public function GetLocalPosition():b2Vec2{ return (m_localPosition); } public function GetRadius():Number{ return (m_radius); } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2Mat22; _local4 = _arg2.R; var _local5:Number = (_arg2.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local6:Number = (_arg2.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _local4 = _arg3.R; var _local7:Number = (_arg3.position.x + ((_local4.col1.x * m_localPosition.x) + (_local4.col2.x * m_localPosition.y))); var _local8:Number = (_arg3.position.y + ((_local4.col1.y * m_localPosition.x) + (_local4.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((((_local5 < _local7)) ? _local5 : _local7 - m_radius), (((_local6 < _local8)) ? _local6 : _local8 - m_radius)); _arg1.upperBound.Set((((_local5 > _local7)) ? _local5 : _local7 + m_radius), (((_local6 > _local8)) ? _local6 : _local8 + m_radius)); } override public function ComputeMass(_arg1:b2MassData):void{ _arg1.mass = (((m_density * b2Settings.b2_pi) * m_radius) * m_radius); _arg1.center.SetV(m_localPosition); _arg1.I = (_arg1.mass * (((0.5 * m_radius) * m_radius) + ((m_localPosition.x * m_localPosition.x) + (m_localPosition.y * m_localPosition.y)))); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:Number = (m_localPosition.x - _arg1.x); var _local3:Number = (m_localPosition.y - _arg1.y); _local2 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); m_sweepRadius = ((_local2 + m_radius) - b2Settings.b2_toiSlop); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22 = _arg2.R; var _local4:Number = (_arg2.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg2.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _arg1.lowerBound.Set((_local4 - m_radius), (_local5 - m_radius)); _arg1.upperBound.Set((_local4 + m_radius), (_local5 + m_radius)); } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Mat22 = _arg1.R; var _local4:Number = (_arg1.position.x + ((_local3.col1.x * m_localPosition.x) + (_local3.col2.x * m_localPosition.y))); var _local5:Number = (_arg1.position.y + ((_local3.col1.y * m_localPosition.x) + (_local3.col2.y * m_localPosition.y))); _local4 = (_arg2.x - _local4); _local5 = (_arg2.y - _local5); return ((((_local4 * _local4) + (_local5 * _local5)) <= (m_radius * m_radius))); } } }//package Box2D.Collision.Shapes
Section 3
//b2FilterData (Box2D.Collision.Shapes.b2FilterData) package Box2D.Collision.Shapes { public class b2FilterData { public var maskBits:uint;// = 0xFFFF public var groupIndex:int;// = 0 public var categoryBits:uint;// = 1 public function Copy():b2FilterData{ var _local1:b2FilterData = new b2FilterData(); _local1.categoryBits = categoryBits; _local1.maskBits = maskBits; _local1.groupIndex = groupIndex; return (_local1); } } }//package Box2D.Collision.Shapes
Section 4
//b2MassData (Box2D.Collision.Shapes.b2MassData) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2MassData { public var mass:Number;// = 0 public var center:b2Vec2; public var I:Number;// = 0 public function b2MassData(){ center = new b2Vec2(0, 0); super(); } } }//package Box2D.Collision.Shapes
Section 5
//b2PolygonDef (Box2D.Collision.Shapes.b2PolygonDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PolygonDef extends b2ShapeDef { public var vertices:Array; public var vertexCount:int; private static var s_mat:b2Mat22 = new b2Mat22(); public function b2PolygonDef(){ vertices = new Array(b2Settings.b2_maxPolygonVertices); super(); type = b2Shape.e_polygonShape; vertexCount = 0; var _local1:int; while (_local1 < b2Settings.b2_maxPolygonVertices) { vertices[_local1] = new b2Vec2(); _local1++; }; } public function SetAsOrientedBox(_arg1:Number, _arg2:Number, _arg3:b2Vec2=null, _arg4:Number=0):void{ var _local5:b2Vec2; var _local6:b2Mat22; var _local7:int; vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); if (_arg3){ _local5 = _arg3; _local6 = s_mat; _local6.Set(_arg4); _local7 = 0; while (_local7 < vertexCount) { _arg3 = vertices[_local7]; _arg1 = (_local5.x + ((_local6.col1.x * _arg3.x) + (_local6.col2.x * _arg3.y))); _arg3.y = (_local5.y + ((_local6.col1.y * _arg3.x) + (_local6.col2.y * _arg3.y))); _arg3.x = _arg1; _local7++; }; }; } public function SetAsBox(_arg1:Number, _arg2:Number):void{ vertexCount = 4; vertices[0].Set(-(_arg1), -(_arg2)); vertices[1].Set(_arg1, -(_arg2)); vertices[2].Set(_arg1, _arg2); vertices[3].Set(-(_arg1), _arg2); } } }//package Box2D.Collision.Shapes
Section 6
//b2PolygonShape (Box2D.Collision.Shapes.b2PolygonShape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonShape extends b2Shape { public var m_coreVertices:Array; public var m_vertices:Array; private var s_supportVec:b2Vec2; public var m_centroid:b2Vec2; public var m_normals:Array; public var m_obb:b2OBB; public var m_vertexCount:int; private static var s_computeMat:b2Mat22 = new b2Mat22(); private static var s_sweptAABB1:b2AABB = new b2AABB(); private static var s_sweptAABB2:b2AABB = new b2AABB(); public function b2PolygonShape(_arg1:b2ShapeDef){ var _local3:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; s_supportVec = new b2Vec2(); m_obb = new b2OBB(); m_vertices = new Array(b2Settings.b2_maxPolygonVertices); m_normals = new Array(b2Settings.b2_maxPolygonVertices); m_coreVertices = new Array(b2Settings.b2_maxPolygonVertices); super(_arg1); m_type = e_polygonShape; var _local2:b2PolygonDef = (_arg1 as b2PolygonDef); m_vertexCount = _local2.vertexCount; var _local4:int = _local3; var _local5:int = _local3; _local3 = 0; while (_local3 < m_vertexCount) { m_vertices[_local3] = _local2.vertices[_local3].Copy(); _local3++; }; _local3 = 0; while (_local3 < m_vertexCount) { _local4 = _local3; _local5 = (((_local3 + 1) < m_vertexCount)) ? (_local3 + 1) : 0; _local6 = (m_vertices[_local5].x - m_vertices[_local4].x); _local7 = (m_vertices[_local5].y - m_vertices[_local4].y); _local8 = Math.sqrt(((_local6 * _local6) + (_local7 * _local7))); m_normals[_local3] = new b2Vec2((_local7 / _local8), (-(_local6) / _local8)); _local3++; }; m_centroid = ComputeCentroid(_local2.vertices, _local2.vertexCount); ComputeOBB(m_obb, m_vertices, m_vertexCount); _local3 = 0; while (_local3 < m_vertexCount) { _local4 = (((_local3 - 1) >= 0)) ? (_local3 - 1) : (m_vertexCount - 1); _local5 = _local3; _local9 = m_normals[_local4].x; _local10 = m_normals[_local4].y; _local11 = m_normals[_local5].x; _local12 = m_normals[_local5].y; _local13 = (m_vertices[_local3].x - m_centroid.x); _local14 = (m_vertices[_local3].y - m_centroid.y); _local15 = (((_local9 * _local13) + (_local10 * _local14)) - b2Settings.b2_toiSlop); _local16 = (((_local11 * _local13) + (_local12 * _local14)) - b2Settings.b2_toiSlop); _local17 = (1 / ((_local9 * _local12) - (_local10 * _local11))); m_coreVertices[_local3] = new b2Vec2(((_local17 * ((_local12 * _local15) - (_local10 * _local16))) + m_centroid.x), ((_local17 * ((_local9 * _local16) - (_local11 * _local15))) + m_centroid.y)); _local3++; }; } override public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ var _local4:b2AABB = s_sweptAABB1; var _local5:b2AABB = s_sweptAABB2; ComputeAABB(_local4, _arg2); ComputeAABB(_local5, _arg3); _arg1.lowerBound.Set(((_local4.lowerBound.x < _local5.lowerBound.x)) ? _local4.lowerBound.x : _local5.lowerBound.x, ((_local4.lowerBound.y < _local5.lowerBound.y)) ? _local4.lowerBound.y : _local5.lowerBound.y); _arg1.upperBound.Set(((_local4.upperBound.x > _local5.upperBound.x)) ? _local4.upperBound.x : _local5.upperBound.x, ((_local4.upperBound.y > _local5.upperBound.y)) ? _local4.upperBound.y : _local5.upperBound.y); } public function GetVertices():Array{ return (m_vertices); } public function GetCoreVertices():Array{ return (m_coreVertices); } public function GetCentroid():b2Vec2{ return (m_centroid); } public function GetOBB():b2OBB{ return (m_obb); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_coreVertices[0])); } public function Centroid(_arg1:b2XForm):b2Vec2{ return (b2Math.b2MulX(_arg1, m_centroid)); } override public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local20:Number; var _local21:Number; var _local6:Number = 0; var _local7:Number = _arg5; _local8 = (_arg4.p1.x - _arg1.position.x); _local9 = (_arg4.p1.y - _arg1.position.y); _local10 = _arg1.R; var _local12:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local13:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); _local8 = (_arg4.p2.x - _arg1.position.x); _local9 = (_arg4.p2.y - _arg1.position.y); _local10 = _arg1.R; var _local14:Number = ((_local8 * _local10.col1.x) + (_local9 * _local10.col1.y)); var _local15:Number = ((_local8 * _local10.col2.x) + (_local9 * _local10.col2.y)); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); var _local18 = -1; var _local19:int; while (_local19 < m_vertexCount) { _local11 = m_vertices[_local19]; _local8 = (_local11.x - _local12); _local9 = (_local11.y - _local13); _local11 = m_normals[_local19]; _local20 = ((_local11.x * _local8) + (_local11.y * _local9)); _local21 = ((_local11.x * _local16) + (_local11.y * _local17)); if ((((_local21 < 0)) && ((_local20 < (_local6 * _local21))))){ _local6 = (_local20 / _local21); _local18 = _local19; } else { if ((((_local21 > 0)) && ((_local20 < (_local7 * _local21))))){ _local7 = (_local20 / _local21); }; }; if (_local7 < _local6){ return (false); }; _local19++; }; if (_local18 >= 0){ _arg2[0] = _local6; _local10 = _arg1.R; _local11 = m_normals[_local18]; _arg3.x = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _arg3.y = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); return (true); }; return (false); } override public function ComputeMass(_arg1:b2MassData):void{ var _local10:b2Vec2; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:Number = 0; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = 0; var _local8:Number = (1 / 3); var _local9:int; while (_local9 < m_vertexCount) { _local10 = m_vertices[_local9]; _local11 = (((_local9 + 1) < m_vertexCount)) ? m_vertices[int((_local9 + 1))] : m_vertices[0]; _local12 = (_local10.x - _local6); _local13 = (_local10.y - _local7); _local14 = (_local11.x - _local6); _local15 = (_local11.y - _local7); _local16 = ((_local12 * _local15) - (_local13 * _local14)); _local17 = (0.5 * _local16); _local4 = (_local4 + _local17); _local2 = (_local2 + ((_local17 * _local8) * ((_local6 + _local10.x) + _local11.x))); _local3 = (_local3 + ((_local17 * _local8) * ((_local7 + _local10.y) + _local11.y))); _local18 = _local6; _local19 = _local7; _local20 = _local12; _local21 = _local13; _local22 = _local14; _local23 = _local15; _local24 = ((_local8 * ((0.25 * (((_local20 * _local20) + (_local22 * _local20)) + (_local22 * _local22))) + ((_local18 * _local20) + (_local18 * _local22)))) + ((0.5 * _local18) * _local18)); _local25 = ((_local8 * ((0.25 * (((_local21 * _local21) + (_local23 * _local21)) + (_local23 * _local23))) + ((_local19 * _local21) + (_local19 * _local23)))) + ((0.5 * _local19) * _local19)); _local5 = (_local5 + (_local16 * (_local24 + _local25))); _local9++; }; _arg1.mass = (m_density * _local4); _local2 = (_local2 * (1 / _local4)); _local3 = (_local3 * (1 / _local4)); _arg1.center.Set(_local2, _local3); _arg1.I = (m_density * _local5); } public function GetNormals():Array{ return (m_normals); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:b2Vec2; var _local5:b2Mat22; var _local11:Number; _local5 = _arg1.R; var _local6:Number = ((_arg2 * _local5.col1.x) + (_arg3 * _local5.col1.y)); var _local7:Number = ((_arg2 * _local5.col2.x) + (_arg3 * _local5.col2.y)); var _local8:int; _local4 = m_coreVertices[0]; var _local9:Number = ((_local4.x * _local6) + (_local4.y * _local7)); var _local10 = 1; while (_local10 < m_vertexCount) { _local4 = m_coreVertices[_local10]; _local11 = ((_local4.x * _local6) + (_local4.y * _local7)); if (_local11 > _local9){ _local8 = _local10; _local9 = _local11; }; _local10++; }; _local5 = _arg1.R; _local4 = m_coreVertices[_local8]; s_supportVec.x = (_arg1.position.x + ((_local5.col1.x * _local4.x) + (_local5.col2.x * _local4.y))); s_supportVec.y = (_arg1.position.y + ((_local5.col1.y * _local4.x) + (_local5.col2.y * _local4.y))); return (s_supportVec); } public function GetVertexCount():int{ return (m_vertexCount); } override public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ var _local3:b2Mat22; var _local4:b2Vec2; var _local5:b2Mat22 = s_computeMat; _local3 = _arg2.R; _local4 = m_obb.R.col1; _local5.col1.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col1.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local4 = m_obb.R.col2; _local5.col2.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); _local5.col2.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); _local5.Abs(); var _local6:b2Mat22 = _local5; _local4 = m_obb.extents; var _local7:Number = ((_local6.col1.x * _local4.x) + (_local6.col2.x * _local4.y)); var _local8:Number = ((_local6.col1.y * _local4.x) + (_local6.col2.y * _local4.y)); _local3 = _arg2.R; _local4 = m_obb.center; var _local9:Number = (_arg2.position.x + ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y))); var _local10:Number = (_arg2.position.y + ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y))); _arg1.lowerBound.Set((_local9 - _local7), (_local10 - _local8)); _arg1.upperBound.Set((_local9 + _local7), (_local10 + _local8)); } override public function UpdateSweepRadius(_arg1:b2Vec2):void{ var _local2:b2Vec2; var _local4:Number; var _local5:Number; m_sweepRadius = 0; var _local3:int; while (_local3 < m_vertexCount) { _local2 = m_coreVertices[_local3]; _local4 = (_local2.x - _arg1.x); _local5 = (_local2.y - _arg1.y); _local4 = Math.sqrt(((_local4 * _local4) + (_local5 * _local5))); if (_local4 > m_sweepRadius){ m_sweepRadius = _local4; }; _local3++; }; } override public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ var _local3:b2Vec2; var _local10:Number; var _local4:b2Mat22 = _arg1.R; var _local5:Number = (_arg2.x - _arg1.position.x); var _local6:Number = (_arg2.y - _arg1.position.y); var _local7:Number = ((_local5 * _local4.col1.x) + (_local6 * _local4.col1.y)); var _local8:Number = ((_local5 * _local4.col2.x) + (_local6 * _local4.col2.y)); var _local9:int; while (_local9 < m_vertexCount) { _local3 = m_vertices[_local9]; _local5 = (_local7 - _local3.x); _local6 = (_local8 - _local3.y); _local3 = m_normals[_local9]; _local10 = ((_local3.x * _local5) + (_local3.y * _local6)); if (_local10 > 0){ return (false); }; _local9++; }; return (true); } public static function ComputeCentroid(_arg1:Array, _arg2:int):b2Vec2{ var _local3:b2Vec2; var _local7:Number; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local3 = new b2Vec2(); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; _local7 = (1 / 3); var _local8:int; while (_local8 < _arg2) { _local9 = _arg1[_local8]; _local10 = (((_local8 + 1) < _arg2)) ? _arg1[int((_local8 + 1))] : _arg1[0]; _local11 = (_local9.x - _local5); _local12 = (_local9.y - _local6); _local13 = (_local10.x - _local5); _local14 = (_local10.y - _local6); _local15 = ((_local11 * _local14) - (_local12 * _local13)); _local16 = (0.5 * _local15); _local4 = (_local4 + _local16); _local3.x = (_local3.x + ((_local16 * _local7) * ((_local5 + _local9.x) + _local10.x))); _local3.y = (_local3.y + ((_local16 * _local7) * ((_local6 + _local9.y) + _local10.y))); _local8++; }; _local3.x = (_local3.x * (1 / _local4)); _local3.y = (_local3.y * (1 / _local4)); return (_local3); } public static function ComputeOBB(_arg1:b2OBB, _arg2:Array, _arg3:int):void{ var _local4:int; var _local7:b2Vec2; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:b2Mat22; var _local5:Array = new Array((b2Settings.b2_maxPolygonVertices + 1)); _local4 = 0; while (_local4 < _arg3) { _local5[_local4] = _arg2[_local4]; _local4++; }; _local5[_arg3] = _local5[0]; var _local6:Number = Number.MAX_VALUE; _local4 = 1; while (_local4 <= _arg3) { _local7 = _local5[int((_local4 - 1))]; _local8 = (_local5[_local4].x - _local7.x); _local9 = (_local5[_local4].y - _local7.y); _local10 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); _local8 = (_local8 / _local10); _local9 = (_local9 / _local10); _local11 = -(_local9); _local12 = _local8; _local13 = Number.MAX_VALUE; _local14 = Number.MAX_VALUE; _local15 = -(Number.MAX_VALUE); _local16 = -(Number.MAX_VALUE); _local17 = 0; while (_local17 < _arg3) { _local19 = (_local5[_local17].x - _local7.x); _local20 = (_local5[_local17].y - _local7.y); _local21 = ((_local8 * _local19) + (_local9 * _local20)); _local22 = ((_local11 * _local19) + (_local12 * _local20)); if (_local21 < _local13){ _local13 = _local21; }; if (_local22 < _local14){ _local14 = _local22; }; if (_local21 > _local15){ _local15 = _local21; }; if (_local22 > _local16){ _local16 = _local22; }; _local17++; }; _local18 = ((_local15 - _local13) * (_local16 - _local14)); if (_local18 < (0.95 * _local6)){ _local6 = _local18; _arg1.R.col1.x = _local8; _arg1.R.col1.y = _local9; _arg1.R.col2.x = _local11; _arg1.R.col2.y = _local12; _local23 = (0.5 * (_local13 + _local15)); _local24 = (0.5 * (_local14 + _local16)); _local25 = _arg1.R; _arg1.center.x = (_local7.x + ((_local25.col1.x * _local23) + (_local25.col2.x * _local24))); _arg1.center.y = (_local7.y + ((_local25.col1.y * _local23) + (_local25.col2.y * _local24))); _arg1.extents.x = (0.5 * (_local15 - _local13)); _arg1.extents.y = (0.5 * (_local16 - _local14)); }; _local4++; }; } } }//package Box2D.Collision.Shapes
Section 7
//b2Shape (Box2D.Collision.Shapes.b2Shape) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; public class b2Shape { public var m_next:b2Shape; public var m_type:int; public var m_sweepRadius:Number; public var m_density:Number; public var m_filter:b2FilterData; public var m_friction:Number; public var m_isSensor:Boolean; public var m_restitution:Number; public var m_userData; public var m_proxyId:uint; public var m_body:b2Body; public static const e_polygonShape:int = 1; public static const e_unknownShape:int = -1; public static const e_circleShape:int = 0; public static const e_shapeTypeCount:int = 2; private static var s_resetAABB:b2AABB = new b2AABB(); private static var s_syncAABB:b2AABB = new b2AABB(); private static var s_proxyAABB:b2AABB = new b2AABB(); public function b2Shape(_arg1:b2ShapeDef){ m_userData = _arg1.userData; m_friction = _arg1.friction; m_restitution = _arg1.restitution; m_density = _arg1.density; m_body = null; m_sweepRadius = 0; m_next = null; m_proxyId = b2Pair.b2_nullProxy; m_filter = _arg1.filter.Copy(); m_isSensor = _arg1.isSensor; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetSweepRadius():Number{ return (m_sweepRadius); } public function GetNext():b2Shape{ return (m_next); } public function ComputeSweptAABB(_arg1:b2AABB, _arg2:b2XForm, _arg3:b2XForm):void{ } public function GetType():int{ return (m_type); } public function GetRestitution():Number{ return (m_restitution); } public function GetFriction():Number{ return (m_friction); } public function GetFilterData():b2FilterData{ return (m_filter.Copy()); } public function TestSegment(_arg1:b2XForm, _arg2:Array, _arg3:b2Vec2, _arg4:b2Segment, _arg5:Number):Boolean{ return (false); } public function RefilterProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ if (m_proxyId == b2Pair.b2_nullProxy){ return; }; _arg1.DestroyProxy(m_proxyId); var _local3:b2AABB = s_resetAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function SetFilterData(_arg1:b2FilterData):void{ m_filter = _arg1.Copy(); } public function GetUserData(){ return (m_userData); } public function Synchronize(_arg1:b2BroadPhase, _arg2:b2XForm, _arg3:b2XForm):Boolean{ if (m_proxyId == b2Pair.b2_nullProxy){ return (false); }; var _local4:b2AABB = s_syncAABB; ComputeSweptAABB(_local4, _arg2, _arg3); if (_arg1.InRange(_local4)){ _arg1.MoveProxy(m_proxyId, _local4); return (true); }; return (false); } public function ComputeMass(_arg1:b2MassData):void{ } public function IsSensor():Boolean{ return (m_isSensor); } public function DestroyProxy(_arg1:b2BroadPhase):void{ if (m_proxyId != b2Pair.b2_nullProxy){ _arg1.DestroyProxy(m_proxyId); m_proxyId = b2Pair.b2_nullProxy; }; } public function UpdateSweepRadius(_arg1:b2Vec2):void{ } public function ComputeAABB(_arg1:b2AABB, _arg2:b2XForm):void{ } public function GetBody():b2Body{ return (m_body); } public function CreateProxy(_arg1:b2BroadPhase, _arg2:b2XForm):void{ var _local3:b2AABB = s_proxyAABB; ComputeAABB(_local3, _arg2); var _local4:Boolean = _arg1.InRange(_local3); if (_local4){ m_proxyId = _arg1.CreateProxy(_local3, this); } else { m_proxyId = b2Pair.b2_nullProxy; }; } public function TestPoint(_arg1:b2XForm, _arg2:b2Vec2):Boolean{ return (false); } public static function Destroy(_arg1:b2Shape, _arg2):void{ } public static function Create(_arg1:b2ShapeDef, _arg2):b2Shape{ switch (_arg1.type){ case e_circleShape: return (new b2CircleShape(_arg1)); case e_polygonShape: return (new b2PolygonShape(_arg1)); default: return (null); }; } } }//package Box2D.Collision.Shapes
Section 8
//b2ShapeDef (Box2D.Collision.Shapes.b2ShapeDef) package Box2D.Collision.Shapes { public class b2ShapeDef { public var friction:Number;// = 0.2 public var isSensor:Boolean;// = false public var density:Number;// = 0 public var restitution:Number;// = 0 public var userData;// = null public var filter:b2FilterData; public var type:int;// = -1 public function b2ShapeDef(){ filter = new b2FilterData(); super(); } } }//package Box2D.Collision.Shapes
Section 9
//b2AABB (Box2D.Collision.b2AABB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2AABB { public var upperBound:b2Vec2; public var lowerBound:b2Vec2; public function b2AABB(){ lowerBound = new b2Vec2(); upperBound = new b2Vec2(); super(); } public function IsValid():Boolean{ var _local1:Number = (upperBound.x - lowerBound.x); var _local2:Number = (upperBound.y - lowerBound.y); var _local3:Boolean = (((_local1 >= 0)) && ((_local2 >= 0))); _local3 = ((((_local3) && (lowerBound.IsValid()))) && (upperBound.IsValid())); return (_local3); } } }//package Box2D.Collision
Section 10
//b2Bound (Box2D.Collision.b2Bound) package Box2D.Collision { public class b2Bound { public var value:uint; public var proxyId:uint; public var stabbingCount:uint; public function Swap(_arg1:b2Bound):void{ var _local2:uint = value; var _local3:uint = proxyId; var _local4:uint = stabbingCount; value = _arg1.value; proxyId = _arg1.proxyId; stabbingCount = _arg1.stabbingCount; _arg1.value = _local2; _arg1.proxyId = _local3; _arg1.stabbingCount = _local4; } public function IsLower():Boolean{ return (((value & 1) == 0)); } public function IsUpper():Boolean{ return (((value & 1) == 1)); } } }//package Box2D.Collision
Section 11
//b2BoundValues (Box2D.Collision.b2BoundValues) package Box2D.Collision { public class b2BoundValues { public var lowerValues:Array; public var upperValues:Array; public function b2BoundValues(){ lowerValues = [0, 0]; upperValues = [0, 0]; super(); } } }//package Box2D.Collision
Section 12
//b2BroadPhase (Box2D.Collision.b2BroadPhase) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2BroadPhase { public var m_bounds:Array; public var m_quantizationFactor:b2Vec2; public var m_worldAABB:b2AABB; public var m_freeProxy:uint; public var m_proxyCount:int; public var m_proxyPool:Array; public var m_queryResultCount:int; public var m_pairManager:b2PairManager; public var m_timeStamp:uint; public var m_queryResults:Array; public static const b2_nullEdge:uint = b2Settings.USHRT_MAX; public static const b2_invalid:uint = b2Settings.USHRT_MAX; public static var s_validate:Boolean = false; public function b2BroadPhase(_arg1:b2AABB, _arg2:b2PairCallback){ var _local3:int; var _local5:Number; var _local6:b2Proxy; var _local7:int; m_pairManager = new b2PairManager(); m_proxyPool = new Array(b2Settings.b2_maxPairs); m_bounds = new Array((2 * b2Settings.b2_maxProxies)); m_queryResults = new Array(b2Settings.b2_maxProxies); m_quantizationFactor = new b2Vec2(); super(); m_pairManager.Initialize(this, _arg2); m_worldAABB = _arg1; m_proxyCount = 0; _local3 = 0; while (_local3 < b2Settings.b2_maxProxies) { m_queryResults[_local3] = 0; _local3++; }; m_bounds = new Array(2); _local3 = 0; while (_local3 < 2) { m_bounds[_local3] = new Array((2 * b2Settings.b2_maxProxies)); _local7 = 0; while (_local7 < (2 * b2Settings.b2_maxProxies)) { m_bounds[_local3][_local7] = new b2Bound(); _local7++; }; _local3++; }; var _local4:Number = (_arg1.upperBound.x - _arg1.lowerBound.x); _local5 = (_arg1.upperBound.y - _arg1.lowerBound.y); m_quantizationFactor.x = (b2Settings.USHRT_MAX / _local4); m_quantizationFactor.y = (b2Settings.USHRT_MAX / _local5); _local3 = 0; while (_local3 < (b2Settings.b2_maxProxies - 1)) { _local6 = new b2Proxy(); m_proxyPool[_local3] = _local6; _local6.SetNext((_local3 + 1)); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; _local3++; }; _local6 = new b2Proxy(); m_proxyPool[int((b2Settings.b2_maxProxies - 1))] = _local6; _local6.SetNext(b2Pair.b2_nullProxy); _local6.timeStamp = 0; _local6.overlapCount = b2_invalid; _local6.userData = null; m_freeProxy = 0; m_timeStamp = 1; m_queryResultCount = 0; } public function QueryAABB(_arg1:b2AABB, _arg2, _arg3:int):int{ var _local6:uint; var _local7:uint; var _local12:b2Proxy; var _local4:Array = new Array(); var _local5:Array = new Array(); ComputeBounds(_local4, _local5, _arg1); var _local8:Array = [_local6]; var _local9:Array = [_local7]; Query(_local8, _local9, _local4[0], _local5[0], m_bounds[0], (2 * m_proxyCount), 0); Query(_local8, _local9, _local4[1], _local5[1], m_bounds[1], (2 * m_proxyCount), 1); var _local10:int; var _local11:int; while ((((_local11 < m_queryResultCount)) && ((_local10 < _arg3)))) { _local12 = m_proxyPool[m_queryResults[_local11]]; _arg2[_local11] = _local12.userData; _local11++; _local10++; }; m_queryResultCount = 0; IncrementTimeStamp(); return (_local10); } public function Commit():void{ m_pairManager.Commit(); } public function GetProxy(_arg1:int):b2Proxy{ var _local2:b2Proxy = m_proxyPool[_arg1]; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((_local2.IsValid() == false)))){ return (null); }; return (_local2); } private function IncrementTimeStamp():void{ var _local1:uint; if (m_timeStamp == b2Settings.USHRT_MAX){ _local1 = 0; while (_local1 < b2Settings.b2_maxProxies) { (m_proxyPool[_local1] as b2Proxy).timeStamp = 0; _local1++; }; m_timeStamp = 1; } else { m_timeStamp++; }; } private function Query(_arg1:Array, _arg2:Array, _arg3:uint, _arg4:uint, _arg5:Array, _arg6:uint, _arg7:int):void{ var _local10:b2Bound; var _local12:int; var _local13:int; var _local14:b2Proxy; var _local8:uint = BinarySearch(_arg5, _arg6, _arg3); var _local9:uint = BinarySearch(_arg5, _arg6, _arg4); var _local11:uint = _local8; while (_local11 < _local9) { _local10 = _arg5[_local11]; if (_local10.IsLower()){ IncrementOverlapCount(_local10.proxyId); }; _local11++; }; if (_local8 > 0){ _local12 = (_local8 - 1); _local10 = _arg5[_local12]; _local13 = _local10.stabbingCount; while (_local13) { _local10 = _arg5[_local12]; if (_local10.IsLower()){ _local14 = m_proxyPool[_local10.proxyId]; if (_local8 <= _local14.upperBounds[_arg7]){ IncrementOverlapCount(_local10.proxyId); _local13--; }; }; _local12--; }; }; _arg1[0] = _local8; _arg2[0] = _local9; } private function TestOverlapValidate(_arg1:b2Proxy, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local6:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg1.lowerBounds[_local3]]; _local6 = _local4[_arg2.upperBounds[_local3]]; if (_local5.value > _local6.value){ return (false); }; _local5 = _local4[_arg1.upperBounds[_local3]]; _local6 = _local4[_arg2.lowerBounds[_local3]]; if (_local5.value < _local6.value){ return (false); }; _local3++; }; return (true); } private function ComputeBounds(_arg1:Array, _arg2:Array, _arg3:b2AABB):void{ var _local4:Number = _arg3.lowerBound.x; var _local5:Number = _arg3.lowerBound.y; _local4 = b2Math.b2Min(_local4, m_worldAABB.upperBound.x); _local5 = b2Math.b2Min(_local5, m_worldAABB.upperBound.y); _local4 = b2Math.b2Max(_local4, m_worldAABB.lowerBound.x); _local5 = b2Math.b2Max(_local5, m_worldAABB.lowerBound.y); var _local6:Number = _arg3.upperBound.x; var _local7:Number = _arg3.upperBound.y; _local6 = b2Math.b2Min(_local6, m_worldAABB.upperBound.x); _local7 = b2Math.b2Min(_local7, m_worldAABB.upperBound.y); _local6 = b2Math.b2Max(_local6, m_worldAABB.lowerBound.x); _local7 = b2Math.b2Max(_local7, m_worldAABB.lowerBound.y); _arg1[0] = (uint((m_quantizationFactor.x * (_local4 - m_worldAABB.lowerBound.x))) & (b2Settings.USHRT_MAX - 1)); _arg2[0] = ((uint((m_quantizationFactor.x * (_local6 - m_worldAABB.lowerBound.x))) & 0xFFFF) | 1); _arg1[1] = (uint((m_quantizationFactor.y * (_local5 - m_worldAABB.lowerBound.y))) & (b2Settings.USHRT_MAX - 1)); _arg2[1] = ((uint((m_quantizationFactor.y * (_local7 - m_worldAABB.lowerBound.y))) & 0xFFFF) | 1); } public function CreateProxy(_arg1:b2AABB, _arg2):uint{ var _local3:uint; var _local4:b2Proxy; var _local11:Array; var _local12:uint; var _local13:uint; var _local14:Array; var _local15:Array; var _local16:Array; var _local17:int; var _local18:int; var _local19:b2Bound; var _local20:b2Bound; var _local21:b2Bound; var _local22:int; var _local23:b2Proxy; var _local5:uint = m_freeProxy; _local4 = m_proxyPool[_local5]; m_freeProxy = _local4.GetNext(); _local4.overlapCount = 0; _local4.userData = _arg2; var _local6:uint = (2 * m_proxyCount); var _local7:Array = new Array(); var _local8:Array = new Array(); ComputeBounds(_local7, _local8, _arg1); var _local9:int; while (_local9 < 2) { _local11 = m_bounds[_local9]; _local14 = [_local12]; _local15 = [_local13]; Query(_local14, _local15, _local7[_local9], _local8[_local9], _local11, _local6, _local9); _local12 = _local14[0]; _local13 = _local15[0]; _local16 = new Array(); _local18 = (_local6 - _local13); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local13 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local13 + 2); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local16 = new Array(); _local18 = (_local13 - _local12); _local17 = 0; while (_local17 < _local18) { _local16[_local17] = new b2Bound(); _local19 = _local16[_local17]; _local20 = _local11[int((_local12 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local18 = _local16.length; _local22 = (_local12 + 1); _local17 = 0; while (_local17 < _local18) { _local20 = _local16[_local17]; _local19 = _local11[int((_local22 + _local17))]; _local19.value = _local20.value; _local19.proxyId = _local20.proxyId; _local19.stabbingCount = _local20.stabbingCount; _local17++; }; _local13++; _local19 = _local11[_local12]; _local20 = _local11[_local13]; _local19.value = _local7[_local9]; _local19.proxyId = _local5; _local20.value = _local8[_local9]; _local20.proxyId = _local5; _local21 = _local11[int((_local12 - 1))]; _local19.stabbingCount = ((_local12 == 0)) ? 0 : _local21.stabbingCount; _local21 = _local11[int((_local13 - 1))]; _local20.stabbingCount = _local21.stabbingCount; _local3 = _local12; while (_local3 < _local13) { _local21 = _local11[_local3]; _local21.stabbingCount++; _local3++; }; _local3 = _local12; while (_local3 < (_local6 + 2)) { _local19 = _local11[_local3]; _local23 = m_proxyPool[_local19.proxyId]; if (_local19.IsLower()){ _local23.lowerBounds[_local9] = _local3; } else { _local23.upperBounds[_local9] = _local3; }; _local3++; }; _local9++; }; m_proxyCount++; var _local10:int; while (_local10 < m_queryResultCount) { m_pairManager.AddBufferedPair(_local5, m_queryResults[_local10]); _local10++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); return (_local5); } public function DestroyProxy(_arg1:uint):void{ var _local2:b2Bound; var _local3:b2Bound; var _local8:Array; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:int; var _local15:int; var _local16:int; var _local17:uint; var _local18:int; var _local19:b2Proxy; var _local4:b2Proxy = m_proxyPool[_arg1]; var _local5:int = (2 * m_proxyCount); var _local6:int; while (_local6 < 2) { _local8 = m_bounds[_local6]; _local9 = _local4.lowerBounds[_local6]; _local10 = _local4.upperBounds[_local6]; _local2 = _local8[_local9]; _local11 = _local2.value; _local3 = _local8[_local10]; _local12 = _local3.value; _local13 = new Array(); _local15 = ((_local10 - _local9) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local9 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = _local9; _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local13 = new Array(); _local15 = ((_local5 - _local10) - 1); _local14 = 0; while (_local14 < _local15) { _local13[_local14] = new b2Bound(); _local2 = _local13[_local14]; _local3 = _local8[int(((_local10 + 1) + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = _local13.length; _local16 = (_local10 - 1); _local14 = 0; while (_local14 < _local15) { _local3 = _local13[_local14]; _local2 = _local8[int((_local16 + _local14))]; _local2.value = _local3.value; _local2.proxyId = _local3.proxyId; _local2.stabbingCount = _local3.stabbingCount; _local14++; }; _local15 = (_local5 - 2); _local17 = _local9; while (_local17 < _local15) { _local2 = _local8[_local17]; _local19 = m_proxyPool[_local2.proxyId]; if (_local2.IsLower()){ _local19.lowerBounds[_local6] = _local17; } else { _local19.upperBounds[_local6] = _local17; }; _local17++; }; _local15 = (_local10 - 1); _local18 = _local9; while (_local18 < _local15) { _local2 = _local8[_local18]; _local2.stabbingCount--; _local18++; }; Query([0], [0], _local11, _local12, _local8, (_local5 - 2), _local6); _local6++; }; var _local7:int; while (_local7 < m_queryResultCount) { m_pairManager.RemoveBufferedPair(_arg1, m_queryResults[_local7]); _local7++; }; m_pairManager.Commit(); m_queryResultCount = 0; IncrementTimeStamp(); _local4.userData = null; _local4.overlapCount = b2_invalid; _local4.lowerBounds[0] = b2_invalid; _local4.lowerBounds[1] = b2_invalid; _local4.upperBounds[0] = b2_invalid; _local4.upperBounds[1] = b2_invalid; _local4.SetNext(m_freeProxy); m_freeProxy = _arg1; m_proxyCount--; } public function TestOverlap(_arg1:b2BoundValues, _arg2:b2Proxy):Boolean{ var _local4:Array; var _local5:b2Bound; var _local3:int; while (_local3 < 2) { _local4 = m_bounds[_local3]; _local5 = _local4[_arg2.upperBounds[_local3]]; if (_arg1.lowerValues[_local3] > _local5.value){ return (false); }; _local5 = _local4[_arg2.lowerBounds[_local3]]; if (_arg1.upperValues[_local3] < _local5.value){ return (false); }; _local3++; }; return (true); } public function Validate():void{ var _local1:b2Pair; var _local2:b2Proxy; var _local3:b2Proxy; var _local4:Boolean; var _local6:b2Bound; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:b2Bound; var _local5:int; while (_local5 < 2) { _local6 = m_bounds[_local5]; _local7 = (2 * m_proxyCount); _local8 = 0; _local9 = 0; while (_local9 < _local7) { _local10 = _local6[_local9]; if (_local10.IsLower() == true){ _local8++; } else { _local8--; }; _local9++; }; _local5++; }; } private function IncrementOverlapCount(_arg1:uint):void{ var _local2:b2Proxy = m_proxyPool[_arg1]; if (_local2.timeStamp < m_timeStamp){ _local2.timeStamp = m_timeStamp; _local2.overlapCount = 1; } else { _local2.overlapCount = 2; m_queryResults[m_queryResultCount] = _arg1; m_queryResultCount++; }; } public function InRange(_arg1:b2AABB):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = _arg1.lowerBound.x; _local3 = _arg1.lowerBound.y; _local2 = (_local2 - m_worldAABB.upperBound.x); _local3 = (_local3 - m_worldAABB.upperBound.y); _local4 = m_worldAABB.lowerBound.x; _local5 = m_worldAABB.lowerBound.y; _local4 = (_local4 - _arg1.upperBound.x); _local5 = (_local5 - _arg1.upperBound.y); _local2 = b2Math.b2Max(_local2, _local4); _local3 = b2Math.b2Max(_local3, _local5); return ((b2Math.b2Max(_local2, _local3) < 0)); } public function MoveProxy(_arg1:uint, _arg2:b2AABB):void{ var _local3:Array; var _local4:int; var _local5:uint; var _local6:uint; var _local7:b2Bound; var _local8:b2Bound; var _local9:b2Bound; var _local10:uint; var _local11:b2Proxy; var _local16:Array; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:uint; var _local21:int; var _local22:int; var _local23:uint; var _local24:b2Proxy; if ((((_arg1 == b2Pair.b2_nullProxy)) || ((b2Settings.b2_maxProxies <= _arg1)))){ return; }; if (_arg2.IsValid() == false){ return; }; var _local12:uint = (2 * m_proxyCount); var _local13:b2Proxy = m_proxyPool[_arg1]; var _local14:b2BoundValues = new b2BoundValues(); ComputeBounds(_local14.lowerValues, _local14.upperValues, _arg2); var _local15:b2BoundValues = new b2BoundValues(); _local5 = 0; while (_local5 < 2) { _local7 = m_bounds[_local5][_local13.lowerBounds[_local5]]; _local15.lowerValues[_local5] = _local7.value; _local7 = m_bounds[_local5][_local13.upperBounds[_local5]]; _local15.upperValues[_local5] = _local7.value; _local5++; }; _local5 = 0; while (_local5 < 2) { _local16 = m_bounds[_local5]; _local17 = _local13.lowerBounds[_local5]; _local18 = _local13.upperBounds[_local5]; _local19 = _local14.lowerValues[_local5]; _local20 = _local14.upperValues[_local5]; _local7 = _local16[_local17]; _local21 = (_local19 - _local7.value); _local7.value = _local19; _local7 = _local16[_local18]; _local22 = (_local20 - _local7.value); _local7.value = _local20; if (_local21 < 0){ _local6 = _local17; while ((((_local6 > 0)) && ((_local19 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local8.proxyId]; _local8.stabbingCount++; if (_local8.IsUpper() == true){ if (TestOverlap(_local14, _local24)){ m_pairManager.AddBufferedPair(_arg1, _local23); }; _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; if (_local22 > 0){ _local6 = _local18; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local20)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount++; if (_local9.IsLower() == true){ if (TestOverlap(_local14, _local11)){ m_pairManager.AddBufferedPair(_arg1, _local10); }; _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; } else { _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local21 > 0){ _local6 = _local17; while ((((_local6 < (_local12 - 1))) && (((_local16[int((_local6 + 1))] as b2Bound).value <= _local19)))) { _local7 = _local16[_local6]; _local9 = _local16[int((_local6 + 1))]; _local10 = _local9.proxyId; _local11 = m_proxyPool[_local10]; _local9.stabbingCount--; if (_local9.IsUpper()){ if (TestOverlap(_local15, _local11)){ m_pairManager.RemoveBufferedPair(_arg1, _local10); }; _local3 = _local11.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local11.lowerBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.Swap(_local9); _local6++; }; }; if (_local22 < 0){ _local6 = _local18; while ((((_local6 > 0)) && ((_local20 < (_local16[int((_local6 - 1))] as b2Bound).value)))) { _local7 = _local16[_local6]; _local8 = _local16[int((_local6 - 1))]; _local23 = _local8.proxyId; _local24 = m_proxyPool[_local23]; _local8.stabbingCount--; if (_local8.IsLower() == true){ if (TestOverlap(_local15, _local24)){ m_pairManager.RemoveBufferedPair(_arg1, _local23); }; _local3 = _local24.lowerBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount--; } else { _local3 = _local24.upperBounds; _local4 = _local3[_local5]; _local4++; _local3[_local5] = _local4; _local7.stabbingCount++; }; _local3 = _local13.upperBounds; _local4 = _local3[_local5]; _local4--; _local3[_local5] = _local4; _local7.Swap(_local8); _local6--; }; }; _local5++; }; } public static function BinarySearch(_arg1:Array, _arg2:int, _arg3:uint):uint{ var _local6:int; var _local7:b2Bound; var _local4:int; var _local5:int = (_arg2 - 1); while (_local4 <= _local5) { _local6 = ((_local4 + _local5) / 2); _local7 = _arg1[_local6]; if (_local7.value > _arg3){ _local5 = (_local6 - 1); } else { if (_local7.value < _arg3){ _local4 = (_local6 + 1); } else { return (uint(_local6)); }; }; }; return (uint(_local4)); } } }//package Box2D.Collision
Section 13
//b2BufferedPair (Box2D.Collision.b2BufferedPair) package Box2D.Collision { public class b2BufferedPair { public var proxyId1:uint; public var proxyId2:uint; } }//package Box2D.Collision
Section 14
//b2Collision (Box2D.Collision.b2Collision) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Collision { public static const b2_nullFeature:uint = 0xFF; private static var b2CollidePolyTempVec:b2Vec2 = new b2Vec2(); public static function EdgeSeparation(_arg1:b2PolygonShape, _arg2:b2XForm, _arg3:int, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local11:b2Mat22; var _local12:b2Vec2; var _local25:Number; var _local6:int = _arg1.m_vertexCount; var _local7:Array = _arg1.m_vertices; var _local8:Array = _arg1.m_normals; var _local9:int = _arg4.m_vertexCount; var _local10:Array = _arg4.m_vertices; _local11 = _arg2.R; _local12 = _local8[_arg3]; var _local13:Number = ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y)); var _local14:Number = ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y)); _local11 = _arg5.R; var _local15:Number = ((_local11.col1.x * _local13) + (_local11.col1.y * _local14)); var _local16:Number = ((_local11.col2.x * _local13) + (_local11.col2.y * _local14)); var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local12 = _local10[_local19]; _local25 = ((_local12.x * _local15) + (_local12.y * _local16)); if (_local25 < _local18){ _local18 = _local25; _local17 = _local19; }; _local19++; }; _local12 = _local7[_arg3]; _local11 = _arg2.R; var _local20:Number = (_arg2.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local21:Number = (_arg2.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local12 = _local10[_local17]; _local11 = _arg5.R; var _local22:Number = (_arg5.position.x + ((_local11.col1.x * _local12.x) + (_local11.col2.x * _local12.y))); var _local23:Number = (_arg5.position.y + ((_local11.col1.y * _local12.x) + (_local11.col2.y * _local12.y))); _local22 = (_local22 - _local20); _local23 = (_local23 - _local21); var _local24:Number = ((_local22 * _local13) + (_local23 * _local14)); return (_local24); } public static function b2TestOverlap(_arg1:b2AABB, _arg2:b2AABB):Boolean{ var _local3:b2Vec2 = _arg2.lowerBound; var _local4:b2Vec2 = _arg1.upperBound; var _local5:Number = (_local3.x - _local4.x); var _local6:Number = (_local3.y - _local4.y); _local3 = _arg1.lowerBound; _local4 = _arg2.upperBound; var _local7:Number = (_local3.x - _local4.x); var _local8:Number = (_local3.y - _local4.y); if ((((_local5 > 0)) || ((_local6 > 0)))){ return (false); }; if ((((_local7 > 0)) || ((_local8 > 0)))){ return (false); }; return (true); } public static function FindIncidentEdge(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:int, _arg5:b2PolygonShape, _arg6:b2XForm):void{ var _local12:b2Mat22; var _local13:b2Vec2; var _local20:ClipVertex; var _local23:Number; var _local7:int = _arg2.m_vertexCount; var _local8:Array = _arg2.m_normals; var _local9:int = _arg5.m_vertexCount; var _local10:Array = _arg5.m_vertices; var _local11:Array = _arg5.m_normals; _local12 = _arg3.R; _local13 = _local8[_arg4]; var _local14:Number = ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y)); var _local15:Number = ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y)); _local12 = _arg6.R; var _local16:Number = ((_local12.col1.x * _local14) + (_local12.col1.y * _local15)); _local15 = ((_local12.col2.x * _local14) + (_local12.col2.y * _local15)); _local14 = _local16; var _local17:int; var _local18:Number = Number.MAX_VALUE; var _local19:int; while (_local19 < _local9) { _local13 = _local11[_local19]; _local23 = ((_local14 * _local13.x) + (_local15 * _local13.y)); if (_local23 < _local18){ _local18 = _local23; _local17 = _local19; }; _local19++; }; var _local21:int = _local17; var _local22:int = (((_local21 + 1) < _local9)) ? (_local21 + 1) : 0; _local20 = _arg1[0]; _local13 = _local10[_local21]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local21; _local20.id.features.incidentVertex = 0; _local20 = _arg1[1]; _local13 = _local10[_local22]; _local12 = _arg6.R; _local20.v.x = (_arg6.position.x + ((_local12.col1.x * _local13.x) + (_local12.col2.x * _local13.y))); _local20.v.y = (_arg6.position.y + ((_local12.col1.y * _local13.x) + (_local12.col2.y * _local13.y))); _local20.id.features.referenceEdge = _arg4; _local20.id.features.incidentEdge = _local22; _local20.id.features.incidentVertex = 1; } public static function b2CollidePolygons(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):void{ var _local6:ClipVertex; var _local13:b2PolygonShape; var _local14:b2PolygonShape; var _local17:int; var _local18:uint; var _local34:int; var _local37:b2Vec2; var _local38:Number; var _local39:b2ManifoldPoint; _arg1.pointCount = 0; var _local7:int; var _local8:Array = [_local7]; var _local9:Number = FindMaxSeparation(_local8, _arg2, _arg3, _arg4, _arg5); _local7 = _local8[0]; if (_local9 > 0){ return; }; var _local10:int; var _local11:Array = [_local10]; var _local12:Number = FindMaxSeparation(_local11, _arg4, _arg5, _arg2, _arg3); _local10 = _local11[0]; if (_local12 > 0){ return; }; var _local15:b2XForm = new b2XForm(); var _local16:b2XForm = new b2XForm(); var _local19:Number = 0.98; var _local20:Number = 0.001; if (_local12 > ((_local19 * _local9) + _local20)){ _local13 = _arg4; _local14 = _arg2; _local15.Set(_arg5); _local16.Set(_arg3); _local17 = _local10; _local18 = 1; } else { _local13 = _arg2; _local14 = _arg4; _local15.Set(_arg3); _local16.Set(_arg5); _local17 = _local7; _local18 = 0; }; var _local21:Array = [new ClipVertex(), new ClipVertex()]; FindIncidentEdge(_local21, _local13, _local15, _local17, _local14, _local16); var _local22:int = _local13.m_vertexCount; var _local23:Array = _local13.m_vertices; var _local24:b2Vec2 = _local23[_local17]; var _local25:b2Vec2 = _local24.Copy(); if ((_local17 + 1) < _local22){ _local24 = _local23[int((_local17 + 1))]; _local37 = _local24.Copy(); } else { _local24 = _local23[0]; _local37 = _local24.Copy(); }; var _local26:b2Vec2 = b2Math.SubtractVV(_local37, _local25); var _local27:b2Vec2 = b2Math.b2MulMV(_local15.R, b2Math.SubtractVV(_local37, _local25)); _local27.Normalize(); var _local28:b2Vec2 = b2Math.b2CrossVF(_local27, 1); _local25 = b2Math.b2MulX(_local15, _local25); _local37 = b2Math.b2MulX(_local15, _local37); var _local29:Number = b2Math.b2Dot(_local28, _local25); var _local30:Number = -(b2Math.b2Dot(_local27, _local25)); var _local31:Number = b2Math.b2Dot(_local27, _local37); var _local32:Array = [new ClipVertex(), new ClipVertex()]; var _local33:Array = [new ClipVertex(), new ClipVertex()]; _local34 = ClipSegmentToLine(_local32, _local21, _local27.Negative(), _local30); if (_local34 < 2){ return; }; _local34 = ClipSegmentToLine(_local33, _local32, _local27, _local31); if (_local34 < 2){ return; }; _arg1.normal = (_local18) ? _local28.Negative() : _local28.Copy(); var _local35:int; var _local36:int; while (_local36 < b2Settings.b2_maxManifoldPoints) { _local6 = _local33[_local36]; _local38 = (b2Math.b2Dot(_local28, _local6.v) - _local29); if (_local38 <= 0){ _local39 = _arg1.points[_local35]; _local39.separation = _local38; _local39.localPoint1 = b2Math.b2MulXT(_arg3, _local6.v); _local39.localPoint2 = b2Math.b2MulXT(_arg5, _local6.v); _local39.id.key = _local6.id._key; _local39.id.features.flip = _local18; _local35++; }; _local36++; }; _arg1.pointCount = _local35; } public static function FindMaxSeparation(_arg1:Array, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2PolygonShape, _arg5:b2XForm):Number{ var _local8:b2Vec2; var _local9:b2Mat22; var _local22:int; var _local23:Number; var _local24:int; var _local25:Number; var _local6:int = _arg2.m_vertexCount; var _local7:Array = _arg2.m_normals; _local9 = _arg5.R; _local8 = _arg4.m_centroid; var _local10:Number = (_arg5.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y))); var _local11:Number = (_arg5.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y))); _local9 = _arg3.R; _local8 = _arg2.m_centroid; _local10 = (_local10 - (_arg3.position.x + ((_local9.col1.x * _local8.x) + (_local9.col2.x * _local8.y)))); _local11 = (_local11 - (_arg3.position.y + ((_local9.col1.y * _local8.x) + (_local9.col2.y * _local8.y)))); var _local12:Number = ((_local10 * _arg3.R.col1.x) + (_local11 * _arg3.R.col1.y)); var _local13:Number = ((_local10 * _arg3.R.col2.x) + (_local11 * _arg3.R.col2.y)); var _local14:int; var _local15:Number = -(Number.MAX_VALUE); var _local16:int; while (_local16 < _local6) { _local8 = _local7[_local16]; _local25 = ((_local8.x * _local12) + (_local8.y * _local13)); if (_local25 > _local15){ _local15 = _local25; _local14 = _local16; }; _local16++; }; var _local17:Number = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; var _local18:int = (((_local14 - 1) >= 0)) ? (_local14 - 1) : (_local6 - 1); var _local19:Number = EdgeSeparation(_arg2, _arg3, _local18, _arg4, _arg5); if (_local19 > 0){ return (_local19); }; var _local20:int = (((_local14 + 1) < _local6)) ? (_local14 + 1) : 0; var _local21:Number = EdgeSeparation(_arg2, _arg3, _local20, _arg4, _arg5); if (_local21 > 0){ return (_local21); }; if ((((_local19 > _local17)) && ((_local19 > _local21)))){ _local24 = -1; _local22 = _local18; _local23 = _local19; } else { if (_local21 > _local17){ _local24 = 1; _local22 = _local20; _local23 = _local21; } else { _arg1[0] = _local14; return (_local17); }; }; while (true) { if (_local24 == -1){ _local14 = (((_local22 - 1) >= 0)) ? (_local22 - 1) : (_local6 - 1); } else { _local14 = (((_local22 + 1) < _local6)) ? (_local22 + 1) : 0; }; _local17 = EdgeSeparation(_arg2, _arg3, _local14, _arg4, _arg5); if (_local17 > 0){ return (_local17); }; if (_local17 > _local23){ _local22 = _local14; _local23 = _local17; } else { break; }; }; _arg1[0] = _local22; return (_local23); } public static function ClipSegmentToLine(_arg1:Array, _arg2:Array, _arg3:b2Vec2, _arg4:Number):int{ var _local5:ClipVertex; var _local6:int; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:Number; var _local11:Number; var _local12:b2Vec2; var _local13:ClipVertex; _local6 = 0; _local5 = _arg2[0]; _local7 = _local5.v; _local5 = _arg2[1]; _local8 = _local5.v; _local9 = (b2Math.b2Dot(_arg3, _local7) - _arg4); var _local10:Number = (b2Math.b2Dot(_arg3, _local8) - _arg4); if (_local9 <= 0){ var _temp1 = _local6; _local6 = (_local6 + 1); var _local14 = _temp1; _arg1[_local14] = _arg2[0]; }; if (_local10 <= 0){ var _temp2 = _local6; _local6 = (_local6 + 1); _local14 = _temp2; _arg1[_local14] = _arg2[1]; }; if ((_local9 * _local10) < 0){ _local11 = (_local9 / (_local9 - _local10)); _local5 = _arg1[_local6]; _local12 = _local5.v; _local12.x = (_local7.x + (_local11 * (_local8.x - _local7.x))); _local12.y = (_local7.y + (_local11 * (_local8.y - _local7.y))); _local5 = _arg1[_local6]; if (_local9 > 0){ _local13 = _arg2[0]; _local5.id = _local13.id; } else { _local13 = _arg2[1]; _local5.id = _local13.id; }; _local6++; }; return (_local6); } public static function b2CollideCircles(_arg1:b2Manifold, _arg2:b2CircleShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2Mat22; var _local7:b2Vec2; var _local18:Number; var _local24:Number; var _local25:Number; _arg1.pointCount = 0; _local6 = _arg3.R; _local7 = _arg2.m_localPosition; var _local8:Number = (_arg3.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local9:Number = (_arg3.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); _local6 = _arg5.R; _local7 = _arg4.m_localPosition; var _local10:Number = (_arg5.position.x + ((_local6.col1.x * _local7.x) + (_local6.col2.x * _local7.y))); var _local11:Number = (_arg5.position.y + ((_local6.col1.y * _local7.x) + (_local6.col2.y * _local7.y))); var _local12:Number = (_local10 - _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = ((_local12 * _local12) + (_local13 * _local13)); var _local15:Number = _arg2.m_radius; var _local16:Number = _arg4.m_radius; var _local17:Number = (_local15 + _local16); if (_local14 > (_local17 * _local17)){ return; }; if (_local14 < Number.MIN_VALUE){ _local18 = -(_local17); _arg1.normal.Set(0, 1); } else { _local24 = Math.sqrt(_local14); _local18 = (_local24 - _local17); _local25 = (1 / _local24); _arg1.normal.x = (_local25 * _local12); _arg1.normal.y = (_local25 * _local13); }; _arg1.pointCount = 1; var _local19:b2ManifoldPoint = _arg1.points[0]; _local19.id.key = 0; _local19.separation = _local18; _local8 = (_local8 + (_local15 * _arg1.normal.x)); _local9 = (_local9 + (_local15 * _arg1.normal.y)); _local10 = (_local10 - (_local16 * _arg1.normal.x)); _local11 = (_local11 - (_local16 * _arg1.normal.y)); var _local20:Number = (0.5 * (_local8 + _local10)); var _local21:Number = (0.5 * (_local9 + _local11)); var _local22:Number = (_local20 - _arg3.position.x); var _local23:Number = (_local21 - _arg3.position.y); _local19.localPoint1.x = ((_local22 * _arg3.R.col1.x) + (_local23 * _arg3.R.col1.y)); _local19.localPoint1.y = ((_local22 * _arg3.R.col2.x) + (_local23 * _arg3.R.col2.y)); _local22 = (_local20 - _arg5.position.x); _local23 = (_local21 - _arg5.position.y); _local19.localPoint2.x = ((_local22 * _arg5.R.col1.x) + (_local23 * _arg5.R.col1.y)); _local19.localPoint2.y = ((_local22 * _arg5.R.col2.x) + (_local23 * _arg5.R.col2.y)); } public static function b2CollidePolygonAndCircle(_arg1:b2Manifold, _arg2:b2PolygonShape, _arg3:b2XForm, _arg4:b2CircleShape, _arg5:b2XForm):void{ var _local6:b2ManifoldPoint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:b2Vec2; var _local12:b2Mat22; var _local17:Number; var _local32:Number; var _local33:Number; var _local34:Number; _arg1.pointCount = 0; _local12 = _arg5.R; _local11 = _arg4.m_localPosition; var _local13:Number = (_arg5.position.x + ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y))); var _local14:Number = (_arg5.position.y + ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y))); _local7 = (_local13 - _arg3.position.x); _local8 = (_local14 - _arg3.position.y); _local12 = _arg3.R; var _local15:Number = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); var _local16:Number = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); var _local18:int; var _local19:Number = -(Number.MAX_VALUE); var _local20:Number = _arg4.m_radius; var _local21:int = _arg2.m_vertexCount; var _local22:Array = _arg2.m_vertices; var _local23:Array = _arg2.m_normals; var _local24:int; while (_local24 < _local21) { _local11 = _local22[_local24]; _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); _local11 = _local23[_local24]; _local34 = ((_local11.x * _local7) + (_local11.y * _local8)); if (_local34 > _local20){ return; }; if (_local34 > _local19){ _local19 = _local34; _local18 = _local24; }; _local24++; }; if (_local19 < Number.MIN_VALUE){ _arg1.pointCount = 1; _local11 = _local23[_local18]; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local11.x) + (_local12.col2.x * _local11.y)); _arg1.normal.y = ((_local12.col1.y * _local11.x) + (_local12.col2.y * _local11.y)); _local6 = _arg1.points[0]; _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local19 - _local20); return; }; var _local25:int = _local18; var _local26:int = (((_local25 + 1) < _local21)) ? (_local25 + 1) : 0; _local11 = _local22[_local25]; var _local27:b2Vec2 = _local22[_local26]; var _local28:Number = (_local27.x - _local11.x); var _local29:Number = (_local27.y - _local11.y); var _local30:Number = Math.sqrt(((_local28 * _local28) + (_local29 * _local29))); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local7 = (_local15 - _local11.x); _local8 = (_local16 - _local11.y); var _local31:Number = ((_local7 * _local28) + (_local8 * _local29)); _local6 = _arg1.points[0]; if (_local31 <= 0){ _local32 = _local11.x; _local33 = _local11.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local25; } else { if (_local31 >= _local30){ _local32 = _local27.x; _local33 = _local27.y; _local6.id.features.incidentEdge = b2_nullFeature; _local6.id.features.incidentVertex = _local26; } else { _local32 = ((_local28 * _local31) + _local11.x); _local33 = ((_local29 * _local31) + _local11.y); _local6.id.features.incidentEdge = _local18; _local6.id.features.incidentVertex = b2_nullFeature; }; }; _local7 = (_local15 - _local32); _local8 = (_local16 - _local33); _local17 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local7 = (_local7 / _local17); _local8 = (_local8 / _local17); if (_local17 > _local20){ return; }; _arg1.pointCount = 1; _local12 = _arg3.R; _arg1.normal.x = ((_local12.col1.x * _local7) + (_local12.col2.x * _local8)); _arg1.normal.y = ((_local12.col1.y * _local7) + (_local12.col2.y * _local8)); _local9 = (_local13 - (_local20 * _arg1.normal.x)); _local10 = (_local14 - (_local20 * _arg1.normal.y)); _local7 = (_local9 - _arg3.position.x); _local8 = (_local10 - _arg3.position.y); _local12 = _arg3.R; _local6.localPoint1.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint1.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local7 = (_local9 - _arg5.position.x); _local8 = (_local10 - _arg5.position.y); _local12 = _arg5.R; _local6.localPoint2.x = ((_local7 * _local12.col1.x) + (_local8 * _local12.col1.y)); _local6.localPoint2.y = ((_local7 * _local12.col2.x) + (_local8 * _local12.col2.y)); _local6.separation = (_local17 - _local20); _local6.id.features.referenceEdge = 0; _local6.id.features.flip = 0; } } }//package Box2D.Collision
Section 15
//b2ContactID (Box2D.Collision.b2ContactID) package Box2D.Collision { public class b2ContactID { public var _key:uint; public var features:Features; public function b2ContactID(){ features = new Features(); super(); features._m_id = this; } public function Set(_arg1:b2ContactID):void{ key = _arg1._key; } public function Copy():b2ContactID{ var _local1:b2ContactID = new b2ContactID(); _local1.key = key; return (_local1); } public function set key(_arg1:uint):void{ _key = _arg1; features._referenceEdge = (_key & 0xFF); features._incidentEdge = (((_key & 0xFF00) >> 8) & 0xFF); features._incidentVertex = (((_key & 0xFF0000) >> 16) & 0xFF); features._flip = (((_key & 4278190080) >> 24) & 0xFF); } public function get key():uint{ return (_key); } } }//package Box2D.Collision
Section 16
//b2ContactPoint (Box2D.Collision.b2ContactPoint) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2ContactPoint { public var friction:Number; public var separation:Number; public var normal:b2Vec2; public var position:b2Vec2; public var restitution:Number; public var shape1:b2Shape; public var shape2:b2Shape; public var id:b2ContactID; public var velocity:b2Vec2; public function b2ContactPoint(){ position = new b2Vec2(); velocity = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 17
//b2Distance (Box2D.Collision.b2Distance) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Distance { private static var s_p2s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_p1s:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var s_points:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2()]; private static var gPoint:b2Point = new b2Point(); public static var g_GJK_Iterations:int = 0; public static function InPoints(_arg1:b2Vec2, _arg2:Array, _arg3:int):Boolean{ var _local6:b2Vec2; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local4:Number = (100 * Number.MIN_VALUE); var _local5:int; while (_local5 < _arg3) { _local6 = _arg2[_local5]; _local7 = Math.abs((_arg1.x - _local6.x)); _local8 = Math.abs((_arg1.y - _local6.y)); _local9 = Math.max(Math.abs(_arg1.x), Math.abs(_local6.x)); _local10 = Math.max(Math.abs(_arg1.y), Math.abs(_local6.y)); if ((((_local7 < (_local4 * (_local9 + 1)))) && ((_local8 < (_local4 * (_local10 + 1)))))){ return (true); }; _local5++; }; return (false); } public static function DistanceGeneric(_arg1:b2Vec2, _arg2:b2Vec2, _arg3, _arg4:b2XForm, _arg5, _arg6:b2XForm):Number{ var _local7:b2Vec2; var _local15:Number; var _local16:Number; var _local17:b2Vec2; var _local18:b2Vec2; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:int; var _local8:Array = s_p1s; var _local9:Array = s_p2s; var _local10:Array = s_points; var _local11:int; _arg1.SetV(_arg3.GetFirstVertex(_arg4)); _arg2.SetV(_arg5.GetFirstVertex(_arg6)); var _local12:Number = 0; var _local13 = 20; var _local14:int; while (_local14 < _local13) { _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local17 = _arg3.Support(_arg4, _local15, _local16); _local18 = _arg5.Support(_arg6, -(_local15), -(_local16)); _local12 = ((_local15 * _local15) + (_local16 * _local16)); _local19 = (_local18.x - _local17.x); _local20 = (_local18.y - _local17.y); _local21 = ((_local15 * _local19) + (_local16 * _local20)); if ((_local12 - _local21) <= (0.01 * _local12)){ if (_local11 == 0){ _arg1.SetV(_local17); _arg2.SetV(_local18); }; g_GJK_Iterations = _local14; return (Math.sqrt(_local12)); }; switch (_local11){ case 0: _local7 = _local8[0]; _local7.SetV(_local17); _local7 = _local9[0]; _local7.SetV(_local18); _local7 = _local10[0]; _local7.x = _local19; _local7.y = _local20; _arg1.SetV(_local8[0]); _arg2.SetV(_local9[0]); _local11++; break; case 1: _local7 = _local8[1]; _local7.SetV(_local17); _local7 = _local9[1]; _local7.SetV(_local18); _local7 = _local10[1]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessTwo(_arg1, _arg2, _local8, _local9, _local10); break; case 2: _local7 = _local8[2]; _local7.SetV(_local17); _local7 = _local9[2]; _local7.SetV(_local18); _local7 = _local10[2]; _local7.x = _local19; _local7.y = _local20; _local11 = ProcessThree(_arg1, _arg2, _local8, _local9, _local10); break; }; if (_local11 == 3){ g_GJK_Iterations = _local14; return (0); }; _local22 = -(Number.MAX_VALUE); _local23 = 0; while (_local23 < _local11) { _local7 = _local10[_local23]; _local22 = b2Math.b2Max(_local22, ((_local7.x * _local7.x) + (_local7.y * _local7.y))); _local23++; }; if ((((_local11 == 3)) || ((_local12 <= ((100 * Number.MIN_VALUE) * _local22))))){ g_GJK_Iterations = _local14; _local15 = (_arg2.x - _arg1.x); _local16 = (_arg2.y - _arg1.y); _local12 = ((_local15 * _local15) + (_local16 * _local16)); return (Math.sqrt(_local12)); }; _local14++; }; g_GJK_Iterations = _local13; return (Math.sqrt(_local12)); } public static function DistanceCC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2CircleShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local19:Number; var _local20:Number; _local7 = _arg4.R; _local8 = _arg3.m_localPosition; var _local9:Number = (_arg4.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local10:Number = (_arg4.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); _local7 = _arg6.R; _local8 = _arg5.m_localPosition; var _local11:Number = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); var _local12:Number = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:Number = ((_local13 * _local13) + (_local14 * _local14)); var _local16:Number = (_arg3.m_radius - b2Settings.b2_toiSlop); var _local17:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); var _local18:Number = (_local16 + _local17); if (_local15 > (_local18 * _local18)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _local20 = (_local19 - _local18); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = (_local11 - (_local17 * _local13)); _arg2.y = (_local12 - (_local17 * _local14)); return (_local20); }; if (_local15 > (Number.MIN_VALUE * Number.MIN_VALUE)){ _local19 = Math.sqrt(_local15); _local13 = (_local13 / _local19); _local14 = (_local14 / _local19); _arg1.x = (_local9 + (_local16 * _local13)); _arg1.y = (_local10 + (_local16 * _local14)); _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); }; _arg1.x = _local9; _arg1.y = _local10; _arg2.x = _arg1.x; _arg2.y = _arg1.y; return (0); } public static function ProcessThree(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local6:b2Vec2; var _local7:b2Vec2; var _local8:b2Vec2; var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local12:b2Vec2; var _local13:b2Vec2; var _local35:Number; _local6 = _arg5[0]; _local7 = _arg5[1]; _local8 = _arg5[2]; _local9 = _arg3[0]; _local10 = _arg3[1]; _local11 = _arg3[2]; _local12 = _arg4[0]; _local13 = _arg4[1]; var _local14:b2Vec2 = _arg4[2]; var _local15:Number = _local6.x; var _local16:Number = _local6.y; var _local17:Number = _local7.x; var _local18:Number = _local7.y; var _local19:Number = _local8.x; var _local20:Number = _local8.y; var _local21:Number = (_local17 - _local15); var _local22:Number = (_local18 - _local16); var _local23:Number = (_local19 - _local15); var _local24:Number = (_local20 - _local16); var _local25:Number = (_local19 - _local17); var _local26:Number = (_local20 - _local18); var _local27:Number = -(((_local15 * _local21) + (_local16 * _local22))); var _local28:Number = ((_local17 * _local21) + (_local18 * _local22)); var _local29:Number = -(((_local15 * _local23) + (_local16 * _local24))); var _local30:Number = ((_local19 * _local23) + (_local20 * _local24)); var _local31:Number = -(((_local17 * _local25) + (_local18 * _local26))); var _local32:Number = ((_local19 * _local25) + (_local20 * _local26)); if ((((_local30 <= 0)) && ((_local32 <= 0)))){ _arg1.SetV(_local11); _arg2.SetV(_local14); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (1); }; var _local33:Number = ((_local21 * _local24) - (_local22 * _local23)); var _local34:Number = (_local33 * ((_local15 * _local18) - (_local16 * _local17))); var _local36:Number = (_local33 * ((_local17 * _local20) - (_local18 * _local19))); if ((((((((_local36 <= 0)) && ((_local31 >= 0)))) && ((_local32 >= 0)))) && (((_local31 + _local32) > 0)))){ _local35 = (_local31 / (_local31 + _local32)); _arg1.x = (_local10.x + (_local35 * (_local11.x - _local10.x))); _arg1.y = (_local10.y + (_local35 * (_local11.y - _local10.y))); _arg2.x = (_local13.x + (_local35 * (_local14.x - _local13.x))); _arg2.y = (_local13.y + (_local35 * (_local14.y - _local13.y))); _local9.SetV(_local11); _local12.SetV(_local14); _local6.SetV(_local8); return (2); }; var _local37:Number = (_local33 * ((_local19 * _local16) - (_local20 * _local15))); if ((((((((_local37 <= 0)) && ((_local29 >= 0)))) && ((_local30 >= 0)))) && (((_local29 + _local30) > 0)))){ _local35 = (_local29 / (_local29 + _local30)); _arg1.x = (_local9.x + (_local35 * (_local11.x - _local9.x))); _arg1.y = (_local9.y + (_local35 * (_local11.y - _local9.y))); _arg2.x = (_local12.x + (_local35 * (_local14.x - _local12.x))); _arg2.y = (_local12.y + (_local35 * (_local14.y - _local12.y))); _local10.SetV(_local11); _local13.SetV(_local14); _local7.SetV(_local8); return (2); }; var _local38:Number = ((_local36 + _local37) + _local34); _local38 = (1 / _local38); var _local39:Number = (_local36 * _local38); var _local40:Number = (_local37 * _local38); var _local41:Number = ((1 - _local39) - _local40); _arg1.x = (((_local39 * _local9.x) + (_local40 * _local10.x)) + (_local41 * _local11.x)); _arg1.y = (((_local39 * _local9.y) + (_local40 * _local10.y)) + (_local41 * _local11.y)); _arg2.x = (((_local39 * _local12.x) + (_local40 * _local13.x)) + (_local41 * _local14.x)); _arg2.y = (((_local39 * _local12.y) + (_local40 * _local13.y)) + (_local41 * _local14.y)); return (3); } public static function DistancePC(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2PolygonShape, _arg4:b2XForm, _arg5:b2CircleShape, _arg6:b2XForm):Number{ var _local7:b2Mat22; var _local8:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local9:b2Point = gPoint; _local8 = _arg5.m_localPosition; _local7 = _arg6.R; _local9.p.x = (_arg6.position.x + ((_local7.col1.x * _local8.x) + (_local7.col2.x * _local8.y))); _local9.p.y = (_arg6.position.y + ((_local7.col1.y * _local8.x) + (_local7.col2.y * _local8.y))); var _local10:Number = DistanceGeneric(_arg1, _arg2, _arg3, _arg4, _local9, b2Math.b2XForm_identity); var _local11:Number = (_arg5.m_radius - b2Settings.b2_toiSlop); if (_local10 > _local11){ _local10 = (_local10 - _local11); _local12 = (_arg2.x - _arg1.x); _local13 = (_arg2.y - _arg1.y); _local14 = Math.sqrt(((_local12 * _local12) + (_local13 * _local13))); _local12 = (_local12 / _local14); _local13 = (_local13 / _local14); _arg2.x = (_arg2.x - (_local11 * _local12)); _arg2.y = (_arg2.y - (_local11 * _local13)); } else { _local10 = 0; _arg2.x = _arg1.x; _arg2.y = _arg1.y; }; return (_local10); } public static function Distance(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Shape, _arg4:b2XForm, _arg5:b2Shape, _arg6:b2XForm):Number{ var _local7:int = _arg3.m_type; var _local8:int = _arg5.m_type; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistanceCC(_arg1, _arg2, (_arg3 as b2CircleShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_circleShape)))){ return (DistancePC(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2CircleShape), _arg6)); }; if ((((_local7 == b2Shape.e_circleShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistancePC(_arg2, _arg1, (_arg5 as b2PolygonShape), _arg6, (_arg3 as b2CircleShape), _arg4)); }; if ((((_local7 == b2Shape.e_polygonShape)) && ((_local8 == b2Shape.e_polygonShape)))){ return (DistanceGeneric(_arg1, _arg2, (_arg3 as b2PolygonShape), _arg4, (_arg5 as b2PolygonShape), _arg6)); }; return (0); } public static function ProcessTwo(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:Array, _arg4:Array, _arg5:Array):int{ var _local9:b2Vec2; var _local10:b2Vec2; var _local11:b2Vec2; var _local17:Number; var _local6:b2Vec2 = _arg5[0]; var _local7:b2Vec2 = _arg5[1]; var _local8:b2Vec2 = _arg3[0]; _local9 = _arg3[1]; _local10 = _arg4[0]; _local11 = _arg4[1]; var _local12:Number = -(_local7.x); var _local13:Number = -(_local7.y); var _local14:Number = (_local6.x - _local7.x); var _local15:Number = (_local6.y - _local7.y); var _local16:Number = Math.sqrt(((_local14 * _local14) + (_local15 * _local15))); _local14 = (_local14 / _local16); _local15 = (_local15 / _local16); _local17 = ((_local12 * _local14) + (_local13 * _local15)); if ((((_local17 <= 0)) || ((_local16 < Number.MIN_VALUE)))){ _arg1.SetV(_local9); _arg2.SetV(_local11); _local8.SetV(_local9); _local10.SetV(_local11); _local6.SetV(_local7); return (1); }; _local17 = (_local17 / _local16); _arg1.x = (_local9.x + (_local17 * (_local8.x - _local9.x))); _arg1.y = (_local9.y + (_local17 * (_local8.y - _local9.y))); _arg2.x = (_local11.x + (_local17 * (_local10.x - _local11.x))); _arg2.y = (_local11.y + (_local17 * (_local10.y - _local11.y))); return (2); } } }//package Box2D.Collision
Section 18
//b2Manifold (Box2D.Collision.b2Manifold) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Manifold { public var pointCount:int;// = 0 public var normal:b2Vec2; public var points:Array; public function b2Manifold(){ points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ManifoldPoint(); _local1++; }; normal = new b2Vec2(); } public function Set(_arg1:b2Manifold):void{ pointCount = _arg1.pointCount; var _local2:int; while (_local2 < b2Settings.b2_maxManifoldPoints) { (points[_local2] as b2ManifoldPoint).Set(_arg1.points[_local2]); _local2++; }; normal.SetV(_arg1.normal); } public function Reset():void{ var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { (points[_local1] as b2ManifoldPoint).Reset(); _local1++; }; normal.SetZero(); pointCount = 0; } } }//package Box2D.Collision
Section 19
//b2ManifoldPoint (Box2D.Collision.b2ManifoldPoint) package Box2D.Collision { import Box2D.Common.Math.*; public class b2ManifoldPoint { public var separation:Number; public var localPoint2:b2Vec2; public var normalImpulse:Number; public var tangentImpulse:Number; public var localPoint1:b2Vec2; public var id:b2ContactID; public function b2ManifoldPoint(){ localPoint1 = new b2Vec2(); localPoint2 = new b2Vec2(); id = new b2ContactID(); super(); } public function Set(_arg1:b2ManifoldPoint):void{ localPoint1.SetV(_arg1.localPoint1); localPoint2.SetV(_arg1.localPoint2); separation = _arg1.separation; normalImpulse = _arg1.normalImpulse; tangentImpulse = _arg1.tangentImpulse; id.key = _arg1.id.key; } public function Reset():void{ localPoint1.SetZero(); localPoint2.SetZero(); separation = 0; normalImpulse = 0; tangentImpulse = 0; id.key = 0; } } }//package Box2D.Collision
Section 20
//b2OBB (Box2D.Collision.b2OBB) package Box2D.Collision { import Box2D.Common.Math.*; public class b2OBB { public var R:b2Mat22; public var center:b2Vec2; public var extents:b2Vec2; public function b2OBB(){ R = new b2Mat22(); center = new b2Vec2(); extents = new b2Vec2(); super(); } } }//package Box2D.Collision
Section 21
//b2Pair (Box2D.Collision.b2Pair) package Box2D.Collision { import Box2D.Common.*; public class b2Pair { public var proxyId1:uint; public var userData;// = null public var proxyId2:uint; public var status:uint; public var next:uint; public static var e_pairFinal:uint = 4; public static var b2_tableMask:int = (b2_tableCapacity - 1); public static var e_pairRemoved:uint = 2; public static var b2_nullPair:uint = b2Settings.USHRT_MAX; public static var e_pairBuffered:uint = 1; public static var b2_nullProxy:uint = b2Settings.USHRT_MAX; public static var b2_tableCapacity:int = b2Settings.b2_maxPairs; public function SetBuffered():void{ status = (status | e_pairBuffered); } public function IsBuffered():Boolean{ return (((status & e_pairBuffered) == e_pairBuffered)); } public function IsFinal():Boolean{ return (((status & e_pairFinal) == e_pairFinal)); } public function ClearRemoved():void{ status = (status & ~(e_pairRemoved)); } public function SetFinal():void{ status = (status | e_pairFinal); } public function IsRemoved():Boolean{ return (((status & e_pairRemoved) == e_pairRemoved)); } public function ClearBuffered():void{ status = (status & ~(e_pairBuffered)); } public function SetRemoved():void{ status = (status | e_pairRemoved); } } }//package Box2D.Collision
Section 22
//b2PairCallback (Box2D.Collision.b2PairCallback) package Box2D.Collision { public class b2PairCallback { public function PairRemoved(_arg1, _arg2, _arg3):void{ } public function PairAdded(_arg1, _arg2){ return (null); } } }//package Box2D.Collision
Section 23
//b2PairManager (Box2D.Collision.b2PairManager) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2PairManager { public var m_pairCount:int; public var m_pairBuffer:Array; public var m_hashTable:Array; public var m_callback:b2PairCallback; public var m_pairs:Array; public var m_pairBufferCount:int; public var m_broadPhase:b2BroadPhase; public var m_freePair:uint; public function b2PairManager(){ var _local1:uint; super(); m_hashTable = new Array(b2Pair.b2_tableCapacity); _local1 = 0; while (_local1 < b2Pair.b2_tableCapacity) { m_hashTable[_local1] = b2Pair.b2_nullPair; _local1++; }; m_pairs = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1] = new b2Pair(); _local1++; }; m_pairBuffer = new Array(b2Settings.b2_maxPairs); _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairBuffer[_local1] = new b2BufferedPair(); _local1++; }; _local1 = 0; while (_local1 < b2Settings.b2_maxPairs) { m_pairs[_local1].proxyId1 = b2Pair.b2_nullProxy; m_pairs[_local1].proxyId2 = b2Pair.b2_nullProxy; m_pairs[_local1].userData = null; m_pairs[_local1].status = 0; m_pairs[_local1].next = (_local1 + 1); _local1++; }; m_pairs[int((b2Settings.b2_maxPairs - 1))].next = b2Pair.b2_nullPair; m_pairCount = 0; m_pairBufferCount = 0; } private function FindHash(_arg1:uint, _arg2:uint, _arg3:uint):b2Pair{ var _local4:b2Pair; var _local5:uint = m_hashTable[_arg3]; _local4 = m_pairs[_local5]; while (((!((_local5 == b2Pair.b2_nullPair))) && ((Equals(_local4, _arg1, _arg2) == false)))) { _local5 = _local4.next; _local4 = m_pairs[_local5]; }; if (_local5 == b2Pair.b2_nullPair){ return (null); }; return (_local4); } private function Find(_arg1:uint, _arg2:uint):b2Pair{ var _local4:uint; if (_arg1 > _arg2){ _local4 = _arg1; _arg1 = _arg2; _arg2 = _local4; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); return (FindHash(_arg1, _arg2, _local3)); } private function ValidateBuffer():void{ } public function Commit():void{ var _local1:b2BufferedPair; var _local2:int; var _local5:b2Pair; var _local6:b2Proxy; var _local7:b2Proxy; var _local3:int; var _local4:Array = m_broadPhase.m_proxyPool; _local2 = 0; while (_local2 < m_pairBufferCount) { _local1 = m_pairBuffer[_local2]; _local5 = Find(_local1.proxyId1, _local1.proxyId2); _local5.ClearBuffered(); _local6 = _local4[_local5.proxyId1]; _local7 = _local4[_local5.proxyId2]; if (_local5.IsRemoved()){ if (_local5.IsFinal() == true){ m_callback.PairRemoved(_local6.userData, _local7.userData, _local5.userData); }; _local1 = m_pairBuffer[_local3]; _local1.proxyId1 = _local5.proxyId1; _local1.proxyId2 = _local5.proxyId2; _local3++; } else { if (_local5.IsFinal() == false){ _local5.userData = m_callback.PairAdded(_local6.userData, _local7.userData); _local5.SetFinal(); }; }; _local2++; }; _local2 = 0; while (_local2 < _local3) { _local1 = m_pairBuffer[_local2]; RemovePair(_local1.proxyId1, _local1.proxyId2); _local2++; }; m_pairBufferCount = 0; if (b2BroadPhase.s_validate){ ValidateTable(); }; } public function RemoveBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = Find(_arg1, _arg2); if (_local4 == null){ return; }; if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.SetRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function RemovePair(_arg1:uint, _arg2:uint){ var _local3:b2Pair; var _local7:uint; var _local8:uint; var _local9:*; if (_arg1 > _arg2){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; var _local4:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local5:uint = m_hashTable[_local4]; var _local6:b2Pair; while (_local5 != b2Pair.b2_nullPair) { if (Equals(m_pairs[_local5], _arg1, _arg2)){ _local8 = _local5; _local3 = m_pairs[_local5]; if (_local6){ _local6.next = _local3.next; } else { m_hashTable[_local4] = _local3.next; }; _local3 = m_pairs[_local8]; _local9 = _local3.userData; _local3.next = m_freePair; _local3.proxyId1 = b2Pair.b2_nullProxy; _local3.proxyId2 = b2Pair.b2_nullProxy; _local3.userData = null; _local3.status = 0; m_freePair = _local8; m_pairCount--; return (_local9); } else { _local6 = m_pairs[_local5]; _local5 = _local6.next; }; }; return (null); } public function Initialize(_arg1:b2BroadPhase, _arg2:b2PairCallback):void{ m_broadPhase = _arg1; m_callback = _arg2; } public function AddBufferedPair(_arg1:int, _arg2:int):void{ var _local3:b2BufferedPair; var _local4:b2Pair = AddPair(_arg1, _arg2); if (_local4.IsBuffered() == false){ _local4.SetBuffered(); _local3 = m_pairBuffer[m_pairBufferCount]; _local3.proxyId1 = _local4.proxyId1; _local3.proxyId2 = _local4.proxyId2; m_pairBufferCount++; }; _local4.ClearRemoved(); if (b2BroadPhase.s_validate){ ValidateBuffer(); }; } private function AddPair(_arg1:uint, _arg2:uint):b2Pair{ var _local6:uint; if (_arg1 > _arg2){ _local6 = _arg1; _arg1 = _arg2; _arg2 = _local6; }; var _local3:uint = (Hash(_arg1, _arg2) & b2Pair.b2_tableMask); var _local4 = FindHash(_arg1, _arg2, _local3); if (_local4 != null){ return (_local4); }; var _local5:uint = m_freePair; _local4 = m_pairs[_local5]; m_freePair = _local4.next; _local4.proxyId1 = _arg1; _local4.proxyId2 = _arg2; _local4.status = 0; _local4.userData = null; _local4.next = m_hashTable[_local3]; m_hashTable[_local3] = _local5; m_pairCount++; return (_local4); } private function ValidateTable():void{ } public static function EqualsPair(_arg1:b2BufferedPair, _arg2:b2BufferedPair):Boolean{ return ((((_arg1.proxyId1 == _arg2.proxyId1)) && ((_arg1.proxyId2 == _arg2.proxyId2)))); } public static function Hash(_arg1:uint, _arg2:uint):uint{ var _local3:uint = (((_arg2 << 16) & 4294901760) | _arg1); _local3 = (~(_local3) + ((_local3 << 15) & 4294934528)); _local3 = (_local3 ^ ((_local3 >> 12) & 1048575)); _local3 = (_local3 + ((_local3 << 2) & 4294967292)); _local3 = (_local3 ^ ((_local3 >> 4) & 268435455)); _local3 = (_local3 * 2057); _local3 = (_local3 ^ ((_local3 >> 16) & 0xFFFF)); return (_local3); } public static function Equals(_arg1:b2Pair, _arg2:uint, _arg3:uint):Boolean{ return ((((_arg1.proxyId1 == _arg2)) && ((_arg1.proxyId2 == _arg3)))); } } }//package Box2D.Collision
Section 24
//b2Point (Box2D.Collision.b2Point) package Box2D.Collision { import Box2D.Common.Math.*; public class b2Point { public var p:b2Vec2; public function b2Point(){ p = new b2Vec2(); super(); } public function GetFirstVertex(_arg1:b2XForm):b2Vec2{ return (p); } public function Support(_arg1:b2XForm, _arg2:Number, _arg3:Number):b2Vec2{ return (p); } } }//package Box2D.Collision
Section 25
//b2Proxy (Box2D.Collision.b2Proxy) package Box2D.Collision { public class b2Proxy { public var overlapCount:uint; public var userData;// = null public var lowerBounds:Array; public var upperBounds:Array; public var timeStamp:uint; public function b2Proxy(){ lowerBounds = [uint(0), uint(0)]; upperBounds = [uint(0), uint(0)]; super(); } public function GetNext():uint{ return (lowerBounds[0]); } public function IsValid():Boolean{ return (!((overlapCount == b2BroadPhase.b2_invalid))); } public function SetNext(_arg1:uint):void{ lowerBounds[0] = (_arg1 & 0xFFFF); } } }//package Box2D.Collision
Section 26
//b2Segment (Box2D.Collision.b2Segment) package Box2D.Collision { import Box2D.Common.Math.*; import Box2D.Common.*; public class b2Segment { public var p1:b2Vec2; public var p2:b2Vec2; public function b2Segment(){ p1 = new b2Vec2(); p2 = new b2Vec2(); super(); } public function TestSegment(_arg1:Array, _arg2:b2Vec2, _arg3:b2Segment, _arg4:Number):Boolean{ var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local5:b2Vec2 = _arg3.p1; var _local6:Number = (_arg3.p2.x - _local5.x); var _local7:Number = (_arg3.p2.y - _local5.y); var _local8:Number = (p2.x - p1.x); var _local9:Number = (p2.y - p1.y); var _local10:Number = _local9; var _local11:Number = -(_local8); var _local12:Number = (100 * Number.MIN_VALUE); var _local13:Number = -(((_local6 * _local10) + (_local7 * _local11))); if (_local13 > _local12){ _local14 = (_local5.x - p1.x); _local15 = (_local5.y - p1.y); _local16 = ((_local14 * _local10) + (_local15 * _local11)); if ((((0 <= _local16)) && ((_local16 <= (_arg4 * _local13))))){ _local17 = ((-(_local6) * _local15) + (_local7 * _local14)); if (((((-(_local12) * _local13) <= _local17)) && ((_local17 <= (_local13 * (1 + _local12)))))){ _local16 = (_local16 / _local13); _local18 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); _local10 = (_local10 / _local18); _local11 = (_local11 / _local18); _arg1[0] = _local16; _arg2.Set(_local10, _local11); return (true); }; }; }; return (false); } } }//package Box2D.Collision
Section 27
//b2TimeOfImpact (Box2D.Collision.b2TimeOfImpact) package Box2D.Collision { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Common.*; public class b2TimeOfImpact { public static var s_xf1:b2XForm = new b2XForm(); public static var s_xf2:b2XForm = new b2XForm(); public static var s_p1:b2Vec2 = new b2Vec2(); public static var s_p2:b2Vec2 = new b2Vec2(); public static function TimeOfImpact(_arg1:b2Shape, _arg2:b2Sweep, _arg3:b2Shape, _arg4:b2Sweep):Number{ var _local5:Number; var _local6:Number; var _local25:Number; var _local26:b2XForm; var _local27:b2XForm; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local7:Number = _arg1.m_sweepRadius; var _local8:Number = _arg3.m_sweepRadius; var _local9:Number = _arg2.t0; var _local10:Number = (_arg2.c.x - _arg2.c0.x); var _local11:Number = (_arg2.c.y - _arg2.c0.y); var _local12:Number = (_arg4.c.x - _arg4.c0.x); var _local13:Number = (_arg4.c.y - _arg4.c0.y); var _local14:Number = (_arg2.a - _arg2.a0); var _local15:Number = (_arg4.a - _arg4.a0); var _local16:Number = 0; var _local17:b2Vec2 = s_p1; var _local18:b2Vec2 = s_p2; var _local19 = 20; var _local20:int; var _local21:Number = 0; var _local22:Number = 0; var _local23:Number = 0; var _local24:Number = 0; while (true) { _local25 = (((1 - _local16) * _local9) + _local16); _local26 = s_xf1; _local27 = s_xf2; _arg2.GetXForm(_local26, _local25); _arg4.GetXForm(_local27, _local25); _local23 = b2Distance.Distance(_local17, _local18, _arg1, _local26, _arg3, _local27); if (_local20 == 0){ if (_local23 > (2 * b2Settings.b2_toiSlop)){ _local24 = (1.5 * b2Settings.b2_toiSlop); } else { _local5 = (0.05 * b2Settings.b2_toiSlop); _local6 = (_local23 - (0.5 * b2Settings.b2_toiSlop)); _local24 = ((_local5 > _local6)) ? _local5 : _local6; }; }; if (((((_local23 - _local24) < (0.05 * b2Settings.b2_toiSlop))) || ((_local20 == _local19)))){ break; }; _local21 = (_local18.x - _local17.x); _local22 = (_local18.y - _local17.y); _local28 = Math.sqrt(((_local21 * _local21) + (_local22 * _local22))); _local21 = (_local21 / _local28); _local22 = (_local22 / _local28); _local29 = ((((_local21 * (_local10 - _local12)) + (_local22 * (_local11 - _local13))) + (((_local14 < 0)) ? -(_local14) : _local14 * _local7)) + (((_local15 < 0)) ? -(_local15) : _local15 * _local8)); if (_local29 == 0){ _local16 = 1; break; }; _local30 = ((_local23 - _local24) / _local29); _local31 = (_local16 + _local30); if ((((_local31 < 0)) || ((1 < _local31)))){ _local16 = 1; break; }; if (_local31 < ((1 + (100 * Number.MIN_VALUE)) * _local16)){ break; }; _local16 = _local31; _local20++; }; return (_local16); } } }//package Box2D.Collision
Section 28
//ClipVertex (Box2D.Collision.ClipVertex) package Box2D.Collision { import Box2D.Common.Math.*; public class ClipVertex { public var id:b2ContactID; public var v:b2Vec2; public function ClipVertex(){ v = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Collision
Section 29
//Features (Box2D.Collision.Features) package Box2D.Collision { public class Features { public var _referenceEdge:int; public var _incidentEdge:int; public var _flip:int; public var _incidentVertex:int; public var _m_id:b2ContactID; public function get referenceEdge():int{ return (_referenceEdge); } public function set incidentVertex(_arg1:int):void{ _incidentVertex = _arg1; _m_id._key = ((_m_id._key & 4278255615) | ((_incidentVertex << 16) & 0xFF0000)); } public function get flip():int{ return (_flip); } public function get incidentEdge():int{ return (_incidentEdge); } public function set referenceEdge(_arg1:int):void{ _referenceEdge = _arg1; _m_id._key = ((_m_id._key & 4294967040) | (_referenceEdge & 0xFF)); } public function get incidentVertex():int{ return (_incidentVertex); } public function set flip(_arg1:int):void{ _flip = _arg1; _m_id._key = ((_m_id._key & 0xFFFFFF) | ((_flip << 24) & 4278190080)); } public function set incidentEdge(_arg1:int):void{ _incidentEdge = _arg1; _m_id._key = ((_m_id._key & 4294902015) | ((_incidentEdge << 8) & 0xFF00)); } } }//package Box2D.Collision
Section 30
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function Set(_arg1:Number):void{ var _local2:Number; _local2 = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local4:Number; var _local6:Number; _local2 = col1.x; var _local3:Number = col2.x; _local4 = col1.y; var _local5:Number = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number = col1.x; var _local5:Number = col2.x; var _local6:Number = col1.y; var _local7:Number = col2.y; var _local8:Number = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 31
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:* = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number = (_arg1.x - _arg2.x); var _local4:Number = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); var _local4:b2Vec2 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); var _local5:b2Mat22 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 32
//b2Sweep (Box2D.Common.Math.b2Sweep) package Box2D.Common.Math { public class b2Sweep { public var localCenter:b2Vec2; public var a:Number; public var c:b2Vec2; public var a0:Number; public var c0:b2Vec2; public var t0:Number; public function b2Sweep(){ localCenter = new b2Vec2(); c0 = new b2Vec2(); c = new b2Vec2(); super(); } public function Advance(_arg1:Number):void{ var _local2:Number; if ((((t0 < _arg1)) && (((1 - t0) > Number.MIN_VALUE)))){ _local2 = ((_arg1 - t0) / (1 - t0)); c0.x = (((1 - _local2) * c0.x) + (_local2 * c.x)); c0.y = (((1 - _local2) * c0.y) + (_local2 * c.y)); a0 = (((1 - _local2) * a0) + (_local2 * a)); t0 = _arg1; }; } public function GetXForm(_arg1:b2XForm, _arg2:Number):void{ var _local4:Number; var _local5:Number; if ((1 - t0) > Number.MIN_VALUE){ _local4 = ((_arg2 - t0) / (1 - t0)); _arg1.position.x = (((1 - _local4) * c0.x) + (_local4 * c.x)); _arg1.position.y = (((1 - _local4) * c0.y) + (_local4 * c.y)); _local5 = (((1 - _local4) * a0) + (_local4 * a)); _arg1.R.Set(_local5); } else { _arg1.position.SetV(c); _arg1.R.Set(a); }; var _local3:b2Mat22 = _arg1.R; _arg1.position.x = (_arg1.position.x - ((_local3.col1.x * localCenter.x) + (_local3.col2.x * localCenter.y))); _arg1.position.y = (_arg1.position.y - ((_local3.col1.y * localCenter.x) + (_local3.col2.y * localCenter.y))); } } }//package Box2D.Common.Math
Section 33
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var y:Number; public var x:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function MulM(_arg1:b2Mat22):void{ var _local2:Number = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function SetZero():void{ x = 0; y = 0; } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function Normalize():Number{ var _local1:Number = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; var _local2:Number = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function CrossVF(_arg1:Number):void{ var _local2:Number = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossFV(_arg1:Number):void{ var _local2:Number = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 34
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var position:b2Vec2; public var R:b2Mat22; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 35
//b2Color (Box2D.Common.b2Color) package Box2D.Common { import Box2D.Common.Math.*; public class b2Color { private var _r:uint;// = 0 private var _g:uint;// = 0 private var _b:uint;// = 0 public function b2Color(_arg1:Number, _arg2:Number, _arg3:Number){ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function Set(_arg1:Number, _arg2:Number, _arg3:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); _g = uint((0xFF * b2Math.b2Clamp(_arg2, 0, 1))); _b = uint((0xFF * b2Math.b2Clamp(_arg3, 0, 1))); } public function set b(_arg1:Number):void{ _b = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function get color():uint{ return (((_r | (_g << 8)) | (_b << 16))); } public function set r(_arg1:Number):void{ _r = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } public function set g(_arg1:Number):void{ _g = uint((0xFF * b2Math.b2Clamp(_arg1, 0, 1))); } } }//package Box2D.Common
Section 36
//b2Settings (Box2D.Common.b2Settings) package Box2D.Common { import Box2D.Common.Math.*; public class b2Settings { public static const b2_angularSleepTolerance:Number = 0.0111111111111111; public static const b2_linearSleepTolerance:Number = 0.01; public static const b2_angularSlop:Number = 0.0349065850398866; public static const b2_linearSlop:Number = 0.005; public static const b2_pi:Number = 3.14159265358979; public static const b2_maxProxies:int = 0x0200; public static const b2_maxAngularVelocitySquared:Number = 62500; public static const b2_maxPolygonVertices:int = 20; public static const b2_velocityThreshold:Number = 1; public static const b2_contactBaumgarte:Number = 0.2; public static const b2_maxPairs:int = 4096; public static const b2_maxTOIContactsPerIsland:int = 32; public static const b2_timeToSleep:Number = 0.5; public static const b2_maxManifoldPoints:int = 2; public static const b2_maxAngularVelocity:Number = 250; public static const b2_maxAngularCorrection:Number = 0.139626340159546; public static const USHRT_MAX:int = 0xFFFF; public static const b2_maxLinearVelocity:Number = 200; public static const b2_maxLinearCorrection:Number = 0.2; public static const b2_toiSlop:Number = 0.04; public static const b2_maxLinearVelocitySquared:Number = 40000; public static function b2Assert(_arg1:Boolean):void{ var _local2:b2Vec2; if (!_arg1){ _local2.x++; }; } } }//package Box2D.Common
Section 37
//b2CircleContact (Box2D.Dynamics.Contacts.b2CircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2CircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2CircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local8:b2ManifoldPoint; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollideCircles(m_manifold, (m_shape1 as b2CircleShape), _local5.m_xf, (m_shape2 as b2CircleShape), _local6.m_xf); var _local7:b2ContactPoint = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ m_manifoldCount = 1; _local8 = m_manifold.points[0]; if (m0.pointCount == 0){ _local8.normalImpulse = 0; _local8.tangentImpulse = 0; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Add(_local7); }; } else { _local4 = m0.points[0]; _local8.normalImpulse = _local4.normalImpulse; _local8.tangentImpulse = _local4.tangentImpulse; if (_arg1){ _local7.position = _local5.GetWorldPoint(_local8.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local8.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local8.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local8.separation; _local7.id.key = _local8.id._key; _arg1.Persist(_local7); }; }; } else { m_manifoldCount = 0; if ((((m0.pointCount > 0)) && (_arg1))){ _local4 = m0.points[0]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2CircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 38
//b2Contact (Box2D.Dynamics.Contacts.b2Contact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2Contact { public var m_shape1:b2Shape; public var m_shape2:b2Shape; public var m_prev:b2Contact; public var m_toi:Number; public var m_next:b2Contact; public var m_friction:Number; public var m_manifoldCount:int; public var m_node1:b2ContactEdge; public var m_node2:b2ContactEdge; public var m_restitution:Number; public var m_flags:uint; public static var e_toiFlag:uint = 8; public static var e_nonSolidFlag:uint = 1; public static var e_slowFlag:uint = 2; public static var e_islandFlag:uint = 4; public static var s_registers:Array; public static var s_initialized:Boolean = false; public function b2Contact(_arg1:b2Shape=null, _arg2:b2Shape=null){ m_node1 = new b2ContactEdge(); m_node2 = new b2ContactEdge(); super(); m_flags = 0; if (((!(_arg1)) || (!(_arg2)))){ m_shape1 = null; m_shape2 = null; return; }; if (((_arg1.IsSensor()) || (_arg2.IsSensor()))){ m_flags = (m_flags | e_nonSolidFlag); }; m_shape1 = _arg1; m_shape2 = _arg2; m_manifoldCount = 0; m_friction = Math.sqrt((m_shape1.m_friction * m_shape2.m_friction)); m_restitution = b2Math.b2Max(m_shape1.m_restitution, m_shape2.m_restitution); m_prev = null; m_next = null; m_node1.contact = null; m_node1.prev = null; m_node1.next = null; m_node1.other = null; m_node2.contact = null; m_node2.prev = null; m_node2.next = null; m_node2.other = null; } public function IsSolid():Boolean{ return (((m_flags & e_nonSolidFlag) == 0)); } public function GetShape1():b2Shape{ return (m_shape1); } public function GetShape2():b2Shape{ return (m_shape2); } public function GetNext():b2Contact{ return (m_next); } public function GetManifoldCount():int{ return (m_manifoldCount); } public function GetManifolds():Array{ return (null); } public function Update(_arg1:b2ContactListener):void{ var _local2:int = m_manifoldCount; Evaluate(_arg1); var _local3:int = m_manifoldCount; var _local4:b2Body = m_shape1.m_body; var _local5:b2Body = m_shape2.m_body; if ((((_local3 == 0)) && ((_local2 > 0)))){ _local4.WakeUp(); _local5.WakeUp(); }; if (((((((_local4.IsStatic()) || (_local4.IsBullet()))) || (_local5.IsStatic()))) || (_local5.IsBullet()))){ m_flags = (m_flags & ~(e_slowFlag)); } else { m_flags = (m_flags | e_slowFlag); }; } public function Evaluate(_arg1:b2ContactListener):void{ } public static function InitializeRegisters():void{ var _local2:int; s_registers = new Array(b2Shape.e_shapeTypeCount); var _local1:int; while (_local1 < b2Shape.e_shapeTypeCount) { s_registers[_local1] = new Array(b2Shape.e_shapeTypeCount); _local2 = 0; while (_local2 < b2Shape.e_shapeTypeCount) { s_registers[_local1][_local2] = new b2ContactRegister(); _local2++; }; _local1++; }; AddType(b2CircleContact.Create, b2CircleContact.Destroy, b2Shape.e_circleShape, b2Shape.e_circleShape); AddType(b2PolyAndCircleContact.Create, b2PolyAndCircleContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_circleShape); AddType(b2PolygonContact.Create, b2PolygonContact.Destroy, b2Shape.e_polygonShape, b2Shape.e_polygonShape); } public static function Destroy(_arg1:b2Contact, _arg2):void{ if (_arg1.m_manifoldCount > 0){ _arg1.m_shape1.m_body.WakeUp(); _arg1.m_shape2.m_body.WakeUp(); }; var _local3:int = _arg1.m_shape1.m_type; var _local4:int = _arg1.m_shape2.m_type; var _local5:b2ContactRegister = s_registers[_local3][_local4]; var _local6:Function = _local5.destroyFcn; _local6(_arg1, _arg2); } public static function AddType(_arg1:Function, _arg2:Function, _arg3:int, _arg4:int):void{ s_registers[_arg3][_arg4].createFcn = _arg1; s_registers[_arg3][_arg4].destroyFcn = _arg2; s_registers[_arg3][_arg4].primary = true; if (_arg3 != _arg4){ s_registers[_arg4][_arg3].createFcn = _arg1; s_registers[_arg4][_arg3].destroyFcn = _arg2; s_registers[_arg4][_arg3].primary = false; }; } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ var _local8:b2Contact; var _local9:int; var _local10:b2Manifold; if (s_initialized == false){ InitializeRegisters(); s_initialized = true; }; var _local4:int = _arg1.m_type; var _local5:int = _arg2.m_type; var _local6:b2ContactRegister = s_registers[_local4][_local5]; var _local7:Function = _local6.createFcn; if (_local7 != null){ if (_local6.primary){ return (_local7(_arg1, _arg2, _arg3)); }; _local8 = _local7(_arg2, _arg1, _arg3); _local9 = 0; while (_local9 < _local8.m_manifoldCount) { _local10 = _local8.GetManifolds()[_local9]; _local8.GetManifolds()[_local9].normal = _local10.normal.Negative(); _local9++; }; return (_local8); //unresolved jump }; return (null); } } }//package Box2D.Dynamics.Contacts
Section 39
//b2ContactConstraint (Box2D.Dynamics.Contacts.b2ContactConstraint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactConstraint { public var points:Array; public var normal:b2Vec2; public var restitution:Number; public var body1:b2Body; public var manifold:b2Manifold; public var body2:b2Body; public var friction:Number; public var pointCount:int; public function b2ContactConstraint(){ normal = new b2Vec2(); super(); points = new Array(b2Settings.b2_maxManifoldPoints); var _local1:int; while (_local1 < b2Settings.b2_maxManifoldPoints) { points[_local1] = new b2ContactConstraintPoint(); _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 40
//b2ContactConstraintPoint (Box2D.Dynamics.Contacts.b2ContactConstraintPoint) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; public class b2ContactConstraintPoint { public var r2:b2Vec2; public var separation:Number; public var positionImpulse:Number; public var normalImpulse:Number; public var tangentMass:Number; public var equalizedMass:Number; public var tangentImpulse:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var normalMass:Number; public var velocityBias:Number; public var r1:b2Vec2; public function b2ContactConstraintPoint(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); r1 = new b2Vec2(); r2 = new b2Vec2(); super(); } } }//package Box2D.Dynamics.Contacts
Section 41
//b2ContactEdge (Box2D.Dynamics.Contacts.b2ContactEdge) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2ContactEdge { public var other:b2Body; public var prev:b2ContactEdge; public var contact:b2Contact; public var next:b2ContactEdge; } }//package Box2D.Dynamics.Contacts
Section 42
//b2ContactRegister (Box2D.Dynamics.Contacts.b2ContactRegister) package Box2D.Dynamics.Contacts { public class b2ContactRegister { public var primary:Boolean; public var createFcn:Function; public var destroyFcn:Function; } }//package Box2D.Dynamics.Contacts
Section 43
//b2ContactResult (Box2D.Dynamics.Contacts.b2ContactResult) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; public class b2ContactResult { public var position:b2Vec2; public var shape1:b2Shape; public var shape2:b2Shape; public var normalImpulse:Number; public var normal:b2Vec2; public var tangentImpulse:Number; public var id:b2ContactID; public function b2ContactResult(){ position = new b2Vec2(); normal = new b2Vec2(); id = new b2ContactID(); super(); } } }//package Box2D.Dynamics.Contacts
Section 44
//b2ContactSolver (Box2D.Dynamics.Contacts.b2ContactSolver) package Box2D.Dynamics.Contacts { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2ContactSolver { public var m_constraintCount:int; public var m_constraints:Array; public var m_allocator; public var m_step:b2TimeStep; public function b2ContactSolver(_arg1:b2TimeStep, _arg2:Array, _arg3:int, _arg4){ var _local5:b2Contact; var _local6:int; var _local7:b2Vec2; var _local8:b2Mat22; var _local10:b2Body; var _local11:b2Body; var _local12:int; var _local13:Array; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:b2Manifold; var _local24:Number; var _local25:Number; var _local26:b2ContactConstraint; var _local27:uint; var _local28:b2ManifoldPoint; var _local29:b2ContactConstraintPoint; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; m_step = new b2TimeStep(); m_constraints = new Array(); super(); m_step.dt = _arg1.dt; m_step.inv_dt = _arg1.inv_dt; m_step.maxIterations = _arg1.maxIterations; m_allocator = _arg4; m_constraintCount = 0; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; m_constraintCount = (m_constraintCount + _local5.m_manifoldCount); _local6++; }; _local6 = 0; while (_local6 < m_constraintCount) { m_constraints[_local6] = new b2ContactConstraint(); _local6++; }; var _local9:int; _local6 = 0; while (_local6 < _arg3) { _local5 = _arg2[_local6]; _local10 = _local5.m_shape1.m_body; _local11 = _local5.m_shape2.m_body; _local12 = _local5.m_manifoldCount; _local13 = _local5.GetManifolds(); _local14 = _local5.m_friction; _local15 = _local5.m_restitution; _local16 = _local10.m_linearVelocity.x; _local17 = _local10.m_linearVelocity.y; _local18 = _local11.m_linearVelocity.x; _local19 = _local11.m_linearVelocity.y; _local20 = _local10.m_angularVelocity; _local21 = _local11.m_angularVelocity; _local22 = 0; while (_local22 < _local12) { _local23 = _local13[_local22]; _local24 = _local23.normal.x; _local25 = _local23.normal.y; _local26 = m_constraints[_local9]; _local26.body1 = _local10; _local26.body2 = _local11; _local26.manifold = _local23; _local26.normal.x = _local24; _local26.normal.y = _local25; _local26.pointCount = _local23.pointCount; _local26.friction = _local14; _local26.restitution = _local15; _local27 = 0; while (_local27 < _local26.pointCount) { _local28 = _local23.points[_local27]; _local29 = _local26.points[_local27]; _local29.normalImpulse = _local28.normalImpulse; _local29.tangentImpulse = _local28.tangentImpulse; _local29.separation = _local28.separation; _local29.positionImpulse = 0; _local29.localAnchor1.SetV(_local28.localPoint1); _local29.localAnchor2.SetV(_local28.localPoint2); _local8 = _local10.m_xf.R; _local32 = (_local28.localPoint1.x - _local10.m_sweep.localCenter.x); _local33 = (_local28.localPoint1.y - _local10.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local32) + (_local8.col2.x * _local33)); _local33 = ((_local8.col1.y * _local32) + (_local8.col2.y * _local33)); _local32 = _local30; _local29.r1.Set(_local32, _local33); _local8 = _local11.m_xf.R; _local34 = (_local28.localPoint2.x - _local11.m_sweep.localCenter.x); _local35 = (_local28.localPoint2.y - _local11.m_sweep.localCenter.y); _local30 = ((_local8.col1.x * _local34) + (_local8.col2.x * _local35)); _local35 = ((_local8.col1.y * _local34) + (_local8.col2.y * _local35)); _local34 = _local30; _local29.r2.Set(_local34, _local35); _local36 = ((_local32 * _local32) + (_local33 * _local33)); _local37 = ((_local34 * _local34) + (_local35 * _local35)); _local38 = ((_local32 * _local24) + (_local33 * _local25)); _local39 = ((_local34 * _local24) + (_local35 * _local25)); _local40 = (_local10.m_invMass + _local11.m_invMass); _local40 = (_local40 + ((_local10.m_invI * (_local36 - (_local38 * _local38))) + (_local11.m_invI * (_local37 - (_local39 * _local39))))); _local29.normalMass = (1 / _local40); _local41 = ((_local10.m_mass * _local10.m_invMass) + (_local11.m_mass * _local11.m_invMass)); _local41 = (_local41 + (((_local10.m_mass * _local10.m_invI) * (_local36 - (_local38 * _local38))) + ((_local11.m_mass * _local11.m_invI) * (_local37 - (_local39 * _local39))))); _local29.equalizedMass = (1 / _local41); _local42 = _local25; _local43 = -(_local24); _local44 = ((_local32 * _local42) + (_local33 * _local43)); _local45 = ((_local34 * _local42) + (_local35 * _local43)); _local46 = (_local10.m_invMass + _local11.m_invMass); _local46 = (_local46 + ((_local10.m_invI * (_local36 - (_local44 * _local44))) + (_local11.m_invI * (_local37 - (_local45 * _local45))))); _local29.tangentMass = (1 / _local46); _local29.velocityBias = 0; if (_local29.separation > 0){ _local29.velocityBias = (-60 * _local29.separation); }; _local30 = (((_local18 + (-(_local21) * _local35)) - _local16) - (-(_local20) * _local33)); _local31 = (((_local19 + (_local21 * _local34)) - _local17) - (_local20 * _local32)); _local47 = ((_local26.normal.x * _local30) + (_local26.normal.y * _local31)); if (_local47 < -(b2Settings.b2_velocityThreshold)){ _local29.velocityBias = (_local29.velocityBias + (-(_local26.restitution) * _local47)); }; _local27++; }; _local9++; _local22++; }; _local6++; }; } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2Mat22; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:int; var _local19:int; var _local20:b2ContactConstraintPoint; var _local21:Number; var _local22:Number; var _local23:b2ContactConstraintPoint; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_invMass; _local10 = _local7.m_invI; _local11 = _local8.m_invMass; _local12 = _local8.m_invI; _local13 = _local6.normal.x; _local14 = _local6.normal.y; _local15 = _local14; _local16 = -(_local13); if (_arg1.warmStarting){ _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local20 = _local6.points[_local18]; _local6.points[_local18].normalImpulse = (_local20.normalImpulse * _arg1.dtRatio); _local20.tangentImpulse = (_local20.tangentImpulse * _arg1.dtRatio); _local21 = ((_local20.normalImpulse * _local13) + (_local20.tangentImpulse * _local15)); _local22 = ((_local20.normalImpulse * _local14) + (_local20.tangentImpulse * _local16)); _local7.m_angularVelocity = (_local7.m_angularVelocity - (_local10 * ((_local20.r1.x * _local22) - (_local20.r1.y * _local21)))); _local7.m_linearVelocity.x = (_local7.m_linearVelocity.x - (_local9 * _local21)); _local7.m_linearVelocity.y = (_local7.m_linearVelocity.y - (_local9 * _local22)); _local8.m_angularVelocity = (_local8.m_angularVelocity + (_local12 * ((_local20.r2.x * _local22) - (_local20.r2.y * _local21)))); _local8.m_linearVelocity.x = (_local8.m_linearVelocity.x + (_local11 * _local21)); _local8.m_linearVelocity.y = (_local8.m_linearVelocity.y + (_local11 * _local22)); _local18++; }; } else { _local19 = _local6.pointCount; _local18 = 0; while (_local18 < _local19) { _local23 = _local6.points[_local18]; _local23.normalImpulse = 0; _local23.tangentImpulse = 0; _local18++; }; }; _local5++; }; } public function SolvePositionConstraints(_arg1:Number):Boolean{ var _local3:b2Mat22; var _local4:b2Vec2; var _local6:b2ContactConstraint; var _local7:b2Body; var _local8:b2Body; var _local9:b2Vec2; var _local10:Number; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:int; var _local21:b2ContactConstraintPoint; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local2:Number = 0; var _local5:int; while (_local5 < m_constraintCount) { _local6 = m_constraints[_local5]; _local7 = _local6.body1; _local8 = _local6.body2; _local9 = _local7.m_sweep.c; _local10 = _local7.m_sweep.a; _local11 = _local8.m_sweep.c; _local12 = _local8.m_sweep.a; _local13 = (_local7.m_mass * _local7.m_invMass); _local14 = (_local7.m_mass * _local7.m_invI); _local15 = (_local8.m_mass * _local8.m_invMass); _local16 = (_local8.m_mass * _local8.m_invI); _local17 = _local6.normal.x; _local18 = _local6.normal.y; _local19 = _local6.pointCount; _local20 = 0; while (_local20 < _local19) { _local21 = _local6.points[_local20]; _local3 = _local7.m_xf.R; _local4 = _local7.m_sweep.localCenter; _local22 = (_local21.localAnchor1.x - _local4.x); _local23 = (_local21.localAnchor1.y - _local4.y); _local26 = ((_local3.col1.x * _local22) + (_local3.col2.x * _local23)); _local23 = ((_local3.col1.y * _local22) + (_local3.col2.y * _local23)); _local22 = _local26; _local3 = _local8.m_xf.R; _local4 = _local8.m_sweep.localCenter; _local24 = (_local21.localAnchor2.x - _local4.x); _local25 = (_local21.localAnchor2.y - _local4.y); _local26 = ((_local3.col1.x * _local24) + (_local3.col2.x * _local25)); _local25 = ((_local3.col1.y * _local24) + (_local3.col2.y * _local25)); _local24 = _local26; _local27 = (_local9.x + _local22); _local28 = (_local9.y + _local23); _local29 = (_local11.x + _local24); _local30 = (_local11.y + _local25); _local31 = (_local29 - _local27); _local32 = (_local30 - _local28); _local33 = (((_local31 * _local17) + (_local32 * _local18)) + _local21.separation); _local2 = b2Math.b2Min(_local2, _local33); _local34 = (_arg1 * b2Math.b2Clamp((_local33 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0)); _local35 = (-(_local21.equalizedMass) * _local34); _local36 = _local21.positionImpulse; _local21.positionImpulse = b2Math.b2Max((_local36 + _local35), 0); _local35 = (_local21.positionImpulse - _local36); _local37 = (_local35 * _local17); _local38 = (_local35 * _local18); _local9.x = (_local9.x - (_local13 * _local37)); _local9.y = (_local9.y - (_local13 * _local38)); _local10 = (_local10 - (_local14 * ((_local22 * _local38) - (_local23 * _local37)))); _local7.m_sweep.a = _local10; _local7.SynchronizeTransform(); _local11.x = (_local11.x + (_local15 * _local37)); _local11.y = (_local11.y + (_local15 * _local38)); _local12 = (_local12 + (_local16 * ((_local24 * _local38) - (_local25 * _local37)))); _local8.m_sweep.a = _local12; _local8.SynchronizeTransform(); _local20++; }; _local5++; }; return ((_local2 >= (-1.5 * b2Settings.b2_linearSlop))); } public function SolveVelocityConstraints():void{ var _local1:int; var _local2:b2ContactConstraintPoint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:b2Mat22; var _local18:b2Vec2; var _local20:b2ContactConstraint; var _local21:b2Body; var _local22:b2Body; var _local23:Number; var _local24:Number; var _local25:b2Vec2; var _local26:b2Vec2; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:int; var _local38:Number; var _local19:int; while (_local19 < m_constraintCount) { _local20 = m_constraints[_local19]; _local21 = _local20.body1; _local22 = _local20.body2; _local23 = _local21.m_angularVelocity; _local24 = _local22.m_angularVelocity; _local25 = _local21.m_linearVelocity; _local26 = _local22.m_linearVelocity; _local27 = _local21.m_invMass; _local28 = _local21.m_invI; _local29 = _local22.m_invMass; _local30 = _local22.m_invI; _local31 = _local20.normal.x; _local32 = _local20.normal.y; _local33 = _local32; _local34 = -(_local31); _local35 = _local20.friction; _local37 = _local20.pointCount; _local1 = 0; while (_local1 < _local37) { _local2 = _local20.points[_local1]; _local7 = (((_local26.x + (-(_local24) * _local2.r2.y)) - _local25.x) - (-(_local23) * _local2.r1.y)); _local8 = (((_local26.y + (_local24 * _local2.r2.x)) - _local25.y) - (_local23 * _local2.r1.x)); _local9 = ((_local7 * _local31) + (_local8 * _local32)); _local11 = (-(_local2.normalMass) * (_local9 - _local2.velocityBias)); _local10 = ((_local7 * _local33) + (_local8 * _local34)); _local12 = (_local2.tangentMass * -(_local10)); _local13 = b2Math.b2Max((_local2.normalImpulse + _local11), 0); _local11 = (_local13 - _local2.normalImpulse); _local38 = (_local35 * _local2.normalImpulse); _local14 = b2Math.b2Clamp((_local2.tangentImpulse + _local12), -(_local38), _local38); _local12 = (_local14 - _local2.tangentImpulse); _local15 = ((_local11 * _local31) + (_local12 * _local33)); _local16 = ((_local11 * _local32) + (_local12 * _local34)); _local25.x = (_local25.x - (_local27 * _local15)); _local25.y = (_local25.y - (_local27 * _local16)); _local23 = (_local23 - (_local28 * ((_local2.r1.x * _local16) - (_local2.r1.y * _local15)))); _local26.x = (_local26.x + (_local29 * _local15)); _local26.y = (_local26.y + (_local29 * _local16)); _local24 = (_local24 + (_local30 * ((_local2.r2.x * _local16) - (_local2.r2.y * _local15)))); _local2.normalImpulse = _local13; _local2.tangentImpulse = _local14; _local1++; }; _local21.m_angularVelocity = _local23; _local22.m_angularVelocity = _local24; _local19++; }; } public function FinalizeVelocityConstraints():void{ var _local2:b2ContactConstraint; var _local3:b2Manifold; var _local4:int; var _local5:b2ManifoldPoint; var _local6:b2ContactConstraintPoint; var _local1:int; while (_local1 < m_constraintCount) { _local2 = m_constraints[_local1]; _local3 = _local2.manifold; _local4 = 0; while (_local4 < _local2.pointCount) { _local5 = _local3.points[_local4]; _local6 = _local2.points[_local4]; _local5.normalImpulse = _local6.normalImpulse; _local5.tangentImpulse = _local6.tangentImpulse; _local4++; }; _local1++; }; } } }//package Box2D.Dynamics.Contacts
Section 45
//b2NullContact (Box2D.Dynamics.Contacts.b2NullContact) package Box2D.Dynamics.Contacts { import Box2D.Dynamics.*; public class b2NullContact extends b2Contact { override public function Evaluate(_arg1:b2ContactListener):void{ } override public function GetManifolds():Array{ return (null); } } }//package Box2D.Dynamics.Contacts
Section 46
//b2PolyAndCircleContact (Box2D.Dynamics.Contacts.b2PolyAndCircleContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolyAndCircleContact extends b2Contact { private var m_manifolds:Array; public var m_manifold:b2Manifold; private var m0:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolyAndCircleContact(_arg1:b2Shape, _arg2:b2Shape){ m_manifolds = [new b2Manifold()]; m0 = new b2Manifold(); super(_arg1, _arg2); m_manifold = m_manifolds[0]; b2Settings.b2Assert((m_shape1.m_type == b2Shape.e_polygonShape)); b2Settings.b2Assert((m_shape2.m_type == b2Shape.e_circleShape)); m_manifold.pointCount = 0; var _local3:b2ManifoldPoint = m_manifold.points[0]; _local3.normalImpulse = 0; _local3.tangentImpulse = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:int; var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2ManifoldPoint; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local6:b2Body = m_shape1.m_body; var _local7:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygonAndCircle(m_manifold, (m_shape1 as b2PolygonShape), _local6.m_xf, (m_shape2 as b2CircleShape), _local7.m_xf); var _local8:Array = [false, false]; var _local9:b2ContactPoint = s_evalCP; _local9.shape1 = m_shape1; _local9.shape2 = m_shape2; _local9.friction = m_friction; _local9.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local2 = 0; while (_local2 < m_manifold.pointCount) { _local10 = m_manifold.points[_local2]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local8[_local13] == true){ } else { _local5 = m0.points[_local13]; if (_local5.id._key == _local12){ _local8[_local13] = true; _local10.normalImpulse = _local5.normalImpulse; _local10.tangentImpulse = _local5.tangentImpulse; _local11 = true; if (_arg1 != null){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Persist(_local9); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local9.position = _local6.GetWorldPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m_manifold.normal); _local9.separation = _local10.separation; _local9.id.key = _local12; _arg1.Add(_local9); }; _local2++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local2 = 0; while (_local2 < m0.pointCount) { if (_local8[_local2]){ } else { _local5 = m0.points[_local2]; _local9.position = _local6.GetWorldPoint(_local5.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local5.localPoint1); _local4 = _local7.GetLinearVelocityFromLocalPoint(_local5.localPoint2); _local9.velocity.Set((_local4.x - _local3.x), (_local4.y - _local3.y)); _local9.normal.SetV(m0.normal); _local9.separation = _local5.separation; _local9.id.key = _local5.id._key; _arg1.Remove(_local9); }; _local2++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolyAndCircleContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 47
//b2PolygonContact (Box2D.Dynamics.Contacts.b2PolygonContact) package Box2D.Dynamics.Contacts { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; public class b2PolygonContact extends b2Contact { private var m_manifolds:Array; private var m0:b2Manifold; public var m_manifold:b2Manifold; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2PolygonContact(_arg1:b2Shape, _arg2:b2Shape):void{ m0 = new b2Manifold(); m_manifolds = [new b2Manifold()]; super(_arg1, _arg2); m_manifold = m_manifolds[0]; m_manifold.pointCount = 0; } override public function Evaluate(_arg1:b2ContactListener):void{ var _local2:b2Vec2; var _local3:b2Vec2; var _local4:b2ManifoldPoint; var _local7:b2ContactPoint; var _local8:int; var _local10:b2ManifoldPoint; var _local11:Boolean; var _local12:uint; var _local13:int; var _local5:b2Body = m_shape1.m_body; var _local6:b2Body = m_shape2.m_body; m0.Set(m_manifold); b2Collision.b2CollidePolygons(m_manifold, (m_shape1 as b2PolygonShape), _local5.m_xf, (m_shape2 as b2PolygonShape), _local6.m_xf); var _local9:Array = [false, false]; _local7 = s_evalCP; _local7.shape1 = m_shape1; _local7.shape2 = m_shape2; _local7.friction = m_friction; _local7.restitution = m_restitution; if (m_manifold.pointCount > 0){ _local8 = 0; while (_local8 < m_manifold.pointCount) { _local10 = m_manifold.points[_local8]; _local10.normalImpulse = 0; _local10.tangentImpulse = 0; _local11 = false; _local12 = _local10.id._key; _local13 = 0; while (_local13 < m0.pointCount) { if (_local9[_local13] == true){ } else { _local4 = m0.points[_local13]; if (_local4.id._key == _local12){ _local9[_local13] = true; _local10.normalImpulse = _local4.normalImpulse; _local10.tangentImpulse = _local4.tangentImpulse; _local11 = true; if (_arg1 != null){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Persist(_local7); }; break; }; }; _local13++; }; if ((((_local11 == false)) && (!((_arg1 == null))))){ _local7.position = _local5.GetWorldPoint(_local10.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local10.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local10.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m_manifold.normal); _local7.separation = _local10.separation; _local7.id.key = _local12; _arg1.Add(_local7); }; _local8++; }; m_manifoldCount = 1; } else { m_manifoldCount = 0; }; if (_arg1 == null){ return; }; _local8 = 0; while (_local8 < m0.pointCount) { if (_local9[_local8]){ } else { _local4 = m0.points[_local8]; _local7.position = _local5.GetWorldPoint(_local4.localPoint1); _local2 = _local5.GetLinearVelocityFromLocalPoint(_local4.localPoint1); _local3 = _local6.GetLinearVelocityFromLocalPoint(_local4.localPoint2); _local7.velocity.Set((_local3.x - _local2.x), (_local3.y - _local2.y)); _local7.normal.SetV(m0.normal); _local7.separation = _local4.separation; _local7.id.key = _local4.id._key; _arg1.Remove(_local7); }; _local8++; }; } override public function GetManifolds():Array{ return (m_manifolds); } public static function Destroy(_arg1:b2Contact, _arg2):void{ } public static function Create(_arg1:b2Shape, _arg2:b2Shape, _arg3):b2Contact{ return (new b2PolygonContact(_arg1, _arg2)); } } }//package Box2D.Dynamics.Contacts
Section 48
//b2DistanceJoint (Box2D.Dynamics.Joints.b2DistanceJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2DistanceJoint extends b2Joint { public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_bias:Number; public var m_gamma:Number; public var m_u:b2Vec2; public var m_mass:Number; public var m_impulse:Number; public var m_dampingRatio:Number; public var m_frequencyHz:Number; public var m_length:Number; public function b2DistanceJoint(_arg1:b2DistanceJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u = new b2Vec2(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_length = _arg1.length; m_frequencyHz = _arg1.frequencyHz; m_dampingRatio = _arg1.dampingRatio; m_impulse = 0; m_gamma = 0; m_bias = 0; m_inv_dt = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:Number; var _local4:b2Body; var _local5:b2Body; var _local6:Number; var _local8:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; m_inv_dt = _arg1.inv_dt; _local4 = m_body1; _local5 = m_body2; _local2 = _local4.m_xf.R; _local6 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local6) + (_local2.col2.x * _local7)); _local7 = ((_local2.col1.y * _local6) + (_local2.col2.y * _local7)); _local6 = _local3; _local2 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local3 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local3; m_u.x = (((_local5.m_sweep.c.x + _local8) - _local4.m_sweep.c.x) - _local6); m_u.y = (((_local5.m_sweep.c.y + _local9) - _local4.m_sweep.c.y) - _local7); var _local10:Number = Math.sqrt(((m_u.x * m_u.x) + (m_u.y * m_u.y))); if (_local10 > b2Settings.b2_linearSlop){ m_u.Multiply((1 / _local10)); } else { m_u.SetZero(); }; var _local11:Number = ((_local6 * m_u.y) - (_local7 * m_u.x)); var _local12:Number = ((_local8 * m_u.y) - (_local9 * m_u.x)); var _local13:Number = (((_local4.m_invMass + ((_local4.m_invI * _local11) * _local11)) + _local5.m_invMass) + ((_local5.m_invI * _local12) * _local12)); m_mass = (1 / _local13); if (m_frequencyHz > 0){ _local14 = (_local10 - m_length); _local15 = ((2 * Math.PI) * m_frequencyHz); _local16 = (((2 * m_mass) * m_dampingRatio) * _local15); _local17 = ((m_mass * _local15) * _local15); m_gamma = (1 / (_arg1.dt * (_local16 + (_arg1.dt * _local17)))); m_bias = (((_local14 * _arg1.dt) * _local17) * m_gamma); m_mass = (1 / (_local13 + m_gamma)); }; if (_arg1.warmStarting){ m_impulse = (m_impulse * _arg1.dtRatio); _local18 = (m_impulse * m_u.x); _local19 = (m_impulse * m_u.y); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x - (_local4.m_invMass * _local18)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y - (_local4.m_invMass * _local19)); _local4.m_angularVelocity = (_local4.m_angularVelocity - (_local4.m_invI * ((_local6 * _local19) - (_local7 * _local18)))); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + (_local5.m_invMass * _local18)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + (_local5.m_invMass * _local19)); _local5.m_angularVelocity = (_local5.m_angularVelocity + (_local5.m_invI * ((_local8 * _local19) - (_local9 * _local18)))); } else { m_impulse = 0; }; } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2(); _local1.SetV(m_u); _local1.Multiply((m_inv_dt * m_impulse)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local1:b2Mat22; if (m_frequencyHz > 0){ return (true); }; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local1 = _local2.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local1.col1.x * _local4) + (_local1.col2.x * _local5)); _local5 = ((_local1.col1.y * _local4) + (_local1.col2.y * _local5)); _local4 = _local6; _local1 = _local3.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local6 = ((_local1.col1.x * _local7) + (_local1.col2.x * _local8)); _local8 = ((_local1.col1.y * _local7) + (_local1.col2.y * _local8)); _local7 = _local6; var _local9:Number = (((_local3.m_sweep.c.x + _local7) - _local2.m_sweep.c.x) - _local4); var _local10:Number = (((_local3.m_sweep.c.y + _local8) - _local2.m_sweep.c.y) - _local5); var _local11:Number = Math.sqrt(((_local9 * _local9) + (_local10 * _local10))); _local9 = (_local9 / _local11); _local10 = (_local10 / _local11); var _local12:Number = (_local11 - m_length); _local12 = b2Math.b2Clamp(_local12, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local13:Number = (-(m_mass) * _local12); m_u.Set(_local9, _local10); var _local14:Number = (_local13 * m_u.x); var _local15:Number = (_local13 * m_u.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x - (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y - (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a - (_local2.m_invI * ((_local4 * _local15) - (_local5 * _local14)))); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + (_local3.m_invMass * _local14)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + (_local3.m_invMass * _local15)); _local3.m_sweep.a = (_local3.m_sweep.a + (_local3.m_invI * ((_local7 * _local15) - (_local8 * _local14)))); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((b2Math.b2Abs(_local12) < b2Settings.b2_linearSlop)); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Mat22; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; _local2 = _local3.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local7:Number = ((_local2.col1.x * _local5) + (_local2.col2.x * _local6)); _local6 = ((_local2.col1.y * _local5) + (_local2.col2.y * _local6)); _local5 = _local7; _local2 = _local4.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local7 = ((_local2.col1.x * _local8) + (_local2.col2.x * _local9)); _local9 = ((_local2.col1.y * _local8) + (_local2.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local6)); var _local11:Number = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local5)); var _local12:Number = (_local4.m_linearVelocity.x + (-(_local4.m_angularVelocity) * _local9)); var _local13:Number = (_local4.m_linearVelocity.y + (_local4.m_angularVelocity * _local8)); var _local14:Number = ((m_u.x * (_local12 - _local10)) + (m_u.y * (_local13 - _local11))); var _local15:Number = (-(m_mass) * ((_local14 + m_bias) + (m_gamma * m_impulse))); m_impulse = (m_impulse + _local15); var _local16:Number = (_local15 * m_u.x); var _local17:Number = (_local15 * m_u.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x - (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y - (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity - (_local3.m_invI * ((_local5 * _local17) - (_local6 * _local16)))); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + (_local4.m_invMass * _local16)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + (_local4.m_invMass * _local17)); _local4.m_angularVelocity = (_local4.m_angularVelocity + (_local4.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); } } }//package Box2D.Dynamics.Joints
Section 49
//b2DistanceJointDef (Box2D.Dynamics.Joints.b2DistanceJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2DistanceJointDef extends b2JointDef { public var localAnchor1:b2Vec2; public var length:Number; public var dampingRatio:Number; public var localAnchor2:b2Vec2; public var frequencyHz:Number; public function b2DistanceJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_distanceJoint; length = 1; frequencyHz = 0; dampingRatio = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1.SetV(body1.GetLocalPoint(_arg3)); localAnchor2.SetV(body2.GetLocalPoint(_arg4)); var _local5:Number = (_arg4.x - _arg3.x); var _local6:Number = (_arg4.y - _arg3.y); length = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); frequencyHz = 0; dampingRatio = 0; } } }//package Box2D.Dynamics.Joints
Section 50
//b2GearJoint (Box2D.Dynamics.Joints.b2GearJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2GearJoint extends b2Joint { public var m_ground2:b2Body; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_ratio:Number; public var m_revolute2:b2RevoluteJoint; public var m_force:Number; public var m_mass:Number; public var m_prismatic2:b2PrismaticJoint; public var m_ground1:b2Body; public var m_revolute1:b2RevoluteJoint; public var m_prismatic1:b2PrismaticJoint; public var m_constant:Number; public var m_J:b2Jacobian; public function b2GearJoint(_arg1:b2GearJointDef){ var _local4:Number; var _local5:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_J = new b2Jacobian(); super(_arg1); var _local2:int = _arg1.joint1.m_type; var _local3:int = _arg1.joint2.m_type; m_revolute1 = null; m_prismatic1 = null; m_revolute2 = null; m_prismatic2 = null; m_ground1 = _arg1.joint1.m_body1; m_body1 = _arg1.joint1.m_body2; if (_local2 == b2Joint.e_revoluteJoint){ m_revolute1 = (_arg1.joint1 as b2RevoluteJoint); m_groundAnchor1.SetV(m_revolute1.m_localAnchor1); m_localAnchor1.SetV(m_revolute1.m_localAnchor2); _local4 = m_revolute1.GetJointAngle(); } else { m_prismatic1 = (_arg1.joint1 as b2PrismaticJoint); m_groundAnchor1.SetV(m_prismatic1.m_localAnchor1); m_localAnchor1.SetV(m_prismatic1.m_localAnchor2); _local4 = m_prismatic1.GetJointTranslation(); }; m_ground2 = _arg1.joint2.m_body1; m_body2 = _arg1.joint2.m_body2; if (_local3 == b2Joint.e_revoluteJoint){ m_revolute2 = (_arg1.joint2 as b2RevoluteJoint); m_groundAnchor2.SetV(m_revolute2.m_localAnchor1); m_localAnchor2.SetV(m_revolute2.m_localAnchor2); _local5 = m_revolute2.GetJointAngle(); } else { m_prismatic2 = (_arg1.joint2 as b2PrismaticJoint); m_groundAnchor2.SetV(m_prismatic2.m_localAnchor1); m_localAnchor2.SetV(m_prismatic2.m_localAnchor2); _local5 = m_prismatic2.GetJointTranslation(); }; m_ratio = _arg1.ratio; m_constant = (_local4 + (m_ratio * _local5)); m_force = 0; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:b2Mat22; var _local11:b2Vec2; var _local12:Number; var _local13:Number; var _local15:Number; var _local2:b2Body = m_ground1; var _local3:b2Body = m_ground2; var _local4:b2Body = m_body1; var _local5:b2Body = m_body2; var _local14:Number = 0; m_J.SetZero(); if (m_revolute1){ m_J.angular1 = -1; _local14 = (_local14 + _local4.m_invI); } else { _local10 = _local2.m_xf.R; _local11 = m_prismatic1.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local4.m_xf.R; _local8 = (m_localAnchor1.x - _local4.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local4.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear1.Set(-(_local6), -(_local7)); m_J.angular1 = -(_local12); _local14 = (_local14 + (_local4.m_invMass + ((_local4.m_invI * _local12) * _local12))); }; if (m_revolute2){ m_J.angular2 = -(m_ratio); _local14 = (_local14 + ((m_ratio * m_ratio) * _local5.m_invI)); } else { _local10 = _local3.m_xf.R; _local11 = m_prismatic2.m_localXAxis1; _local6 = ((_local10.col1.x * _local11.x) + (_local10.col2.x * _local11.y)); _local7 = ((_local10.col1.y * _local11.x) + (_local10.col2.y * _local11.y)); _local10 = _local5.m_xf.R; _local8 = (m_localAnchor2.x - _local5.m_sweep.localCenter.x); _local9 = (m_localAnchor2.y - _local5.m_sweep.localCenter.y); _local13 = ((_local10.col1.x * _local8) + (_local10.col2.x * _local9)); _local9 = ((_local10.col1.y * _local8) + (_local10.col2.y * _local9)); _local8 = _local13; _local12 = ((_local8 * _local7) - (_local9 * _local6)); m_J.linear2.Set((-(m_ratio) * _local6), (-(m_ratio) * _local7)); m_J.angular2 = (-(m_ratio) * _local12); _local14 = (_local14 + ((m_ratio * m_ratio) * (_local5.m_invMass + ((_local5.m_invI * _local12) * _local12)))); }; m_mass = (1 / _local14); if (_arg1.warmStarting){ _local15 = (_arg1.dt * m_force); _local4.m_linearVelocity.x = (_local4.m_linearVelocity.x + ((_local4.m_invMass * _local15) * m_J.linear1.x)); _local4.m_linearVelocity.y = (_local4.m_linearVelocity.y + ((_local4.m_invMass * _local15) * m_J.linear1.y)); _local4.m_angularVelocity = (_local4.m_angularVelocity + ((_local4.m_invI * _local15) * m_J.angular1)); _local5.m_linearVelocity.x = (_local5.m_linearVelocity.x + ((_local5.m_invMass * _local15) * m_J.linear2.x)); _local5.m_linearVelocity.y = (_local5.m_linearVelocity.y + ((_local5.m_invMass * _local15) * m_J.linear2.y)); _local5.m_angularVelocity = (_local5.m_angularVelocity + ((_local5.m_invI * _local15) * m_J.angular2)); } else { m_force = 0; }; } override public function GetReactionTorque():Number{ var _local1:b2Mat22 = m_body2.m_xf.R; var _local2:Number = (m_localAnchor1.x - m_body2.m_sweep.localCenter.x); var _local3:Number = (m_localAnchor1.y - m_body2.m_sweep.localCenter.y); var _local4:Number = ((_local1.col1.x * _local2) + (_local1.col2.x * _local3)); _local3 = ((_local1.col1.y * _local2) + (_local1.col2.y * _local3)); _local2 = _local4; _local4 = ((m_force * m_J.angular2) - ((_local2 * (m_force * m_J.linear2.y)) - (_local3 * (m_force * m_J.linear2.x)))); return (_local4); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = new b2Vec2((m_force * m_J.linear2.x), (m_force * m_J.linear2.y)); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local4:Number; var _local5:Number; var _local1:Number = 0; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; if (m_revolute1){ _local4 = m_revolute1.GetJointAngle(); } else { _local4 = m_prismatic1.GetJointTranslation(); }; if (m_revolute2){ _local5 = m_revolute2.GetJointAngle(); } else { _local5 = m_prismatic2.GetJointTranslation(); }; var _local6:Number = (m_constant - (_local4 + (m_ratio * _local5))); var _local7:Number = (-(m_mass) * _local6); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + ((_local2.m_invMass * _local7) * m_J.linear1.x)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + ((_local2.m_invMass * _local7) * m_J.linear1.y)); _local2.m_sweep.a = (_local2.m_sweep.a + ((_local2.m_invI * _local7) * m_J.angular1)); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local3.m_invMass * _local7) * m_J.linear2.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local3.m_invMass * _local7) * m_J.linear2.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local3.m_invI * _local7) * m_J.angular2)); _local2.SynchronizeTransform(); _local3.SynchronizeTransform(); return ((_local1 < b2Settings.b2_linearSlop)); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = m_J.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local5:Number = ((-(_arg1.inv_dt) * m_mass) * _local4); m_force = (m_force + _local5); var _local6:Number = (_arg1.dt * _local5); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local2.m_invMass * _local6) * m_J.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local2.m_invMass * _local6) * m_J.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local2.m_invI * _local6) * m_J.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local3.m_invMass * _local6) * m_J.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local3.m_invMass * _local6) * m_J.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _local6) * m_J.angular2)); } } }//package Box2D.Dynamics.Joints
Section 51
//b2GearJointDef (Box2D.Dynamics.Joints.b2GearJointDef) package Box2D.Dynamics.Joints { public class b2GearJointDef extends b2JointDef { public var joint1:b2Joint; public var joint2:b2Joint; public var ratio:Number; public function b2GearJointDef(){ type = b2Joint.e_gearJoint; joint1 = null; joint2 = null; ratio = 1; } } }//package Box2D.Dynamics.Joints
Section 52
//b2Jacobian (Box2D.Dynamics.Joints.b2Jacobian) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2Jacobian { public var linear1:b2Vec2; public var linear2:b2Vec2; public var angular1:Number; public var angular2:Number; public function b2Jacobian(){ linear1 = new b2Vec2(); linear2 = new b2Vec2(); super(); } public function Set(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):void{ linear1.SetV(_arg1); angular1 = _arg2; linear2.SetV(_arg3); angular2 = _arg4; } public function SetZero():void{ linear1.SetZero(); angular1 = 0; linear2.SetZero(); angular2 = 0; } public function Compute(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:Number):Number{ return ((((((linear1.x * _arg1.x) + (linear1.y * _arg1.y)) + (angular1 * _arg2)) + ((linear2.x * _arg3.x) + (linear2.y * _arg3.y))) + (angular2 * _arg4))); } } }//package Box2D.Dynamics.Joints
Section 53
//b2Joint (Box2D.Dynamics.Joints.b2Joint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2Joint { public var m_islandFlag:Boolean; public var m_body1:b2Body; public var m_prev:b2Joint; public var m_next:b2Joint; public var m_type:int; public var m_collideConnected:Boolean; public var m_node1:b2JointEdge; public var m_node2:b2JointEdge; public var m_inv_dt:Number; public var m_userData; public var m_body2:b2Body; public static const e_unknownJoint:int = 0; public static const e_inactiveLimit:int = 0; public static const e_atUpperLimit:int = 2; public static const e_atLowerLimit:int = 1; public static const e_gearJoint:int = 6; public static const e_revoluteJoint:int = 1; public static const e_equalLimits:int = 3; public static const e_distanceJoint:int = 3; public static const e_pulleyJoint:int = 4; public static const e_prismaticJoint:int = 2; public static const e_mouseJoint:int = 5; public function b2Joint(_arg1:b2JointDef){ m_node1 = new b2JointEdge(); m_node2 = new b2JointEdge(); super(); m_type = _arg1.type; m_prev = null; m_next = null; m_body1 = _arg1.body1; m_body2 = _arg1.body2; m_collideConnected = _arg1.collideConnected; m_islandFlag = false; m_userData = _arg1.userData; } public function GetBody2():b2Body{ return (m_body2); } public function GetAnchor1():b2Vec2{ return (null); } public function GetAnchor2():b2Vec2{ return (null); } public function GetNext():b2Joint{ return (m_next); } public function GetType():int{ return (m_type); } public function InitVelocityConstraints(_arg1:b2TimeStep):void{ } public function GetReactionTorque():Number{ return (0); } public function GetUserData(){ return (m_userData); } public function GetReactionForce():b2Vec2{ return (null); } public function SolvePositionConstraints():Boolean{ return (false); } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetBody1():b2Body{ return (m_body1); } public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ } public function InitPositionConstraints():void{ } public static function Destroy(_arg1:b2Joint, _arg2):void{ } public static function Create(_arg1:b2JointDef, _arg2):b2Joint{ var _local3:b2Joint; switch (_arg1.type){ case e_distanceJoint: _local3 = new b2DistanceJoint((_arg1 as b2DistanceJointDef)); break; case e_mouseJoint: _local3 = new b2MouseJoint((_arg1 as b2MouseJointDef)); break; case e_prismaticJoint: _local3 = new b2PrismaticJoint((_arg1 as b2PrismaticJointDef)); break; case e_revoluteJoint: _local3 = new b2RevoluteJoint((_arg1 as b2RevoluteJointDef)); break; case e_pulleyJoint: _local3 = new b2PulleyJoint((_arg1 as b2PulleyJointDef)); break; case e_gearJoint: _local3 = new b2GearJoint((_arg1 as b2GearJointDef)); break; default: break; }; return (_local3); } } }//package Box2D.Dynamics.Joints
Section 54
//b2JointDef (Box2D.Dynamics.Joints.b2JointDef) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointDef { public var body2:b2Body; public var type:int; public var userData; public var collideConnected:Boolean; public var body1:b2Body; public function b2JointDef(){ type = b2Joint.e_unknownJoint; userData = null; body1 = null; body2 = null; collideConnected = false; } } }//package Box2D.Dynamics.Joints
Section 55
//b2JointEdge (Box2D.Dynamics.Joints.b2JointEdge) package Box2D.Dynamics.Joints { import Box2D.Dynamics.*; public class b2JointEdge { public var other:b2Body; public var next:b2JointEdge; public var prev:b2JointEdge; public var joint:b2Joint; } }//package Box2D.Dynamics.Joints
Section 56
//b2MouseJoint (Box2D.Dynamics.Joints.b2MouseJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2MouseJoint extends b2Joint { private var K1:b2Mat22; private var K:b2Mat22; public var m_beta:Number; public var m_mass:b2Mat22; private var K2:b2Mat22; public var m_target:b2Vec2; public var m_gamma:Number; public var m_impulse:b2Vec2; public var m_C:b2Vec2; public var m_localAnchor:b2Vec2; public var m_maxForce:Number; public function b2MouseJoint(_arg1:b2MouseJointDef){ var _local3:Number; K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); m_localAnchor = new b2Vec2(); m_target = new b2Vec2(); m_impulse = new b2Vec2(); m_mass = new b2Mat22(); m_C = new b2Vec2(); super(_arg1); m_target.SetV(_arg1.target); var _local2:Number = (m_target.x - m_body2.m_xf.position.x); _local3 = (m_target.y - m_body2.m_xf.position.y); var _local4:b2Mat22 = m_body2.m_xf.R; m_localAnchor.x = ((_local2 * _local4.col1.x) + (_local3 * _local4.col1.y)); m_localAnchor.y = ((_local2 * _local4.col2.x) + (_local3 * _local4.col2.y)); m_maxForce = _arg1.maxForce; m_impulse.SetZero(); var _local5:Number = m_body2.m_mass; var _local6:Number = ((2 * b2Settings.b2_pi) * _arg1.frequencyHz); var _local7:Number = (((2 * _local5) * _arg1.dampingRatio) * _local6); var _local8:Number = ((_arg1.timeStep * _local5) * (_local6 * _local6)); m_gamma = (1 / (_local7 + _local8)); m_beta = (_local8 / (_local7 + _local8)); } public function SetTarget(_arg1:b2Vec2):void{ if (m_body2.IsSleeping()){ m_body2.WakeUp(); }; m_target = _arg1; } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; _local2 = m_body2; _local3 = _local2.m_xf.R; _local4 = (m_localAnchor.x - _local2.m_sweep.localCenter.x); _local5 = (m_localAnchor.y - _local2.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local7 = _local2.m_invMass; _local8 = _local2.m_invI; K1.col1.x = _local7; K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = _local7; K2.col1.x = ((_local8 * _local5) * _local5); K2.col2.x = ((-(_local8) * _local4) * _local5); K2.col1.y = ((-(_local8) * _local4) * _local5); K2.col2.y = ((_local8 * _local4) * _local4); K.SetM(K1); K.AddM(K2); K.col1.x = (K.col1.x + m_gamma); K.col2.y = (K.col2.y + m_gamma); K.Invert(m_mass); m_C.x = ((_local2.m_sweep.c.x + _local4) - m_target.x); m_C.y = ((_local2.m_sweep.c.y + _local5) - m_target.y); _local2.m_angularVelocity = (_local2.m_angularVelocity * 0.98); var _local9:Number = (_arg1.dt * m_impulse.x); var _local10:Number = (_arg1.dt * m_impulse.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local7 * _local9)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local7 * _local10)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local8 * ((_local4 * _local10) - (_local5 * _local9)))); } override public function GetAnchor1():b2Vec2{ return (m_target); } override public function GetReactionTorque():Number{ return (0); } override public function GetReactionForce():b2Vec2{ return (m_impulse); } override public function SolvePositionConstraints():Boolean{ return (true); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local3:b2Mat22; var _local4:Number; var _local5:Number; var _local2:b2Body = m_body2; _local3 = _local2.m_xf.R; var _local6:Number = (m_localAnchor.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor.y - _local2.m_sweep.localCenter.y); _local4 = ((_local3.col1.x * _local6) + (_local3.col2.x * _local7)); _local7 = ((_local3.col1.y * _local6) + (_local3.col2.y * _local7)); _local6 = _local4; var _local8:Number = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local7)); var _local9:Number = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local6)); _local3 = m_mass; _local4 = ((_local8 + ((m_beta * _arg1.inv_dt) * m_C.x)) + ((m_gamma * _arg1.dt) * m_impulse.x)); _local5 = ((_local9 + ((m_beta * _arg1.inv_dt) * m_C.y)) + ((m_gamma * _arg1.dt) * m_impulse.y)); var _local10:Number = (-(_arg1.inv_dt) * ((_local3.col1.x * _local4) + (_local3.col2.x * _local5))); var _local11:Number = (-(_arg1.inv_dt) * ((_local3.col1.y * _local4) + (_local3.col2.y * _local5))); var _local12:Number = m_impulse.x; var _local13:Number = m_impulse.y; m_impulse.x = (m_impulse.x + _local10); m_impulse.y = (m_impulse.y + _local11); var _local14:Number = m_impulse.Length(); if (_local14 > m_maxForce){ m_impulse.Multiply((m_maxForce / _local14)); }; _local10 = (m_impulse.x - _local12); _local11 = (m_impulse.y - _local13); var _local15:Number = (_arg1.dt * _local10); var _local16:Number = (_arg1.dt * _local11); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); } } }//package Box2D.Dynamics.Joints
Section 57
//b2MouseJointDef (Box2D.Dynamics.Joints.b2MouseJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; public class b2MouseJointDef extends b2JointDef { public var timeStep:Number; public var target:b2Vec2; public var maxForce:Number; public var dampingRatio:Number; public var frequencyHz:Number; public function b2MouseJointDef(){ target = new b2Vec2(); super(); type = b2Joint.e_mouseJoint; maxForce = 0; frequencyHz = 5; dampingRatio = 0.7; timeStep = (1 / 60); } } }//package Box2D.Dynamics.Joints
Section 58
//b2PrismaticJoint (Box2D.Dynamics.Joints.b2PrismaticJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PrismaticJoint extends b2Joint { public var m_limitForce:Number; public var m_lowerTranslation:Number; public var m_localXAxis1:b2Vec2; public var m_refAngle:Number; public var m_torque:Number; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_angularMass:Number; public var m_maxMotorForce:Number; public var m_localYAxis1:b2Vec2; public var m_force:Number; public var m_motorMass:Number; public var m_upperTranslation:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitState:int; public var m_linearMass:Number; public var m_motorJacobian:b2Jacobian; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_enableMotor:Boolean; public var m_linearJacobian:b2Jacobian; public function b2PrismaticJoint(_arg1:b2PrismaticJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_localXAxis1 = new b2Vec2(); m_localYAxis1 = new b2Vec2(); m_linearJacobian = new b2Jacobian(); m_motorJacobian = new b2Jacobian(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_localXAxis1.SetV(_arg1.localAxis1); m_localYAxis1.x = -(m_localXAxis1.y); m_localYAxis1.y = m_localXAxis1.x; m_refAngle = _arg1.referenceAngle; m_linearJacobian.SetZero(); m_linearMass = 0; m_force = 0; m_angularMass = 0; m_torque = 0; m_motorJacobian.SetZero(); m_motorMass = 0; m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerTranslation = _arg1.lowerTranslation; m_upperTranslation = _arg1.upperTranslation; m_maxMotorForce = _arg1.maxMotorForce; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local8:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; var _local4:Number = _local2.m_invMass; var _local5:Number = _local3.m_invMass; var _local6:Number = _local2.m_invI; var _local7:Number = _local3.m_invI; var _local9:Number = m_linearJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); var _local10:Number = ((-(_arg1.inv_dt) * m_linearMass) * _local9); m_force = (m_force + _local10); var _local11:Number = (_arg1.dt * _local10); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_linearJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_linearJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_linearJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_linearJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_linearJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_linearJacobian.angular2)); var _local12:Number = (_local3.m_angularVelocity - _local2.m_angularVelocity); var _local13:Number = ((-(_arg1.inv_dt) * m_angularMass) * _local12); m_torque = (m_torque + _local13); var _local14:Number = (_arg1.dt * _local13); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local6 * _local14)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local7 * _local14)); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local15 = (m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity) - m_motorSpeed); _local16 = ((-(_arg1.inv_dt) * m_motorMass) * _local15); _local17 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local16), -(m_maxMotorForce), m_maxMotorForce); _local16 = (m_motorForce - _local17); _local11 = (_arg1.dt * _local16); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local18 = m_motorJacobian.Compute(_local2.m_linearVelocity, _local2.m_angularVelocity, _local3.m_linearVelocity, _local3.m_angularVelocity); _local19 = ((-(_arg1.inv_dt) * m_motorMass) * _local18); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local19); } else { if (m_limitState == e_atLowerLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); } else { if (m_limitState == e_atUpperLimit){ _local8 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local19), 0); _local19 = (m_limitForce - _local8); }; }; }; _local11 = (_arg1.dt * _local19); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + ((_local4 * _local11) * m_motorJacobian.linear1.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + ((_local4 * _local11) * m_motorJacobian.linear1.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity + ((_local6 * _local11) * m_motorJacobian.angular1)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_local5 * _local11) * m_motorJacobian.linear2.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_local5 * _local11) * m_motorJacobian.linear2.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local7 * _local11) * m_motorJacobian.angular2)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperTranslation); } public function GetLowerLimit():Number{ return (m_lowerTranslation); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetJointTranslation():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:b2Vec2 = _local1.GetWorldPoint(m_localAnchor1); var _local5:b2Vec2 = _local2.GetWorldPoint(m_localAnchor2); var _local6:Number = (_local5.x - _local4.x); var _local7:Number = (_local5.y - _local4.y); var _local8:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local9:Number = ((_local8.x * _local6) + (_local8.y * _local7)); return (_local9); } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ var _local1:b2Mat22 = m_body1.m_xf.R; var _local2:Number = (m_limitForce * ((_local1.col1.x * m_localXAxis1.x) + (_local1.col2.x * m_localXAxis1.y))); var _local3:Number = (m_limitForce * ((_local1.col1.y * m_localXAxis1.x) + (_local1.col2.y * m_localXAxis1.y))); var _local4:Number = (m_force * ((_local1.col1.x * m_localYAxis1.x) + (_local1.col2.x * m_localYAxis1.y))); var _local5:Number = (m_force * ((_local1.col1.y * m_localYAxis1.x) + (_local1.col2.y * m_localYAxis1.y))); return (new b2Vec2(((m_limitForce * _local2) + (m_force * _local4)), ((m_limitForce * _local3) + (m_force * _local5)))); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local9:b2Mat22; var _local10:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = _local3.m_invMass; var _local6:Number = _local4.m_invMass; var _local7:Number = _local3.m_invI; var _local8:Number = _local4.m_invI; _local9 = _local3.m_xf.R; var _local11:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local12:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; var _local13:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local14:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; var _local15:Number = (_local3.m_sweep.c.x + _local11); var _local16:Number = (_local3.m_sweep.c.y + _local12); var _local17:Number = (_local4.m_sweep.c.x + _local13); var _local18:Number = (_local4.m_sweep.c.y + _local14); var _local19:Number = (_local17 - _local15); var _local20:Number = (_local18 - _local16); _local9 = _local3.m_xf.R; var _local21:Number = ((_local9.col1.x * m_localYAxis1.x) + (_local9.col2.x * m_localYAxis1.y)); var _local22:Number = ((_local9.col1.y * m_localYAxis1.x) + (_local9.col2.y * m_localYAxis1.y)); var _local23:Number = ((_local21 * _local19) + (_local22 * _local20)); _local23 = b2Math.b2Clamp(_local23, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); var _local24:Number = (-(m_linearMass) * _local23); _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local24) * m_linearJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local24) * m_linearJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local24) * m_linearJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local24) * m_linearJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local24) * m_linearJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local24) * m_linearJacobian.angular2)); var _local25:Number = b2Math.b2Abs(_local23); var _local26:Number = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_refAngle); _local26 = b2Math.b2Clamp(_local26, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); var _local27:Number = (-(m_angularMass) * _local26); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local27)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local27)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local28:Number = b2Math.b2Abs(_local26); if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local9 = _local3.m_xf.R; _local11 = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); _local12 = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local11) + (_local9.col2.x * _local12)); _local12 = ((_local9.col1.y * _local11) + (_local9.col2.y * _local12)); _local11 = _local10; _local9 = _local4.m_xf.R; _local13 = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); _local14 = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local10 = ((_local9.col1.x * _local13) + (_local9.col2.x * _local14)); _local14 = ((_local9.col1.y * _local13) + (_local9.col2.y * _local14)); _local13 = _local10; _local15 = (_local3.m_sweep.c.x + _local11); _local16 = (_local3.m_sweep.c.y + _local12); _local17 = (_local4.m_sweep.c.x + _local13); _local18 = (_local4.m_sweep.c.y + _local14); _local19 = (_local17 - _local15); _local20 = (_local18 - _local16); _local9 = _local3.m_xf.R; _local29 = ((_local9.col1.x * m_localXAxis1.x) + (_local9.col2.x * m_localXAxis1.y)); _local30 = ((_local9.col1.y * m_localXAxis1.x) + (_local9.col2.y * m_localXAxis1.y)); _local31 = ((_local29 * _local19) + (_local30 * _local20)); _local32 = 0; if (m_limitState == e_equalLimits){ _local1 = b2Math.b2Clamp(_local31, -(b2Settings.b2_maxLinearCorrection), b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local25 = b2Math.b2Max(_local25, b2Math.b2Abs(_local26)); } else { if (m_limitState == e_atLowerLimit){ _local1 = (_local31 - m_lowerTranslation); _local25 = b2Math.b2Max(_local25, -(_local1)); _local1 = b2Math.b2Clamp((_local1 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); } else { if (m_limitState == e_atUpperLimit){ _local1 = (_local31 - m_upperTranslation); _local25 = b2Math.b2Max(_local25, _local1); _local1 = b2Math.b2Clamp((_local1 - b2Settings.b2_linearSlop), 0, b2Settings.b2_maxLinearCorrection); _local32 = (-(m_motorMass) * _local1); _local2 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local32), 0); _local32 = (m_limitPositionImpulse - _local2); }; }; }; _local3.m_sweep.c.x = (_local3.m_sweep.c.x + ((_local5 * _local32) * m_motorJacobian.linear1.x)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y + ((_local5 * _local32) * m_motorJacobian.linear1.y)); _local3.m_sweep.a = (_local3.m_sweep.a + ((_local7 * _local32) * m_motorJacobian.angular1)); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + ((_local6 * _local32) * m_motorJacobian.linear2.x)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + ((_local6 * _local32) * m_motorJacobian.linear2.y)); _local4.m_sweep.a = (_local4.m_sweep.a + ((_local8 * _local32) * m_motorJacobian.angular2)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local25 <= b2Settings.b2_linearSlop)) && ((_local28 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ var _local3:b2Mat22; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; _local3 = _local1.m_xf.R; var _local4:Number = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); var _local5:Number = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); var _local6:Number = ((_local3.col1.x * _local4) + (_local3.col2.x * _local5)); _local5 = ((_local3.col1.y * _local4) + (_local3.col2.y * _local5)); _local4 = _local6; _local3 = _local2.m_xf.R; var _local7:Number = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local6 = ((_local3.col1.x * _local7) + (_local3.col2.x * _local8)); _local8 = ((_local3.col1.y * _local7) + (_local3.col2.y * _local8)); _local7 = _local6; var _local9:Number = (_local1.m_sweep.c.x + _local4); var _local10:Number = (_local1.m_sweep.c.y + _local5); var _local11:Number = (_local2.m_sweep.c.x + _local7); var _local12:Number = (_local2.m_sweep.c.y + _local8); var _local13:Number = (_local11 - _local9); var _local14:Number = (_local12 - _local10); var _local15:b2Vec2 = _local1.GetWorldVector(m_localXAxis1); var _local16:b2Vec2 = _local1.m_linearVelocity; var _local17:b2Vec2 = _local2.m_linearVelocity; var _local18:Number = _local1.m_angularVelocity; var _local19:Number = _local2.m_angularVelocity; var _local20:Number = (((_local13 * (-(_local18) * _local15.y)) + (_local14 * (_local18 * _local15.x))) + ((_local15.x * (((_local17.x + (-(_local19) * _local8)) - _local16.x) - (-(_local18) * _local5))) + (_local15.y * (((_local17.y + (_local19 * _local7)) - _local16.y) - (_local18 * _local4))))); return (_local20); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; _local4 = _local2.m_xf.R; var _local14:Number = ((_local4.col1.x * m_localYAxis1.x) + (_local4.col2.x * m_localYAxis1.y)); var _local15:Number = ((_local4.col1.y * m_localYAxis1.x) + (_local4.col2.y * m_localYAxis1.y)); var _local16:Number = ((_local3.m_sweep.c.x + _local8) - _local2.m_sweep.c.x); var _local17:Number = ((_local3.m_sweep.c.y + _local9) - _local2.m_sweep.c.y); m_linearJacobian.linear1.x = -(_local14); m_linearJacobian.linear1.y = -(_local15); m_linearJacobian.linear2.x = _local14; m_linearJacobian.linear2.y = _local15; m_linearJacobian.angular1 = -(((_local16 * _local15) - (_local17 * _local14))); m_linearJacobian.angular2 = ((_local8 * _local15) - (_local9 * _local14)); m_linearMass = (((_local10 + ((_local12 * m_linearJacobian.angular1) * m_linearJacobian.angular1)) + _local11) + ((_local13 * m_linearJacobian.angular2) * m_linearJacobian.angular2)); m_linearMass = (1 / m_linearMass); m_angularMass = (_local12 + _local13); if (m_angularMass > Number.MIN_VALUE){ m_angularMass = (1 / m_angularMass); }; if (((m_enableLimit) || (m_enableMotor))){ _local4 = _local2.m_xf.R; _local18 = ((_local4.col1.x * m_localXAxis1.x) + (_local4.col2.x * m_localXAxis1.y)); _local19 = ((_local4.col1.y * m_localXAxis1.x) + (_local4.col2.y * m_localXAxis1.y)); m_motorJacobian.linear1.x = -(_local18); m_motorJacobian.linear1.y = -(_local19); m_motorJacobian.linear2.x = _local18; m_motorJacobian.linear2.y = _local19; m_motorJacobian.angular1 = -(((_local16 * _local19) - (_local17 * _local18))); m_motorJacobian.angular2 = ((_local8 * _local19) - (_local9 * _local18)); m_motorMass = (((_local10 + ((_local12 * m_motorJacobian.angular1) * m_motorJacobian.angular1)) + _local11) + ((_local13 * m_motorJacobian.angular2) * m_motorJacobian.angular2)); m_motorMass = (1 / m_motorMass); if (m_enableLimit){ _local20 = (_local16 - _local6); _local21 = (_local17 - _local7); _local22 = ((_local18 * _local20) + (_local19 * _local21)); if (b2Math.b2Abs((m_upperTranslation - m_lowerTranslation)) < (2 * b2Settings.b2_linearSlop)){ m_limitState = e_equalLimits; } else { if (_local22 <= m_lowerTranslation){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local22 >= m_upperTranslation){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; }; }; if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit == false){ m_limitForce = 0; }; if (_arg1.warmStarting){ _local23 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.x))); _local24 = (_arg1.dt * ((m_force * m_linearJacobian.linear1.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear1.y))); _local25 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.x) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.x))); _local26 = (_arg1.dt * ((m_force * m_linearJacobian.linear2.y) + ((m_motorForce + m_limitForce) * m_motorJacobian.linear2.y))); _local27 = (_arg1.dt * (((m_force * m_linearJacobian.angular1) - m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular1))); _local28 = (_arg1.dt * (((m_force * m_linearJacobian.angular2) + m_torque) + ((m_motorForce + m_limitForce) * m_motorJacobian.angular2))); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local10 * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local10 * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local12 * _local27)); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local11 * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local11 * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local13 * _local28)); } else { m_force = 0; m_torque = 0; m_limitForce = 0; m_motorForce = 0; }; m_limitPositionImpulse = 0; } public function GetMotorForce():Number{ return (m_motorForce); } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } public function SetMaxMotorForce(_arg1:Number):void{ m_maxMotorForce = _arg1; } override public function GetReactionTorque():Number{ return (m_torque); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerTranslation = _arg1; m_upperTranslation = _arg2; } } }//package Box2D.Dynamics.Joints
Section 59
//b2PrismaticJointDef (Box2D.Dynamics.Joints.b2PrismaticJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PrismaticJointDef extends b2JointDef { public var motorSpeed:Number; public var localAxis1:b2Vec2; public var referenceAngle:Number; public var upperTranslation:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var enableMotor:Boolean; public var maxMotorForce:Number; public var lowerTranslation:Number; public function b2PrismaticJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); localAxis1 = new b2Vec2(); super(); type = b2Joint.e_prismaticJoint; localAxis1.Set(1, 0); referenceAngle = 0; enableLimit = false; lowerTranslation = 0; upperTranslation = 0; enableMotor = false; maxMotorForce = 0; motorSpeed = 0; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); localAxis1 = body1.GetLocalVector(_arg4); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 60
//b2PulleyJoint (Box2D.Dynamics.Joints.b2PulleyJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2PulleyJoint extends b2Joint { public var m_limitState1:int; public var m_limitState2:int; public var m_ground:b2Body; public var m_maxLength2:Number; public var m_maxLength1:Number; public var m_limitPositionImpulse1:Number; public var m_limitPositionImpulse2:Number; public var m_force:Number; public var m_constant:Number; public var m_positionImpulse:Number; public var m_state:int; public var m_ratio:Number; public var m_groundAnchor1:b2Vec2; public var m_groundAnchor2:b2Vec2; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; public var m_limitMass1:Number; public var m_limitMass2:Number; public var m_pulleyMass:Number; public var m_u1:b2Vec2; public var m_limitForce1:Number; public var m_limitForce2:Number; public var m_u2:b2Vec2; public static const b2_minPulleyLength:Number = 2; public function b2PulleyJoint(_arg1:b2PulleyJointDef){ var _local2:b2Mat22; var _local3:Number; var _local4:Number; m_groundAnchor1 = new b2Vec2(); m_groundAnchor2 = new b2Vec2(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_u1 = new b2Vec2(); m_u2 = new b2Vec2(); super(_arg1); m_ground = m_body1.m_world.m_groundBody; m_groundAnchor1.x = (_arg1.groundAnchor1.x - m_ground.m_xf.position.x); m_groundAnchor1.y = (_arg1.groundAnchor1.y - m_ground.m_xf.position.y); m_groundAnchor2.x = (_arg1.groundAnchor2.x - m_ground.m_xf.position.x); m_groundAnchor2.y = (_arg1.groundAnchor2.y - m_ground.m_xf.position.y); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_ratio = _arg1.ratio; m_constant = (_arg1.length1 + (m_ratio * _arg1.length2)); m_maxLength1 = b2Math.b2Min(_arg1.maxLength1, (m_constant - (m_ratio * b2_minPulleyLength))); m_maxLength2 = b2Math.b2Min(_arg1.maxLength2, ((m_constant - b2_minPulleyLength) / m_ratio)); m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; } public function GetGroundAnchor2():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor2); return (_local1); } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } override public function GetReactionForce():b2Vec2{ var _local1:b2Vec2 = m_u2.Copy(); _local1.Multiply(m_force); return (_local1); } override public function SolvePositionConstraints():Boolean{ var _local3:b2Mat22; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local1:b2Body = m_body1; var _local2:b2Body = m_body2; var _local4:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local5:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local6:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local7:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local23:Number = 0; if (m_state == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u1.Set((_local12 - _local4), (_local13 - _local5)); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local16 = m_u1.Length(); _local17 = m_u2.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local16)); } else { m_u1.SetZero(); }; if (_local17 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local17)); } else { m_u2.SetZero(); }; _local18 = ((m_constant - _local16) - (m_ratio * _local17)); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_pulleyMass) * _local18); _local20 = m_positionImpulse; m_positionImpulse = b2Math.b2Max(0, (m_positionImpulse + _local19)); _local19 = (m_positionImpulse - _local20); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local14 = ((-(m_ratio) * _local19) * m_u2.x); _local15 = ((-(m_ratio) * _local19) * m_u2.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local1.SynchronizeTransform(); _local2.SynchronizeTransform(); }; if (m_limitState1 == e_atUpperLimit){ _local3 = _local1.m_xf.R; _local8 = (m_localAnchor1.x - _local1.m_sweep.localCenter.x); _local9 = (m_localAnchor1.y - _local1.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local8) + (_local3.col2.x * _local9)); _local9 = ((_local3.col1.y * _local8) + (_local3.col2.y * _local9)); _local8 = _local22; _local12 = (_local1.m_sweep.c.x + _local8); _local13 = (_local1.m_sweep.c.y + _local9); m_u1.Set((_local12 - _local4), (_local13 - _local5)); _local16 = m_u1.Length(); if (_local16 > b2Settings.b2_linearSlop){ m_u1.x = (m_u1.x * (1 / _local16)); m_u1.y = (m_u1.y * (1 / _local16)); } else { m_u1.SetZero(); }; _local18 = (m_maxLength1 - _local16); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass1) * _local18); _local21 = m_limitPositionImpulse1; m_limitPositionImpulse1 = b2Math.b2Max(0, (m_limitPositionImpulse1 + _local19)); _local19 = (m_limitPositionImpulse1 - _local21); _local12 = (-(_local19) * m_u1.x); _local13 = (-(_local19) * m_u1.y); _local1.m_sweep.c.x = (_local1.m_sweep.c.x + (_local1.m_invMass * _local12)); _local1.m_sweep.c.y = (_local1.m_sweep.c.y + (_local1.m_invMass * _local13)); _local1.m_sweep.a = (_local1.m_sweep.a + (_local1.m_invI * ((_local8 * _local13) - (_local9 * _local12)))); _local1.SynchronizeTransform(); }; if (m_limitState2 == e_atUpperLimit){ _local3 = _local2.m_xf.R; _local10 = (m_localAnchor2.x - _local2.m_sweep.localCenter.x); _local11 = (m_localAnchor2.y - _local2.m_sweep.localCenter.y); _local22 = ((_local3.col1.x * _local10) + (_local3.col2.x * _local11)); _local11 = ((_local3.col1.y * _local10) + (_local3.col2.y * _local11)); _local10 = _local22; _local14 = (_local2.m_sweep.c.x + _local10); _local15 = (_local2.m_sweep.c.y + _local11); m_u2.Set((_local14 - _local6), (_local15 - _local7)); _local17 = m_u2.Length(); if (_local17 > b2Settings.b2_linearSlop){ m_u2.x = (m_u2.x * (1 / _local17)); m_u2.y = (m_u2.y * (1 / _local17)); } else { m_u2.SetZero(); }; _local18 = (m_maxLength2 - _local17); _local23 = b2Math.b2Max(_local23, -(_local18)); _local18 = b2Math.b2Clamp((_local18 + b2Settings.b2_linearSlop), -(b2Settings.b2_maxLinearCorrection), 0); _local19 = (-(m_limitMass2) * _local18); _local21 = m_limitPositionImpulse2; m_limitPositionImpulse2 = b2Math.b2Max(0, (m_limitPositionImpulse2 + _local19)); _local19 = (m_limitPositionImpulse2 - _local21); _local14 = (-(_local19) * m_u2.x); _local15 = (-(_local19) * m_u2.y); _local2.m_sweep.c.x = (_local2.m_sweep.c.x + (_local2.m_invMass * _local14)); _local2.m_sweep.c.y = (_local2.m_sweep.c.y + (_local2.m_invMass * _local15)); _local2.m_sweep.a = (_local2.m_sweep.a + (_local2.m_invI * ((_local10 * _local15) - (_local11 * _local14)))); _local2.SynchronizeTransform(); }; return ((_local23 < b2Settings.b2_linearSlop)); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; var _local10:Number = (_local2.m_sweep.c.x + _local5); var _local11:Number = (_local2.m_sweep.c.y + _local6); var _local12:Number = (_local3.m_sweep.c.x + _local8); var _local13:Number = (_local3.m_sweep.c.y + _local9); var _local14:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local15:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local16:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local17:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); m_u1.Set((_local10 - _local14), (_local11 - _local15)); m_u2.Set((_local12 - _local16), (_local13 - _local17)); var _local18:Number = m_u1.Length(); var _local19:Number = m_u2.Length(); if (_local18 > b2Settings.b2_linearSlop){ m_u1.Multiply((1 / _local18)); } else { m_u1.SetZero(); }; if (_local19 > b2Settings.b2_linearSlop){ m_u2.Multiply((1 / _local19)); } else { m_u2.SetZero(); }; var _local20:Number = ((m_constant - _local18) - (m_ratio * _local19)); if (_local20 > 0){ m_state = e_inactiveLimit; m_force = 0; } else { m_state = e_atUpperLimit; m_positionImpulse = 0; }; if (_local18 < m_maxLength1){ m_limitState1 = e_inactiveLimit; m_limitForce1 = 0; } else { m_limitState1 = e_atUpperLimit; m_limitPositionImpulse1 = 0; }; if (_local19 < m_maxLength2){ m_limitState2 = e_inactiveLimit; m_limitForce2 = 0; } else { m_limitState2 = e_atUpperLimit; m_limitPositionImpulse2 = 0; }; var _local21:Number = ((_local5 * m_u1.y) - (_local6 * m_u1.x)); var _local22:Number = ((_local8 * m_u2.y) - (_local9 * m_u2.x)); m_limitMass1 = (_local2.m_invMass + ((_local2.m_invI * _local21) * _local21)); m_limitMass2 = (_local3.m_invMass + ((_local3.m_invI * _local22) * _local22)); m_pulleyMass = (m_limitMass1 + ((m_ratio * m_ratio) * m_limitMass2)); m_limitMass1 = (1 / m_limitMass1); m_limitMass2 = (1 / m_limitMass2); m_pulleyMass = (1 / m_pulleyMass); if (_arg1.warmStarting){ _local23 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.x); _local24 = ((_arg1.dt * (-(m_force) - m_limitForce1)) * m_u1.y); _local25 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.x); _local26 = ((_arg1.dt * ((-(m_ratio) * m_force) - m_limitForce2)) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local23)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local24)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local24) - (_local6 * _local23)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local25)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local26)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local26) - (_local9 * _local25)))); } else { m_force = 0; m_limitForce1 = 0; m_limitForce2 = 0; }; } override public function GetReactionTorque():Number{ return (0); } public function GetRatio():Number{ return (m_ratio); } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local5:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local6:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); var _local7:Number = ((_local4.col1.x * _local5) + (_local4.col2.x * _local6)); _local6 = ((_local4.col1.y * _local5) + (_local4.col2.y * _local6)); _local5 = _local7; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local7 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local7; if (m_state == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = (-(((m_u1.x * _local10) + (m_u1.y * _local11))) - (m_ratio * ((m_u2.x * _local12) + (m_u2.y * _local13)))); _local19 = ((-(_arg1.inv_dt) * m_pulleyMass) * _local18); _local20 = m_force; m_force = b2Math.b2Max(0, (m_force + _local19)); _local19 = (m_force - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local16 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.x); _local17 = (((-(_arg1.dt) * m_ratio) * _local19) * m_u2.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; if (m_limitState1 == e_atUpperLimit){ _local10 = (_local2.m_linearVelocity.x + (-(_local2.m_angularVelocity) * _local6)); _local11 = (_local2.m_linearVelocity.y + (_local2.m_angularVelocity * _local5)); _local18 = -(((m_u1.x * _local10) + (m_u1.y * _local11))); _local19 = ((-(_arg1.inv_dt) * m_limitMass1) * _local18); _local20 = m_limitForce1; m_limitForce1 = b2Math.b2Max(0, (m_limitForce1 + _local19)); _local19 = (m_limitForce1 - _local20); _local14 = ((-(_arg1.dt) * _local19) * m_u1.x); _local15 = ((-(_arg1.dt) * _local19) * m_u1.y); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x + (_local2.m_invMass * _local14)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y + (_local2.m_invMass * _local15)); _local2.m_angularVelocity = (_local2.m_angularVelocity + (_local2.m_invI * ((_local5 * _local15) - (_local6 * _local14)))); }; if (m_limitState2 == e_atUpperLimit){ _local12 = (_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)); _local13 = (_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)); _local18 = -(((m_u2.x * _local12) + (m_u2.y * _local13))); _local19 = ((-(_arg1.inv_dt) * m_limitMass2) * _local18); _local20 = m_limitForce2; m_limitForce2 = b2Math.b2Max(0, (m_limitForce2 + _local19)); _local19 = (m_limitForce2 - _local20); _local16 = ((-(_arg1.dt) * _local19) * m_u2.x); _local17 = ((-(_arg1.dt) * _local19) * m_u2.y); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local16)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local17)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local17) - (_local9 * _local16)))); }; } public function GetLength1():Number{ var _local1:b2Vec2 = m_body1.GetWorldPoint(m_localAnchor1); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor1.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor1.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetLength2():Number{ var _local1:b2Vec2 = m_body2.GetWorldPoint(m_localAnchor2); var _local2:Number = (m_ground.m_xf.position.x + m_groundAnchor2.x); var _local3:Number = (m_ground.m_xf.position.y + m_groundAnchor2.y); var _local4:Number = (_local1.x - _local2); var _local5:Number = (_local1.y - _local3); return (Math.sqrt(((_local4 * _local4) + (_local5 * _local5)))); } public function GetGroundAnchor1():b2Vec2{ var _local1:b2Vec2 = m_ground.m_xf.position.Copy(); _local1.Add(m_groundAnchor1); return (_local1); } } }//package Box2D.Dynamics.Joints
Section 61
//b2PulleyJointDef (Box2D.Dynamics.Joints.b2PulleyJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2PulleyJointDef extends b2JointDef { public var maxLength1:Number; public var maxLength2:Number; public var length1:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var groundAnchor1:b2Vec2; public var groundAnchor2:b2Vec2; public var ratio:Number; public var length2:Number; public function b2PulleyJointDef(){ groundAnchor1 = new b2Vec2(); groundAnchor2 = new b2Vec2(); localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_pulleyJoint; groundAnchor1.Set(-1, 1); groundAnchor2.Set(1, 1); localAnchor1.Set(-1, 0); localAnchor2.Set(1, 0); length1 = 0; maxLength1 = 0; length2 = 0; maxLength2 = 0; ratio = 1; collideConnected = true; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2, _arg4:b2Vec2, _arg5:b2Vec2, _arg6:b2Vec2, _arg7:Number):void{ body1 = _arg1; body2 = _arg2; groundAnchor1.SetV(_arg3); groundAnchor2.SetV(_arg4); localAnchor1 = body1.GetLocalPoint(_arg5); localAnchor2 = body2.GetLocalPoint(_arg6); var _local8:Number = (_arg5.x - _arg3.x); var _local9:Number = (_arg5.y - _arg3.y); length1 = Math.sqrt(((_local8 * _local8) + (_local9 * _local9))); var _local10:Number = (_arg6.x - _arg4.x); var _local11:Number = (_arg6.y - _arg4.y); length2 = Math.sqrt(((_local10 * _local10) + (_local11 * _local11))); ratio = _arg7; var _local12:Number = (length1 + (ratio * length2)); maxLength1 = (_local12 - (ratio * b2PulleyJoint.b2_minPulleyLength)); maxLength2 = ((_local12 - b2PulleyJoint.b2_minPulleyLength) / ratio); } } }//package Box2D.Dynamics.Joints
Section 62
//b2RevoluteJoint (Box2D.Dynamics.Joints.b2RevoluteJoint) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Common.*; public class b2RevoluteJoint extends b2Joint { public var m_limitForce:Number; public var m_pivotMass:b2Mat22; public var m_motorForce:Number; public var m_enableLimit:Boolean; public var m_limitState:int; public var m_motorMass:Number; public var m_localAnchor1:b2Vec2; public var m_localAnchor2:b2Vec2; private var K1:b2Mat22; private var K2:b2Mat22; private var K3:b2Mat22; private var K:b2Mat22; public var m_pivotForce:b2Vec2; public var m_enableMotor:Boolean; public var m_referenceAngle:Number; public var m_limitPositionImpulse:Number; public var m_motorSpeed:Number; public var m_upperAngle:Number; public var m_lowerAngle:Number; public var m_maxMotorTorque:Number; public static var tImpulse:b2Vec2 = new b2Vec2(); public function b2RevoluteJoint(_arg1:b2RevoluteJointDef){ K = new b2Mat22(); K1 = new b2Mat22(); K2 = new b2Mat22(); K3 = new b2Mat22(); m_localAnchor1 = new b2Vec2(); m_localAnchor2 = new b2Vec2(); m_pivotForce = new b2Vec2(); m_pivotMass = new b2Mat22(); super(_arg1); m_localAnchor1.SetV(_arg1.localAnchor1); m_localAnchor2.SetV(_arg1.localAnchor2); m_referenceAngle = _arg1.referenceAngle; m_pivotForce.Set(0, 0); m_motorForce = 0; m_limitForce = 0; m_limitPositionImpulse = 0; m_lowerAngle = _arg1.lowerAngle; m_upperAngle = _arg1.upperAngle; m_maxMotorTorque = _arg1.maxMotorTorque; m_motorSpeed = _arg1.motorSpeed; m_enableLimit = _arg1.enableLimit; m_enableMotor = _arg1.enableMotor; } override public function SolveVelocityConstraints(_arg1:b2TimeStep):void{ var _local4:b2Mat22; var _local5:Number; var _local10:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local2:b2Body = m_body1; var _local3:b2Body = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); var _local7:Number = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local11:Number = (((_local3.m_linearVelocity.x + (-(_local3.m_angularVelocity) * _local9)) - _local2.m_linearVelocity.x) - (-(_local2.m_angularVelocity) * _local7)); var _local12:Number = (((_local3.m_linearVelocity.y + (_local3.m_angularVelocity * _local8)) - _local2.m_linearVelocity.y) - (_local2.m_angularVelocity * _local6)); var _local13:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.x * _local11) + (m_pivotMass.col2.x * _local12))); var _local14:Number = (-(_arg1.inv_dt) * ((m_pivotMass.col1.y * _local11) + (m_pivotMass.col2.y * _local12))); m_pivotForce.x = (m_pivotForce.x + _local13); m_pivotForce.y = (m_pivotForce.y + _local14); var _local15:Number = (_arg1.dt * _local13); _local16 = (_arg1.dt * _local14); _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - (_local2.m_invMass * _local15)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - (_local2.m_invMass * _local16)); _local2.m_angularVelocity = (_local2.m_angularVelocity - (_local2.m_invI * ((_local6 * _local16) - (_local7 * _local15)))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + (_local3.m_invMass * _local15)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + (_local3.m_invMass * _local16)); _local3.m_angularVelocity = (_local3.m_angularVelocity + (_local3.m_invI * ((_local8 * _local16) - (_local9 * _local15)))); if (((m_enableMotor) && (!((m_limitState == e_equalLimits))))){ _local17 = ((_local3.m_angularVelocity - _local2.m_angularVelocity) - m_motorSpeed); _local18 = ((-(_arg1.inv_dt) * m_motorMass) * _local17); _local19 = m_motorForce; m_motorForce = b2Math.b2Clamp((m_motorForce + _local18), -(m_maxMotorTorque), m_maxMotorTorque); _local18 = (m_motorForce - _local19); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local18)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local18)); }; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local20 = (_local3.m_angularVelocity - _local2.m_angularVelocity); _local21 = ((-(_arg1.inv_dt) * m_motorMass) * _local20); if (m_limitState == e_equalLimits){ m_limitForce = (m_limitForce + _local21); } else { if (m_limitState == e_atLowerLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Max((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); } else { if (m_limitState == e_atUpperLimit){ _local10 = m_limitForce; m_limitForce = b2Math.b2Min((m_limitForce + _local21), 0); _local21 = (m_limitForce - _local10); }; }; }; _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_local2.m_invI * _arg1.dt) * _local21)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_local3.m_invI * _arg1.dt) * _local21)); }; } override public function GetAnchor1():b2Vec2{ return (m_body1.GetWorldPoint(m_localAnchor1)); } override public function GetAnchor2():b2Vec2{ return (m_body2.GetWorldPoint(m_localAnchor2)); } public function GetUpperLimit():Number{ return (m_upperAngle); } public function GetLowerLimit():Number{ return (m_lowerAngle); } public function EnableMotor(_arg1:Boolean):void{ m_enableMotor = _arg1; } public function GetMotorSpeed():Number{ return (m_motorSpeed); } override public function GetReactionForce():b2Vec2{ return (m_pivotForce); } override public function SolvePositionConstraints():Boolean{ var _local1:Number; var _local2:Number; var _local6:b2Mat22; var _local25:Number; var _local26:Number; var _local3:b2Body = m_body1; var _local4:b2Body = m_body2; var _local5:Number = 0; _local6 = _local3.m_xf.R; var _local7:Number = (m_localAnchor1.x - _local3.m_sweep.localCenter.x); var _local8:Number = (m_localAnchor1.y - _local3.m_sweep.localCenter.y); var _local9:Number = ((_local6.col1.x * _local7) + (_local6.col2.x * _local8)); _local8 = ((_local6.col1.y * _local7) + (_local6.col2.y * _local8)); _local7 = _local9; _local6 = _local4.m_xf.R; var _local10:Number = (m_localAnchor2.x - _local4.m_sweep.localCenter.x); var _local11:Number = (m_localAnchor2.y - _local4.m_sweep.localCenter.y); _local9 = ((_local6.col1.x * _local10) + (_local6.col2.x * _local11)); _local11 = ((_local6.col1.y * _local10) + (_local6.col2.y * _local11)); _local10 = _local9; var _local12:Number = (_local3.m_sweep.c.x + _local7); var _local13:Number = (_local3.m_sweep.c.y + _local8); var _local14:Number = (_local4.m_sweep.c.x + _local10); var _local15:Number = (_local4.m_sweep.c.y + _local11); var _local16:Number = (_local14 - _local12); var _local17:Number = (_local15 - _local13); _local5 = Math.sqrt(((_local16 * _local16) + (_local17 * _local17))); var _local18:Number = _local3.m_invMass; var _local19:Number = _local4.m_invMass; var _local20:Number = _local3.m_invI; var _local21:Number = _local4.m_invI; K1.col1.x = (_local18 + _local19); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local18 + _local19); K2.col1.x = ((_local20 * _local8) * _local8); K2.col2.x = ((-(_local20) * _local7) * _local8); K2.col1.y = ((-(_local20) * _local7) * _local8); K2.col2.y = ((_local20 * _local7) * _local7); K3.col1.x = ((_local21 * _local11) * _local11); K3.col2.x = ((-(_local21) * _local10) * _local11); K3.col1.y = ((-(_local21) * _local10) * _local11); K3.col2.y = ((_local21 * _local10) * _local10); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Solve(tImpulse, -(_local16), -(_local17)); var _local22:Number = tImpulse.x; var _local23:Number = tImpulse.y; _local3.m_sweep.c.x = (_local3.m_sweep.c.x - (_local3.m_invMass * _local22)); _local3.m_sweep.c.y = (_local3.m_sweep.c.y - (_local3.m_invMass * _local23)); _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * ((_local7 * _local23) - (_local8 * _local22)))); _local4.m_sweep.c.x = (_local4.m_sweep.c.x + (_local4.m_invMass * _local22)); _local4.m_sweep.c.y = (_local4.m_sweep.c.y + (_local4.m_invMass * _local23)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * ((_local10 * _local23) - (_local11 * _local22)))); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); var _local24:Number = 0; if (((m_enableLimit) && (!((m_limitState == e_inactiveLimit))))){ _local25 = ((_local4.m_sweep.a - _local3.m_sweep.a) - m_referenceAngle); _local26 = 0; if (m_limitState == e_equalLimits){ _local2 = b2Math.b2Clamp(_local25, -(b2Settings.b2_maxAngularCorrection), b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local24 = b2Math.b2Abs(_local2); } else { if (m_limitState == e_atLowerLimit){ _local2 = (_local25 - m_lowerAngle); _local24 = b2Math.b2Max(0, -(_local2)); _local2 = b2Math.b2Clamp((_local2 + b2Settings.b2_angularSlop), -(b2Settings.b2_maxAngularCorrection), 0); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Max((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); } else { if (m_limitState == e_atUpperLimit){ _local2 = (_local25 - m_upperAngle); _local24 = b2Math.b2Max(0, _local2); _local2 = b2Math.b2Clamp((_local2 - b2Settings.b2_angularSlop), 0, b2Settings.b2_maxAngularCorrection); _local26 = (-(m_motorMass) * _local2); _local1 = m_limitPositionImpulse; m_limitPositionImpulse = b2Math.b2Min((m_limitPositionImpulse + _local26), 0); _local26 = (m_limitPositionImpulse - _local1); }; }; }; _local3.m_sweep.a = (_local3.m_sweep.a - (_local3.m_invI * _local26)); _local4.m_sweep.a = (_local4.m_sweep.a + (_local4.m_invI * _local26)); _local3.SynchronizeTransform(); _local4.SynchronizeTransform(); }; return ((((_local5 <= b2Settings.b2_linearSlop)) && ((_local24 <= b2Settings.b2_angularSlop)))); } public function SetMotorSpeed(_arg1:Number):void{ m_motorSpeed = _arg1; } public function GetJointSpeed():Number{ return ((m_body2.m_angularVelocity - m_body1.m_angularVelocity)); } public function SetMaxMotorTorque(_arg1:Number):void{ m_maxMotorTorque = _arg1; } public function GetJointAngle():Number{ return (((m_body2.m_sweep.a - m_body1.m_sweep.a) - m_referenceAngle)); } public function GetMotorTorque():Number{ return (m_motorForce); } override public function InitVelocityConstraints(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Body; var _local4:b2Mat22; var _local5:Number; var _local7:Number; var _local14:Number; _local2 = m_body1; _local3 = m_body2; _local4 = _local2.m_xf.R; var _local6:Number = (m_localAnchor1.x - _local2.m_sweep.localCenter.x); _local7 = (m_localAnchor1.y - _local2.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local6) + (_local4.col2.x * _local7)); _local7 = ((_local4.col1.y * _local6) + (_local4.col2.y * _local7)); _local6 = _local5; _local4 = _local3.m_xf.R; var _local8:Number = (m_localAnchor2.x - _local3.m_sweep.localCenter.x); var _local9:Number = (m_localAnchor2.y - _local3.m_sweep.localCenter.y); _local5 = ((_local4.col1.x * _local8) + (_local4.col2.x * _local9)); _local9 = ((_local4.col1.y * _local8) + (_local4.col2.y * _local9)); _local8 = _local5; var _local10:Number = _local2.m_invMass; var _local11:Number = _local3.m_invMass; var _local12:Number = _local2.m_invI; var _local13:Number = _local3.m_invI; K1.col1.x = (_local10 + _local11); K1.col2.x = 0; K1.col1.y = 0; K1.col2.y = (_local10 + _local11); K2.col1.x = ((_local12 * _local7) * _local7); K2.col2.x = ((-(_local12) * _local6) * _local7); K2.col1.y = ((-(_local12) * _local6) * _local7); K2.col2.y = ((_local12 * _local6) * _local6); K3.col1.x = ((_local13 * _local9) * _local9); K3.col2.x = ((-(_local13) * _local8) * _local9); K3.col1.y = ((-(_local13) * _local8) * _local9); K3.col2.y = ((_local13 * _local8) * _local8); K.SetM(K1); K.AddM(K2); K.AddM(K3); K.Invert(m_pivotMass); m_motorMass = (1 / (_local12 + _local13)); if (m_enableMotor == false){ m_motorForce = 0; }; if (m_enableLimit){ _local14 = ((_local3.m_sweep.a - _local2.m_sweep.a) - m_referenceAngle); if (b2Math.b2Abs((m_upperAngle - m_lowerAngle)) < (2 * b2Settings.b2_angularSlop)){ m_limitState = e_equalLimits; } else { if (_local14 <= m_lowerAngle){ if (m_limitState != e_atLowerLimit){ m_limitForce = 0; }; m_limitState = e_atLowerLimit; } else { if (_local14 >= m_upperAngle){ if (m_limitState != e_atUpperLimit){ m_limitForce = 0; }; m_limitState = e_atUpperLimit; } else { m_limitState = e_inactiveLimit; m_limitForce = 0; }; }; }; } else { m_limitForce = 0; }; if (_arg1.warmStarting){ _local2.m_linearVelocity.x = (_local2.m_linearVelocity.x - ((_arg1.dt * _local10) * m_pivotForce.x)); _local2.m_linearVelocity.y = (_local2.m_linearVelocity.y - ((_arg1.dt * _local10) * m_pivotForce.y)); _local2.m_angularVelocity = (_local2.m_angularVelocity - ((_arg1.dt * _local12) * ((((_local6 * m_pivotForce.y) - (_local7 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); _local3.m_linearVelocity.x = (_local3.m_linearVelocity.x + ((_arg1.dt * _local11) * m_pivotForce.x)); _local3.m_linearVelocity.y = (_local3.m_linearVelocity.y + ((_arg1.dt * _local11) * m_pivotForce.y)); _local3.m_angularVelocity = (_local3.m_angularVelocity + ((_arg1.dt * _local13) * ((((_local8 * m_pivotForce.y) - (_local9 * m_pivotForce.x)) + m_motorForce) + m_limitForce))); } else { m_pivotForce.SetZero(); m_motorForce = 0; m_limitForce = 0; }; m_limitPositionImpulse = 0; } public function EnableLimit(_arg1:Boolean):void{ m_enableLimit = _arg1; } override public function GetReactionTorque():Number{ return (m_limitForce); } public function IsLimitEnabled():Boolean{ return (m_enableLimit); } public function IsMotorEnabled():Boolean{ return (m_enableMotor); } public function SetLimits(_arg1:Number, _arg2:Number):void{ m_lowerAngle = _arg1; m_upperAngle = _arg2; } } }//package Box2D.Dynamics.Joints
Section 63
//b2RevoluteJointDef (Box2D.Dynamics.Joints.b2RevoluteJointDef) package Box2D.Dynamics.Joints { import Box2D.Common.Math.*; import Box2D.Dynamics.*; public class b2RevoluteJointDef extends b2JointDef { public var upperAngle:Number; public var enableMotor:Boolean; public var referenceAngle:Number; public var motorSpeed:Number; public var localAnchor1:b2Vec2; public var localAnchor2:b2Vec2; public var enableLimit:Boolean; public var lowerAngle:Number; public var maxMotorTorque:Number; public function b2RevoluteJointDef(){ localAnchor1 = new b2Vec2(); localAnchor2 = new b2Vec2(); super(); type = b2Joint.e_revoluteJoint; localAnchor1.Set(0, 0); localAnchor2.Set(0, 0); referenceAngle = 0; lowerAngle = 0; upperAngle = 0; maxMotorTorque = 0; motorSpeed = 0; enableLimit = false; enableMotor = false; } public function Initialize(_arg1:b2Body, _arg2:b2Body, _arg3:b2Vec2):void{ body1 = _arg1; body2 = _arg2; localAnchor1 = body1.GetLocalPoint(_arg3); localAnchor2 = body2.GetLocalPoint(_arg3); referenceAngle = (body2.GetAngle() - body1.GetAngle()); } } }//package Box2D.Dynamics.Joints
Section 64
//b2Body (Box2D.Dynamics.b2Body) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.Contacts.*; public class b2Body { public var m_next:b2Body; public var m_xf:b2XForm; public var m_contactList:b2ContactEdge; public var m_angularVelocity:Number; public var m_shapeList:b2Shape; public var m_force:b2Vec2; public var m_mass:Number; public var m_sweep:b2Sweep; public var m_torque:Number; public var m_userData; public var m_flags:uint; public var m_world:b2World; public var m_prev:b2Body; public var m_invMass:Number; public var m_type:int; public var m_linearDamping:Number; public var m_shapeCount:int; public var m_angularDamping:Number; public var m_invI:Number; public var m_linearVelocity:b2Vec2; public var m_sleepTime:Number; public var m_jointList:b2JointEdge; public var m_I:Number; public static var e_fixedRotationFlag:uint = 64; public static var e_frozenFlag:uint = 2; public static var e_maxTypes:uint = 3; public static var e_sleepFlag:uint = 8; private static var s_massData:b2MassData = new b2MassData(); public static var e_bulletFlag:uint = 32; public static var e_staticType:uint = 1; public static var e_islandFlag:uint = 4; public static var e_allowSleepFlag:uint = 16; private static var s_xf1:b2XForm = new b2XForm(); public static var e_dynamicType:uint = 2; public function b2Body(_arg1:b2BodyDef, _arg2:b2World){ m_xf = new b2XForm(); m_sweep = new b2Sweep(); m_linearVelocity = new b2Vec2(); m_force = new b2Vec2(); super(); m_flags = 0; if (_arg1.isBullet){ m_flags = (m_flags | e_bulletFlag); }; if (_arg1.fixedRotation){ m_flags = (m_flags | e_fixedRotationFlag); }; if (_arg1.allowSleep){ m_flags = (m_flags | e_allowSleepFlag); }; if (_arg1.isSleeping){ m_flags = (m_flags | e_sleepFlag); }; m_world = _arg2; m_xf.position.SetV(_arg1.position); m_xf.R.Set(_arg1.angle); m_sweep.localCenter.SetV(_arg1.massData.center); m_sweep.t0 = 1; m_sweep.a0 = (m_sweep.a = _arg1.angle); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_jointList = null; m_contactList = null; m_prev = null; m_next = null; m_linearDamping = _arg1.linearDamping; m_angularDamping = _arg1.angularDamping; m_force.Set(0, 0); m_torque = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_sleepTime = 0; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.massData.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.massData.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; m_userData = _arg1.userData; m_shapeList = null; m_shapeCount = 0; } public function GetLinearVelocityFromWorldPoint(_arg1:b2Vec2):b2Vec2{ return (new b2Vec2((m_linearVelocity.x - (m_angularVelocity * (_arg1.y - m_sweep.c.y))), (m_linearVelocity.y + (m_angularVelocity * (_arg1.x - m_sweep.c.x))))); } public function SetLinearVelocity(_arg1:b2Vec2):void{ m_linearVelocity.SetV(_arg1); } public function WakeUp():void{ m_flags = (m_flags & ~(e_sleepFlag)); m_sleepTime = 0; } public function GetLocalCenter():b2Vec2{ return (m_sweep.localCenter); } public function ApplyTorque(_arg1:Number):void{ if (IsSleeping()){ WakeUp(); }; m_torque = (m_torque + _arg1); } public function IsFrozen():Boolean{ return (((m_flags & e_frozenFlag) == e_frozenFlag)); } public function IsDynamic():Boolean{ return ((m_type == e_dynamicType)); } public function GetLinearVelocity():b2Vec2{ return (m_linearVelocity); } public function SynchronizeTransform():void{ m_xf.R.Set(m_sweep.a); var _local1:b2Mat22 = m_xf.R; var _local2:b2Vec2 = m_sweep.localCenter; m_xf.position.x = (m_sweep.c.x - ((_local1.col1.x * _local2.x) + (_local1.col2.x * _local2.y))); m_xf.position.y = (m_sweep.c.y - ((_local1.col1.y * _local2.x) + (_local1.col2.y * _local2.y))); } public function GetInertia():Number{ return (m_I); } public function IsSleeping():Boolean{ return (((m_flags & e_sleepFlag) == e_sleepFlag)); } public function SetMassFromShapes():void{ var _local1:b2Shape; if (m_world.m_lock == true){ return; }; m_mass = 0; m_invMass = 0; m_I = 0; m_invI = 0; var _local2:Number = 0; var _local3:Number = 0; var _local4:b2MassData = s_massData; _local1 = m_shapeList; while (_local1) { _local1.ComputeMass(_local4); m_mass = (m_mass + _local4.mass); _local2 = (_local2 + (_local4.mass * _local4.center.x)); _local3 = (_local3 + (_local4.mass * _local4.center.y)); m_I = (m_I + _local4.I); _local1 = _local1.m_next; }; if (m_mass > 0){ m_invMass = (1 / m_mass); _local2 = (_local2 * m_invMass); _local3 = (_local3 * m_invMass); }; if ((((m_I > 0)) && (((m_flags & e_fixedRotationFlag) == 0)))){ m_I = (m_I - (m_mass * ((_local2 * _local2) + (_local3 * _local3)))); m_invI = (1 / m_I); } else { m_I = 0; m_invI = 0; }; m_sweep.localCenter.Set(_local2, _local3); var _local5:b2Mat22 = m_xf.R; var _local6:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local5.col1.x * _local6.x) + (_local5.col2.x * _local6.y)); m_sweep.c.y = ((_local5.col1.y * _local6.x) + (_local5.col2.y * _local6.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local1 = m_shapeList; while (_local1) { _local1.UpdateSweepRadius(m_sweep.localCenter); _local1 = _local1.m_next; }; var _local7:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local7 != m_type){ _local1 = m_shapeList; while (_local1) { _local1.RefilterProxy(m_world.m_broadPhase, m_xf); _local1 = _local1.m_next; }; }; } public function PutToSleep():void{ m_flags = (m_flags | e_sleepFlag); m_sleepTime = 0; m_linearVelocity.SetZero(); m_angularVelocity = 0; m_force.SetZero(); m_torque = 0; } public function GetJointList():b2JointEdge{ return (m_jointList); } public function SetXForm(_arg1:b2Vec2, _arg2:Number):Boolean{ var _local3:b2Shape; var _local7:Boolean; if (m_world.m_lock == true){ return (true); }; if (IsFrozen()){ return (false); }; m_xf.R.Set(_arg2); m_xf.position.SetV(_arg1); var _local4:b2Mat22 = m_xf.R; var _local5:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local4.col1.x * _local5.x) + (_local4.col2.x * _local5.y)); m_sweep.c.y = ((_local4.col1.y * _local5.x) + (_local4.col2.y * _local5.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); m_sweep.a0 = (m_sweep.a = _arg2); var _local6:Boolean; _local3 = m_shapeList; while (_local3) { _local7 = _local3.Synchronize(m_world.m_broadPhase, m_xf, m_xf); if (_local7 == false){ _local6 = true; break; }; _local3 = _local3.m_next; }; if (_local6 == true){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local3 = m_shapeList; while (_local3) { _local3.DestroyProxy(m_world.m_broadPhase); _local3 = _local3.m_next; }; return (false); }; m_world.m_broadPhase.Commit(); return (true); } public function GetLocalPoint(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulXT(m_xf, _arg1)); } public function ApplyForce(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_force.x = (m_force.x + _arg1.x); m_force.y = (m_force.y + _arg1.y); m_torque = (m_torque + (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x))); } public function SynchronizeShapes():Boolean{ var _local4:b2Shape; var _local1:b2XForm = s_xf1; _local1.R.Set(m_sweep.a0); var _local2:b2Mat22 = _local1.R; var _local3:b2Vec2 = m_sweep.localCenter; _local1.position.x = (m_sweep.c0.x - ((_local2.col1.x * _local3.x) + (_local2.col2.x * _local3.y))); _local1.position.y = (m_sweep.c0.y - ((_local2.col1.y * _local3.x) + (_local2.col2.y * _local3.y))); var _local5:Boolean; _local4 = m_shapeList; while (_local4) { _local5 = _local4.Synchronize(m_world.m_broadPhase, _local1, m_xf); if (_local5 == false){ break; }; _local4 = _local4.m_next; }; if (_local5 == false){ m_flags = (m_flags | e_frozenFlag); m_linearVelocity.SetZero(); m_angularVelocity = 0; _local4 = m_shapeList; while (_local4) { _local4.DestroyProxy(m_world.m_broadPhase); _local4 = _local4.m_next; }; return (false); }; return (true); } public function GetAngle():Number{ return (m_sweep.a); } public function GetXForm():b2XForm{ return (m_xf); } public function GetLinearVelocityFromLocalPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (new b2Vec2((m_linearVelocity.x + (m_angularVelocity * (_local3.y - m_sweep.c.y))), (m_linearVelocity.x - (m_angularVelocity * (_local3.x - m_sweep.c.x))))); } public function GetNext():b2Body{ return (m_next); } public function GetMass():Number{ return (m_mass); } public function ApplyImpulse(_arg1:b2Vec2, _arg2:b2Vec2):void{ if (IsSleeping()){ WakeUp(); }; m_linearVelocity.x = (m_linearVelocity.x + (m_invMass * _arg1.x)); m_linearVelocity.y = (m_linearVelocity.y + (m_invMass * _arg1.y)); m_angularVelocity = (m_angularVelocity + (m_invI * (((_arg2.x - m_sweep.c.x) * _arg1.y) - ((_arg2.y - m_sweep.c.y) * _arg1.x)))); } public function GetAngularVelocity():Number{ return (m_angularVelocity); } public function SetAngularVelocity(_arg1:Number):void{ m_angularVelocity = _arg1; } public function SetMass(_arg1:b2MassData):void{ var _local2:b2Shape; if (m_world.m_lock == true){ return; }; m_invMass = 0; m_I = 0; m_invI = 0; m_mass = _arg1.mass; if (m_mass > 0){ m_invMass = (1 / m_mass); }; if ((m_flags & b2Body.e_fixedRotationFlag) == 0){ m_I = _arg1.I; }; if (m_I > 0){ m_invI = (1 / m_I); }; m_sweep.localCenter.SetV(_arg1.center); var _local3:b2Mat22 = m_xf.R; var _local4:b2Vec2 = m_sweep.localCenter; m_sweep.c.x = ((_local3.col1.x * _local4.x) + (_local3.col2.x * _local4.y)); m_sweep.c.y = ((_local3.col1.y * _local4.x) + (_local3.col2.y * _local4.y)); m_sweep.c.x = (m_sweep.c.x + m_xf.position.x); m_sweep.c.y = (m_sweep.c.y + m_xf.position.y); m_sweep.c0.SetV(m_sweep.c); _local2 = m_shapeList; while (_local2) { _local2.UpdateSweepRadius(m_sweep.localCenter); _local2 = _local2.m_next; }; var _local5:int = m_type; if ((((m_invMass == 0)) && ((m_invI == 0)))){ m_type = e_staticType; } else { m_type = e_dynamicType; }; if (_local5 != m_type){ _local2 = m_shapeList; while (_local2) { _local2.RefilterProxy(m_world.m_broadPhase, m_xf); _local2 = _local2.m_next; }; }; } public function IsStatic():Boolean{ return ((m_type == e_staticType)); } public function GetWorldVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulMV(m_xf.R, _arg1)); } public function GetShapeList():b2Shape{ return (m_shapeList); } public function Advance(_arg1:Number):void{ m_sweep.Advance(_arg1); m_sweep.c.SetV(m_sweep.c0); m_sweep.a = m_sweep.a0; SynchronizeTransform(); } public function SetBullet(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_bulletFlag); } else { m_flags = (m_flags & ~(e_bulletFlag)); }; } public function CreateShape(_arg1:b2ShapeDef):b2Shape{ var _local2:b2Shape; if (m_world.m_lock == true){ return (null); }; _local2 = b2Shape.Create(_arg1, m_world.m_blockAllocator); _local2.m_next = m_shapeList; m_shapeList = _local2; m_shapeCount++; _local2.m_body = this; _local2.CreateProxy(m_world.m_broadPhase, m_xf); _local2.UpdateSweepRadius(m_sweep.localCenter); return (_local2); } public function IsConnected(_arg1:b2Body):Boolean{ var _local2:b2JointEdge = m_jointList; while (_local2) { if (_local2.other == _arg1){ return ((_local2.joint.m_collideConnected == false)); }; _local2 = _local2.next; }; return (false); } public function DestroyShape(_arg1:b2Shape):void{ if (m_world.m_lock == true){ return; }; _arg1.DestroyProxy(m_world.m_broadPhase); var _local2:b2Shape = m_shapeList; var _local3:b2Shape; var _local4:Boolean; while (_local2 != null) { if (_local2 == _arg1){ if (_local3){ _local3.m_next = _arg1.m_next; } else { m_shapeList = _arg1.m_next; }; _local4 = true; break; }; _local3 = _local2; _local2 = _local2.m_next; }; _arg1.m_body = null; _arg1.m_next = null; m_shapeCount--; b2Shape.Destroy(_arg1, m_world.m_blockAllocator); } public function GetUserData(){ return (m_userData); } public function IsBullet():Boolean{ return (((m_flags & e_bulletFlag) == e_bulletFlag)); } public function GetWorldCenter():b2Vec2{ return (m_sweep.c); } public function AllowSleeping(_arg1:Boolean):void{ if (_arg1){ m_flags = (m_flags | e_allowSleepFlag); } else { m_flags = (m_flags & ~(e_allowSleepFlag)); WakeUp(); }; } public function SetUserData(_arg1):void{ m_userData = _arg1; } public function GetLocalVector(_arg1:b2Vec2):b2Vec2{ return (b2Math.b2MulTMV(m_xf.R, _arg1)); } public function GetWorldPoint(_arg1:b2Vec2):b2Vec2{ var _local2:b2Mat22 = m_xf.R; var _local3:b2Vec2 = new b2Vec2(((_local2.col1.x * _arg1.x) + (_local2.col2.x * _arg1.y)), ((_local2.col1.y * _arg1.x) + (_local2.col2.y * _arg1.y))); _local3.x = (_local3.x + m_xf.position.x); _local3.y = (_local3.y + m_xf.position.y); return (_local3); } public function GetWorld():b2World{ return (m_world); } public function GetPosition():b2Vec2{ return (m_xf.position); } } }//package Box2D.Dynamics
Section 65
//b2BodyDef (Box2D.Dynamics.b2BodyDef) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; public class b2BodyDef { public var angularDamping:Number; public var angle:Number; public var isSleeping:Boolean; public var position:b2Vec2; public var isBullet:Boolean; public var allowSleep:Boolean; public var userData; public var fixedRotation:Boolean; public var linearDamping:Number; public var massData:b2MassData; public function b2BodyDef(){ massData = new b2MassData(); position = new b2Vec2(); super(); massData.center.SetZero(); massData.mass = 0; massData.I = 0; userData = null; position.Set(0, 0); angle = 0; linearDamping = 0; angularDamping = 0; allowSleep = true; isSleeping = false; fixedRotation = false; isBullet = false; } } }//package Box2D.Dynamics
Section 66
//b2BoundaryListener (Box2D.Dynamics.b2BoundaryListener) package Box2D.Dynamics { public class b2BoundaryListener { public function Violation(_arg1:b2Body):void{ } } }//package Box2D.Dynamics
Section 67
//b2ContactFilter (Box2D.Dynamics.b2ContactFilter) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; public class b2ContactFilter { public static var b2_defaultFilter:b2ContactFilter = new (b2ContactFilter); ; public function ShouldCollide(_arg1:b2Shape, _arg2:b2Shape):Boolean{ var _local3:b2FilterData = _arg1.GetFilterData(); var _local4:b2FilterData = _arg2.GetFilterData(); if ((((_local3.groupIndex == _local4.groupIndex)) && (!((_local3.groupIndex == 0))))){ return ((_local3.groupIndex > 0)); }; var _local5:Boolean = ((!(((_local3.maskBits & _local4.categoryBits) == 0))) && (!(((_local3.categoryBits & _local4.maskBits) == 0)))); return (_local5); } } }//package Box2D.Dynamics
Section 68
//b2ContactListener (Box2D.Dynamics.b2ContactListener) package Box2D.Dynamics { import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; public class b2ContactListener { public function Add(_arg1:b2ContactPoint):void{ } public function Remove(_arg1:b2ContactPoint):void{ } public function Persist(_arg1:b2ContactPoint):void{ } public function Result(_arg1:b2ContactResult):void{ } } }//package Box2D.Dynamics
Section 69
//b2ContactManager (Box2D.Dynamics.b2ContactManager) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2ContactManager extends b2PairCallback { public var m_world:b2World; public var m_destroyImmediate:Boolean; public var m_nullContact:b2NullContact; private static const s_evalCP:b2ContactPoint = new b2ContactPoint(); public function b2ContactManager(){ m_nullContact = new b2NullContact(); super(); m_world = null; m_destroyImmediate = false; } override public function PairRemoved(_arg1, _arg2, _arg3):void{ if (_arg3 == null){ return; }; var _local4:b2Contact = (_arg3 as b2Contact); if (_local4 == m_nullContact){ return; }; Destroy(_local4); } public function Destroy(_arg1:b2Contact):void{ var _local7:b2Body; var _local8:b2Body; var _local9:Array; var _local10:b2ContactPoint; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2Vec2; var _local16:b2Vec2; var _local2:b2Shape = _arg1.m_shape1; var _local3:b2Shape = _arg1.m_shape2; var _local4:int = _arg1.m_manifoldCount; if ((((_local4 > 0)) && (m_world.m_contactListener))){ _local7 = _local2.m_body; _local8 = _local3.m_body; _local9 = _arg1.GetManifolds(); _local10 = s_evalCP; _local10.shape1 = _arg1.m_shape1; _local10.shape2 = _arg1.m_shape2; _local10.friction = _arg1.m_friction; _local10.restitution = _arg1.m_restitution; _local11 = 0; while (_local11 < _local4) { _local12 = _local9[_local11]; _local10.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local10.position = _local7.GetWorldPoint(_local14.localPoint1); _local15 = _local7.GetLinearVelocityFromLocalPoint(_local14.localPoint1); _local16 = _local8.GetLinearVelocityFromLocalPoint(_local14.localPoint2); _local10.velocity.Set((_local16.x - _local15.x), (_local16.y - _local15.y)); _local10.separation = _local14.separation; _local10.id.key = _local14.id._key; m_world.m_contactListener.Remove(_local10); _local13++; }; _local11++; }; }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_world.m_contactList){ m_world.m_contactList = _arg1.m_next; }; var _local5:b2Body = _local2.m_body; var _local6:b2Body = _local3.m_body; if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local5.m_contactList){ _local5.m_contactList = _arg1.m_node1.next; }; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local6.m_contactList){ _local6.m_contactList = _arg1.m_node2.next; }; b2Contact.Destroy(_arg1, m_world.m_blockAllocator); m_world.m_contactCount--; } override public function PairAdded(_arg1, _arg2){ var _local3:b2Shape = (_arg1 as b2Shape); var _local4:b2Shape = (_arg2 as b2Shape); var _local5:b2Body = _local3.m_body; var _local6:b2Body = _local4.m_body; if (((_local5.IsStatic()) && (_local6.IsStatic()))){ return (m_nullContact); }; if (_local3.m_body == _local4.m_body){ return (m_nullContact); }; if (_local6.IsConnected(_local5)){ return (m_nullContact); }; if (((!((m_world.m_contactFilter == null))) && ((m_world.m_contactFilter.ShouldCollide(_local3, _local4) == false)))){ return (m_nullContact); }; var _local7:b2Contact = b2Contact.Create(_local3, _local4, m_world.m_blockAllocator); if (_local7 == null){ return (m_nullContact); }; _local3 = _local7.m_shape1; _local4 = _local7.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local7.m_prev = null; _local7.m_next = m_world.m_contactList; if (m_world.m_contactList != null){ m_world.m_contactList.m_prev = _local7; }; m_world.m_contactList = _local7; _local7.m_node1.contact = _local7; _local7.m_node1.other = _local6; _local7.m_node1.prev = null; _local7.m_node1.next = _local5.m_contactList; if (_local5.m_contactList != null){ _local5.m_contactList.prev = _local7.m_node1; }; _local5.m_contactList = _local7.m_node1; _local7.m_node2.contact = _local7; _local7.m_node2.other = _local5; _local7.m_node2.prev = null; _local7.m_node2.next = _local6.m_contactList; if (_local6.m_contactList != null){ _local6.m_contactList.prev = _local7.m_node2; }; _local6.m_contactList = _local7.m_node2; m_world.m_contactCount++; return (_local7); } public function Collide():void{ var _local2:b2Body; var _local3:b2Body; var _local1:b2Contact = m_world.m_contactList; while (_local1) { _local2 = _local1.m_shape1.m_body; _local3 = _local1.m_shape2.m_body; if (((_local2.IsSleeping()) && (_local3.IsSleeping()))){ } else { _local1.Update(m_world.m_contactListener); }; _local1 = _local1.m_next; }; } } }//package Box2D.Dynamics
Section 70
//b2DebugDraw (Box2D.Dynamics.b2DebugDraw) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; public class b2DebugDraw { public var m_xformScale:Number;// = 1 public var m_fillAlpha:Number;// = 1 public var m_alpha:Number;// = 1 public var m_drawFlags:uint; public var m_lineThickness:Number;// = 1 public var m_drawScale:Number;// = 1 public var m_sprite:Sprite; public static var e_coreShapeBit:uint = 4; public static var e_shapeBit:uint = 1; public static var e_centerOfMassBit:uint = 64; public static var e_aabbBit:uint = 8; public static var e_obbBit:uint = 16; public static var e_pairBit:uint = 32; public static var e_jointBit:uint = 2; public function b2DebugDraw(){ m_drawFlags = 0; } public function ClearFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags & ~(_arg1)); } public function SetFlags(_arg1:uint):void{ m_drawFlags = _arg1; } public function AppendFlags(_arg1:uint):void{ m_drawFlags = (m_drawFlags | _arg1); } public function DrawSegment(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo((_arg2.x * m_drawScale), (_arg2.y * m_drawScale)); } public function DrawSolidPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.beginFill(_arg3.color, m_fillAlpha); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); m_sprite.graphics.endFill(); } public function DrawCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); } public function DrawPolygon(_arg1:Array, _arg2:int, _arg3:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg3.color, m_alpha); m_sprite.graphics.moveTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); var _local4 = 1; while (_local4 < _arg2) { m_sprite.graphics.lineTo((_arg1[_local4].x * m_drawScale), (_arg1[_local4].y * m_drawScale)); _local4++; }; m_sprite.graphics.lineTo((_arg1[0].x * m_drawScale), (_arg1[0].y * m_drawScale)); } public function DrawSolidCircle(_arg1:b2Vec2, _arg2:Number, _arg3:b2Vec2, _arg4:b2Color):void{ m_sprite.graphics.lineStyle(m_lineThickness, _arg4.color, m_alpha); m_sprite.graphics.moveTo(0, 0); m_sprite.graphics.beginFill(_arg4.color, m_fillAlpha); m_sprite.graphics.drawCircle((_arg1.x * m_drawScale), (_arg1.y * m_drawScale), (_arg2 * m_drawScale)); m_sprite.graphics.endFill(); m_sprite.graphics.moveTo((_arg1.x * m_drawScale), (_arg1.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.x + (_arg3.x * _arg2)) * m_drawScale), ((_arg1.y + (_arg3.y * _arg2)) * m_drawScale)); } public function GetFlags():uint{ return (m_drawFlags); } public function DrawXForm(_arg1:b2XForm):void{ m_sprite.graphics.lineStyle(m_lineThickness, 0xFF0000, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col1.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col1.y)) * m_drawScale)); m_sprite.graphics.lineStyle(m_lineThickness, 0xFF00, m_alpha); m_sprite.graphics.moveTo((_arg1.position.x * m_drawScale), (_arg1.position.y * m_drawScale)); m_sprite.graphics.lineTo(((_arg1.position.x + (m_xformScale * _arg1.R.col2.x)) * m_drawScale), ((_arg1.position.y + (m_xformScale * _arg1.R.col2.y)) * m_drawScale)); } } }//package Box2D.Dynamics
Section 71
//b2DestructionListener (Box2D.Dynamics.b2DestructionListener) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Dynamics.Joints.*; public class b2DestructionListener { public function SayGoodbyeShape(_arg1:b2Shape):void{ } public function SayGoodbyeJoint(_arg1:b2Joint):void{ } } }//package Box2D.Dynamics
Section 72
//b2Island (Box2D.Dynamics.b2Island) package Box2D.Dynamics { import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2Island { public var m_listener:b2ContactListener; public var m_positionIterationCount:int; public var m_bodyCapacity:int; public var m_bodies:Array; public var m_joints:Array; public var m_jointCapacity:int; public var m_contactCount:int; public var m_contacts:Array; public var m_contactCapacity:int; public var m_jointCount:int; public var m_allocator; public var m_bodyCount:int; private static var s_reportCR:b2ContactResult = new b2ContactResult(); public function b2Island(_arg1:int, _arg2:int, _arg3:int, _arg4, _arg5:b2ContactListener){ var _local6:int; super(); m_bodyCapacity = _arg1; m_contactCapacity = _arg2; m_jointCapacity = _arg3; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_allocator = _arg4; m_listener = _arg5; m_bodies = new Array(_arg1); _local6 = 0; while (_local6 < _arg1) { m_bodies[_local6] = null; _local6++; }; m_contacts = new Array(_arg2); _local6 = 0; while (_local6 < _arg2) { m_contacts[_local6] = null; _local6++; }; m_joints = new Array(_arg3); _local6 = 0; while (_local6 < _arg3) { m_joints[_local6] = null; _local6++; }; m_positionIterationCount = 0; } public function AddBody(_arg1:b2Body):void{ var _local2 = m_bodyCount++; m_bodies[_local2] = _arg1; } public function AddJoint(_arg1:b2Joint):void{ var _local2 = m_jointCount++; m_joints[_local2] = _arg1; } public function Report(_arg1:Array):void{ var _local2:b2Mat22; var _local3:b2Vec2; var _local5:b2Contact; var _local6:b2ContactConstraint; var _local7:b2ContactResult; var _local8:b2Body; var _local9:int; var _local10:Array; var _local11:int; var _local12:b2Manifold; var _local13:int; var _local14:b2ManifoldPoint; var _local15:b2ContactConstraintPoint; if (m_listener == null){ return; }; var _local4:int; while (_local4 < m_contactCount) { _local5 = m_contacts[_local4]; _local6 = _arg1[_local4]; _local7 = s_reportCR; _local7.shape1 = _local5.m_shape1; _local7.shape2 = _local5.m_shape2; _local8 = _local7.shape1.m_body; _local9 = _local5.m_manifoldCount; _local10 = _local5.GetManifolds(); _local11 = 0; while (_local11 < _local9) { _local12 = _local10[_local11]; _local7.normal.SetV(_local12.normal); _local13 = 0; while (_local13 < _local12.pointCount) { _local14 = _local12.points[_local13]; _local15 = _local6.points[_local13]; _local7.position = _local8.GetWorldPoint(_local14.localPoint1); _local7.normalImpulse = _local15.normalImpulse; _local7.tangentImpulse = _local15.tangentImpulse; _local7.id.key = _local14.id.key; m_listener.Result(_local7); _local13++; }; _local11++; }; _local4++; }; } public function AddContact(_arg1:b2Contact):void{ var _local2 = m_contactCount++; m_contacts[_local2] = _arg1; } public function Solve(_arg1:b2TimeStep, _arg2:b2Vec2, _arg3:Boolean, _arg4:Boolean):void{ var _local5:int; var _local6:b2Body; var _local7:b2Joint; var _local9:int; var _local10:Boolean; var _local11:Boolean; var _local12:Boolean; var _local13:Number; var _local14:Number; var _local15:Number; _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x + (_arg1.dt * (_arg2.x + (_local6.m_invMass * _local6.m_force.x)))); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y + (_arg1.dt * (_arg2.y + (_local6.m_invMass * _local6.m_force.y)))); _local6.m_angularVelocity = (_local6.m_angularVelocity + ((_arg1.dt * _local6.m_invI) * _local6.m_torque)); _local6.m_force.SetZero(); _local6.m_torque = 0; _local6.m_linearVelocity.Multiply(b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_linearDamping)), 0, 1)); _local6.m_angularVelocity = (_local6.m_angularVelocity * b2Math.b2Clamp((1 - (_arg1.dt * _local6.m_angularDamping)), 0, 1)); if (_local6.m_linearVelocity.LengthSquared() > b2Settings.b2_maxLinearVelocitySquared){ _local6.m_linearVelocity.Normalize(); _local6.m_linearVelocity.x = (_local6.m_linearVelocity.x * b2Settings.b2_maxLinearVelocity); _local6.m_linearVelocity.y = (_local6.m_linearVelocity.y * b2Settings.b2_maxLinearVelocity); }; if ((_local6.m_angularVelocity * _local6.m_angularVelocity) > b2Settings.b2_maxAngularVelocitySquared){ if (_local6.m_angularVelocity < 0){ _local6.m_angularVelocity = -(b2Settings.b2_maxAngularVelocity); } else { _local6.m_angularVelocity = b2Settings.b2_maxAngularVelocity; }; }; }; _local5++; }; var _local8:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local8.InitVelocityConstraints(_arg1); _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitVelocityConstraints(_arg1); _local5++; }; _local5 = 0; while (_local5 < _arg1.maxIterations) { _local8.SolveVelocityConstraints(); _local9 = 0; while (_local9 < m_jointCount) { _local7 = m_joints[_local9]; _local7.SolveVelocityConstraints(_arg1); _local9++; }; _local5++; }; _local8.FinalizeVelocityConstraints(); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.IsStatic()){ } else { _local6.m_sweep.c0.SetV(_local6.m_sweep.c); _local6.m_sweep.a0 = _local6.m_sweep.a; _local6.m_sweep.c.x = (_local6.m_sweep.c.x + (_arg1.dt * _local6.m_linearVelocity.x)); _local6.m_sweep.c.y = (_local6.m_sweep.c.y + (_arg1.dt * _local6.m_linearVelocity.y)); _local6.m_sweep.a = (_local6.m_sweep.a + (_arg1.dt * _local6.m_angularVelocity)); _local6.SynchronizeTransform(); }; _local5++; }; if (_arg3){ _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local7.InitPositionConstraints(); _local5++; }; m_positionIterationCount = 0; while (m_positionIterationCount < _arg1.maxIterations) { _local10 = _local8.SolvePositionConstraints(b2Settings.b2_contactBaumgarte); _local11 = true; _local5 = 0; while (_local5 < m_jointCount) { _local7 = m_joints[_local5]; _local12 = _local7.SolvePositionConstraints(); _local11 = ((_local11) && (_local12)); _local5++; }; if (((_local10) && (_local11))){ break; }; m_positionIterationCount++; }; }; Report(_local8.m_constraints); if (_arg4){ _local13 = Number.MAX_VALUE; _local14 = (b2Settings.b2_linearSleepTolerance * b2Settings.b2_linearSleepTolerance); _local15 = (b2Settings.b2_angularSleepTolerance * b2Settings.b2_angularSleepTolerance); _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; if (_local6.m_invMass == 0){ } else { if ((_local6.m_flags & b2Body.e_allowSleepFlag) == 0){ _local6.m_sleepTime = 0; _local13 = 0; }; if (((((((_local6.m_flags & b2Body.e_allowSleepFlag) == 0)) || (((_local6.m_angularVelocity * _local6.m_angularVelocity) > _local15)))) || ((b2Math.b2Dot(_local6.m_linearVelocity, _local6.m_linearVelocity) > _local14)))){ _local6.m_sleepTime = 0; _local13 = 0; } else { _local6.m_sleepTime = (_local6.m_sleepTime + _arg1.dt); _local13 = b2Math.b2Min(_local13, _local6.m_sleepTime); }; }; _local5++; }; if (_local13 >= b2Settings.b2_timeToSleep){ _local5 = 0; while (_local5 < m_bodyCount) { _local6 = m_bodies[_local5]; m_bodies[_local5].m_flags = (_local6.m_flags | b2Body.e_sleepFlag); _local6.m_linearVelocity.SetZero(); _local6.m_angularVelocity = 0; _local5++; }; }; }; } public function Clear():void{ m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:int; var _local5:b2Body; var _local6:Boolean; var _local3:b2ContactSolver = new b2ContactSolver(_arg1, m_contacts, m_contactCount, m_allocator); _local2 = 0; while (_local2 < _arg1.maxIterations) { _local3.SolveVelocityConstraints(); _local2++; }; _local2 = 0; while (_local2 < m_bodyCount) { _local5 = m_bodies[_local2]; if (_local5.IsStatic()){ } else { _local5.m_sweep.c0.SetV(_local5.m_sweep.c); _local5.m_sweep.a0 = _local5.m_sweep.a; _local5.m_sweep.c.x = (_local5.m_sweep.c.x + (_arg1.dt * _local5.m_linearVelocity.x)); _local5.m_sweep.c.y = (_local5.m_sweep.c.y + (_arg1.dt * _local5.m_linearVelocity.y)); _local5.m_sweep.a = (_local5.m_sweep.a + (_arg1.dt * _local5.m_angularVelocity)); _local5.SynchronizeTransform(); }; _local2++; }; var _local4:Number = 0.75; _local2 = 0; while (_local2 < _arg1.maxIterations) { _local6 = _local3.SolvePositionConstraints(_local4); if (_local6){ break; }; _local2++; }; Report(_local3.m_constraints); } } }//package Box2D.Dynamics
Section 73
//b2TimeStep (Box2D.Dynamics.b2TimeStep) package Box2D.Dynamics { public class b2TimeStep { public var warmStarting:Boolean; public var positionCorrection:Boolean; public var dt:Number; public var maxIterations:int; public var dtRatio:Number; public var inv_dt:Number; } }//package Box2D.Dynamics
Section 74
//b2World (Box2D.Dynamics.b2World) package Box2D.Dynamics { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.*; import Box2D.Common.*; import Box2D.Dynamics.Contacts.*; public class b2World { public var m_inv_dt0:Number; public var m_boundaryListener:b2BoundaryListener; public var m_contactList:b2Contact; public var m_blockAllocator; public var m_contactListener:b2ContactListener; public var m_allowSleep:Boolean; public var m_broadPhase:b2BroadPhase; public var m_destructionListener:b2DestructionListener; public var m_jointCount:int; public var m_bodyCount:int; public var m_lock:Boolean; public var m_positionIterationCount:int; public var m_groundBody:b2Body; public var m_contactCount:int; public var m_debugDraw:b2DebugDraw; public var m_contactFilter:b2ContactFilter; public var m_bodyList:b2Body; public var m_stackAllocator; public var m_jointList:b2Joint; public var m_gravity:b2Vec2; public var m_contactManager:b2ContactManager; private static var s_jointColor:b2Color = new b2Color(0.5, 0.8, 0.8); public static var m_continuousPhysics:Boolean; public static var m_warmStarting:Boolean; private static var s_coreColor:b2Color = new b2Color(0.9, 0.6, 0.6); public static var m_positionCorrection:Boolean; private static var s_xf:b2XForm = new b2XForm(); public function b2World(_arg1:b2AABB, _arg2:b2Vec2, _arg3:Boolean){ m_contactManager = new b2ContactManager(); super(); m_destructionListener = null; m_boundaryListener = null; m_contactFilter = b2ContactFilter.b2_defaultFilter; m_contactListener = null; m_debugDraw = null; m_bodyList = null; m_contactList = null; m_jointList = null; m_bodyCount = 0; m_contactCount = 0; m_jointCount = 0; m_positionCorrection = true; m_warmStarting = true; m_continuousPhysics = true; m_allowSleep = _arg3; m_gravity = _arg2; m_lock = false; m_inv_dt0 = 0; m_contactManager.m_world = this; m_broadPhase = new b2BroadPhase(_arg1, m_contactManager); var _local4:b2BodyDef = new b2BodyDef(); m_groundBody = CreateBody(_local4); } public function DrawJoint(_arg1:b2Joint):void{ var _local11:b2PulleyJoint; var _local12:b2Vec2; var _local13:b2Vec2; var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2XForm = _local2.m_xf; var _local5:b2XForm = _local3.m_xf; var _local6:b2Vec2 = _local4.position; var _local7:b2Vec2 = _local5.position; var _local8:b2Vec2 = _arg1.GetAnchor1(); var _local9:b2Vec2 = _arg1.GetAnchor2(); var _local10:b2Color = s_jointColor; switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; case b2Joint.e_pulleyJoint: _local11 = (_arg1 as b2PulleyJoint); _local12 = _local11.GetGroundAnchor1(); _local13 = _local11.GetGroundAnchor2(); m_debugDraw.DrawSegment(_local12, _local8, _local10); m_debugDraw.DrawSegment(_local13, _local9, _local10); m_debugDraw.DrawSegment(_local12, _local13, _local10); break; case b2Joint.e_mouseJoint: m_debugDraw.DrawSegment(_local8, _local9, _local10); break; default: if (_local2 != m_groundBody){ m_debugDraw.DrawSegment(_local6, _local8, _local10); }; m_debugDraw.DrawSegment(_local8, _local9, _local10); if (_local3 != m_groundBody){ m_debugDraw.DrawSegment(_local7, _local9, _local10); }; }; } public function Refilter(_arg1:b2Shape):void{ _arg1.RefilterProxy(m_broadPhase, _arg1.m_body.m_xf); } public function SetDebugDraw(_arg1:b2DebugDraw):void{ m_debugDraw = _arg1; } public function SetContinuousPhysics(_arg1:Boolean):void{ m_continuousPhysics = _arg1; } public function GetProxyCount():int{ return (m_broadPhase.m_proxyCount); } public function DrawDebugData():void{ var _local2:int; var _local3:b2Body; var _local4:b2Shape; var _local5:b2Joint; var _local6:b2BroadPhase; var _local11:b2XForm; var _local15:Boolean; var _local16:uint; var _local17:b2Pair; var _local18:b2Proxy; var _local19:b2Proxy; var _local20:b2Vec2; var _local21:b2Vec2; var _local22:b2Proxy; var _local23:b2PolygonShape; var _local24:b2OBB; var _local25:b2Vec2; var _local26:b2Mat22; var _local27:b2Vec2; var _local28:Number; if (m_debugDraw == null){ return; }; m_debugDraw.m_sprite.graphics.clear(); var _local1:uint = m_debugDraw.GetFlags(); var _local7:b2Vec2 = new b2Vec2(); var _local8:b2Vec2 = new b2Vec2(); var _local9:b2Vec2 = new b2Vec2(); var _local10:b2Color = new b2Color(0, 0, 0); var _local12:b2AABB = new b2AABB(); var _local13:b2AABB = new b2AABB(); var _local14:Array = [new b2Vec2(), new b2Vec2(), new b2Vec2(), new b2Vec2()]; if ((_local1 & b2DebugDraw.e_shapeBit)){ _local15 = ((_local1 & b2DebugDraw.e_coreShapeBit) == b2DebugDraw.e_coreShapeBit); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local3.IsStatic()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.9, 0.5), _local15); } else { if (_local3.IsSleeping()){ DrawShape(_local4, _local11, new b2Color(0.5, 0.5, 0.9), _local15); } else { DrawShape(_local4, _local11, new b2Color(0.9, 0.9, 0.9), _local15); }; }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_jointBit)){ _local5 = m_jointList; while (_local5) { DrawJoint(_local5); _local5 = _local5.m_next; }; }; if ((_local1 & b2DebugDraw.e_pairBit)){ _local6 = m_broadPhase; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.9, 0.3); _local2 = 0; while (_local2 < b2Pair.b2_tableCapacity) { _local16 = _local6.m_pairManager.m_hashTable[_local2]; while (_local16 != b2Pair.b2_nullPair) { _local17 = _local6.m_pairManager.m_pairs[_local16]; _local18 = _local6.m_proxyPool[_local17.proxyId1]; _local19 = _local6.m_proxyPool[_local17.proxyId2]; _local12.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.lowerBounds[0]].value)); _local12.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.lowerBounds[1]].value)); _local12.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local18.upperBounds[0]].value)); _local12.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local18.upperBounds[1]].value)); _local13.lowerBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.lowerBounds[0]].value)); _local13.lowerBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.lowerBounds[1]].value)); _local13.upperBound.x = (_local6.m_worldAABB.lowerBound.x + (_local7.x * _local6.m_bounds[0][_local19.upperBounds[0]].value)); _local13.upperBound.y = (_local6.m_worldAABB.lowerBound.y + (_local7.y * _local6.m_bounds[1][_local19.upperBounds[1]].value)); _local8.x = (0.5 * (_local12.lowerBound.x + _local12.upperBound.x)); _local8.y = (0.5 * (_local12.lowerBound.y + _local12.upperBound.y)); _local9.x = (0.5 * (_local13.lowerBound.x + _local13.upperBound.x)); _local9.y = (0.5 * (_local13.lowerBound.y + _local13.upperBound.y)); m_debugDraw.DrawSegment(_local8, _local9, _local10); _local16 = _local17.next; }; _local2++; }; }; if ((_local1 & b2DebugDraw.e_aabbBit)){ _local6 = m_broadPhase; _local20 = _local6.m_worldAABB.lowerBound; _local21 = _local6.m_worldAABB.upperBound; _local7.Set((1 / _local6.m_quantizationFactor.x), (1 / _local6.m_quantizationFactor.y)); _local10.Set(0.9, 0.3, 0.9); _local2 = 0; while (_local2 < b2Settings.b2_maxProxies) { _local22 = _local6.m_proxyPool[_local2]; if (_local22.IsValid() == false){ } else { _local12.lowerBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.lowerBounds[0]].value)); _local12.lowerBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.lowerBounds[1]].value)); _local12.upperBound.x = (_local20.x + (_local7.x * _local6.m_bounds[0][_local22.upperBounds[0]].value)); _local12.upperBound.y = (_local20.y + (_local7.y * _local6.m_bounds[1][_local22.upperBounds[1]].value)); _local14[0].Set(_local12.lowerBound.x, _local12.lowerBound.y); _local14[1].Set(_local12.upperBound.x, _local12.lowerBound.y); _local14[2].Set(_local12.upperBound.x, _local12.upperBound.y); _local14[3].Set(_local12.lowerBound.x, _local12.upperBound.y); m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local2++; }; _local14[0].Set(_local20.x, _local20.y); _local14[1].Set(_local21.x, _local20.y); _local14[2].Set(_local21.x, _local21.y); _local14[3].Set(_local20.x, _local21.y); m_debugDraw.DrawPolygon(_local14, 4, new b2Color(0.3, 0.9, 0.9)); }; if ((_local1 & b2DebugDraw.e_obbBit)){ _local10.Set(0.5, 0.3, 0.5); _local3 = m_bodyList; while (_local3) { _local11 = _local3.m_xf; _local4 = _local3.GetShapeList(); while (_local4) { if (_local4.m_type != b2Shape.e_polygonShape){ } else { _local23 = (_local4 as b2PolygonShape); _local24 = _local23.GetOBB(); _local25 = _local24.extents; _local14[0].Set(-(_local25.x), -(_local25.y)); _local14[1].Set(_local25.x, -(_local25.y)); _local14[2].Set(_local25.x, _local25.y); _local14[3].Set(-(_local25.x), _local25.y); _local2 = 0; while (_local2 < 4) { _local26 = _local24.R; _local27 = _local14[_local2]; _local28 = (_local24.center.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local24.center.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local26 = _local11.R; _local28 = (_local11.position.x + ((_local26.col1.x * _local27.x) + (_local26.col2.x * _local27.y))); _local14[_local2].y = (_local11.position.y + ((_local26.col1.y * _local27.x) + (_local26.col2.y * _local27.y))); _local14[_local2].x = _local28; _local2++; }; m_debugDraw.DrawPolygon(_local14, 4, _local10); }; _local4 = _local4.m_next; }; _local3 = _local3.m_next; }; }; if ((_local1 & b2DebugDraw.e_centerOfMassBit)){ _local3 = m_bodyList; while (_local3) { _local11 = s_xf; _local11.R = _local3.m_xf.R; _local11.position = _local3.GetWorldCenter(); m_debugDraw.DrawXForm(_local11); _local3 = _local3.m_next; }; }; } public function DestroyBody(_arg1:b2Body):void{ var _local4:b2JointEdge; var _local5:b2Shape; if (m_lock == true){ return; }; var _local2:b2JointEdge = _arg1.m_jointList; while (_local2) { _local4 = _local2; _local2 = _local2.next; if (m_destructionListener){ m_destructionListener.SayGoodbyeJoint(_local4.joint); }; DestroyJoint(_local4.joint); }; var _local3:b2Shape = _arg1.m_shapeList; while (_local3) { _local5 = _local3; _local3 = _local3.m_next; if (m_destructionListener){ m_destructionListener.SayGoodbyeShape(_local5); }; _local5.DestroyProxy(m_broadPhase); b2Shape.Destroy(_local5, m_blockAllocator); }; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_bodyList){ m_bodyList = _arg1.m_next; }; m_bodyCount--; } public function SetContactFilter(_arg1:b2ContactFilter):void{ m_contactFilter = _arg1; } public function GetGroundBody():b2Body{ return (m_groundBody); } public function DrawShape(_arg1:b2Shape, _arg2:b2XForm, _arg3:b2Color, _arg4:Boolean):void{ var _local6:b2CircleShape; var _local7:b2Vec2; var _local8:Number; var _local9:b2Vec2; var _local10:int; var _local11:b2PolygonShape; var _local12:int; var _local13:Array; var _local14:Array; var _local15:Array; var _local5:b2Color = s_coreColor; switch (_arg1.m_type){ case b2Shape.e_circleShape: _local6 = (_arg1 as b2CircleShape); _local7 = b2Math.b2MulX(_arg2, _local6.m_localPosition); _local8 = _local6.m_radius; _local9 = _arg2.R.col1; m_debugDraw.DrawSolidCircle(_local7, _local8, _local9, _arg3); if (_arg4){ m_debugDraw.DrawCircle(_local7, (_local8 - b2Settings.b2_toiSlop), _local5); }; break; case b2Shape.e_polygonShape: _local11 = (_arg1 as b2PolygonShape); _local12 = _local11.GetVertexCount(); _local13 = _local11.GetVertices(); _local14 = new Array(b2Settings.b2_maxPolygonVertices); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local13[_local10]); _local10++; }; m_debugDraw.DrawSolidPolygon(_local14, _local12, _arg3); if (_arg4){ _local15 = _local11.GetCoreVertices(); _local10 = 0; while (_local10 < _local12) { _local14[_local10] = b2Math.b2MulX(_arg2, _local15[_local10]); _local10++; }; m_debugDraw.DrawPolygon(_local14, _local12, _local5); }; break; }; } public function GetContactCount():int{ return (m_contactCount); } public function Solve(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local9:int; var _local10:int; var _local11:b2Body; var _local12:b2ContactEdge; var _local13:b2JointEdge; var _local14:Boolean; m_positionIterationCount = 0; var _local3:b2Island = new b2Island(m_bodyCount, m_contactCount, m_jointCount, m_stackAllocator, m_contactListener); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2 = _local2.m_next; }; var _local4:b2Contact = m_contactList; while (_local4) { _local4.m_flags = (_local4.m_flags & ~(b2Contact.e_islandFlag)); _local4 = _local4.m_next; }; var _local5:b2Joint = m_jointList; while (_local5) { _local5.m_islandFlag = false; _local5 = _local5.m_next; }; var _local6:int = m_bodyCount; var _local7:Array = new Array(_local6); var _local8:b2Body = m_bodyList; while (_local8) { if ((_local8.m_flags & ((b2Body.e_islandFlag | b2Body.e_sleepFlag) | b2Body.e_frozenFlag))){ } else { if (_local8.IsStatic()){ } else { _local3.Clear(); _local9 = 0; var _temp1 = _local9; _local9 = (_local9 + 1); var _local15 = _temp1; _local7[_local15] = _local8; _local8.m_flags = (_local8.m_flags | b2Body.e_islandFlag); while (_local9 > 0) { --_local9; _local2 = _local7[_local9]; _local3.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local12 = _local2.m_contactList; while (_local12) { if ((_local12.contact.m_flags & (b2Contact.e_islandFlag | b2Contact.e_nonSolidFlag))){ } else { if (_local12.contact.m_manifoldCount == 0){ } else { _local3.AddContact(_local12.contact); _local12.contact.m_flags = (_local12.contact.m_flags | b2Contact.e_islandFlag); _local11 = _local12.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp2 = _local9; _local9 = (_local9 + 1); var _local16 = _temp2; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; }; _local12 = _local12.next; }; _local13 = _local2.m_jointList; while (_local13) { if (_local13.joint.m_islandFlag == true){ } else { _local3.AddJoint(_local13.joint); _local13.joint.m_islandFlag = true; _local11 = _local13.other; if ((_local11.m_flags & b2Body.e_islandFlag)){ } else { var _temp3 = _local9; _local9 = (_local9 + 1); _local16 = _temp3; _local7[_local16] = _local11; _local11.m_flags = (_local11.m_flags | b2Body.e_islandFlag); }; }; _local13 = _local13.next; }; }; }; _local3.Solve(_arg1, m_gravity, m_positionCorrection, m_allowSleep); if (_local3.m_positionIterationCount > m_positionIterationCount){ m_positionIterationCount = _local3.m_positionIterationCount; }; _local10 = 0; while (_local10 < _local3.m_bodyCount) { _local2 = _local3.m_bodies[_local10]; if (_local2.IsStatic()){ _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); }; _local10++; }; }; }; _local8 = _local8.m_next; }; _local2 = m_bodyList; while (_local2) { if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local14 = _local2.SynchronizeShapes(); if ((((_local14 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; }; }; _local2 = _local2.m_next; }; m_broadPhase.Commit(); } public function Query(_arg1:b2AABB, _arg2:Array, _arg3:int):int{ var _local4:Array = new Array(_arg3); var _local5:int = m_broadPhase.QueryAABB(_arg1, _local4, _arg3); var _local6:int; while (_local6 < _local5) { _arg2[_local6] = _local4[_local6]; _local6++; }; return (_local5); } public function SetGravity(_arg1:b2Vec2):void{ m_gravity = _arg1; } public function SolveTOI(_arg1:b2TimeStep):void{ var _local2:b2Body; var _local3:b2Shape; var _local4:b2Shape; var _local5:b2Body; var _local6:b2Body; var _local7:b2ContactEdge; var _local11:b2Contact; var _local12:b2Contact; var _local13:Number; var _local14:b2Body; var _local15:int; var _local16:b2TimeStep; var _local17:int; var _local18:Number; var _local19:Number; var _local20:b2Body; var _local21:Boolean; var _local8:b2Island = new b2Island(m_bodyCount, b2Settings.b2_maxTOIContactsPerIsland, 0, m_stackAllocator, m_contactListener); var _local9:int = m_bodyCount; var _local10:Array = new Array(_local9); _local2 = m_bodyList; while (_local2) { _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); _local2.m_sweep.t0 = 0; _local2 = _local2.m_next; }; _local11 = m_contactList; while (_local11) { _local11.m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local11 = _local11.m_next; }; while (true) { _local12 = null; _local13 = 1; _local11 = m_contactList; for (;_local11;(_local11 = _local11.m_next)) { if ((_local11.m_flags & (b2Contact.e_slowFlag | b2Contact.e_nonSolidFlag))){ } else { _local18 = 1; if ((_local11.m_flags & b2Contact.e_toiFlag)){ _local18 = _local11.m_toi; } else { _local3 = _local11.m_shape1; _local4 = _local11.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; if (((((_local5.IsStatic()) || (_local5.IsSleeping()))) && (((_local6.IsStatic()) || (_local6.IsSleeping()))))){ continue; }; _local19 = _local5.m_sweep.t0; if (_local5.m_sweep.t0 < _local6.m_sweep.t0){ _local19 = _local6.m_sweep.t0; _local5.m_sweep.Advance(_local19); } else { if (_local6.m_sweep.t0 < _local5.m_sweep.t0){ _local19 = _local5.m_sweep.t0; _local6.m_sweep.Advance(_local19); }; }; _local18 = b2TimeOfImpact.TimeOfImpact(_local11.m_shape1, _local5.m_sweep, _local11.m_shape2, _local6.m_sweep); if ((((_local18 > 0)) && ((_local18 < 1)))){ _local18 = (((1 - _local18) * _local19) + _local18); if (_local18 > 1){ _local18 = 1; }; }; _local11.m_toi = _local18; _local11.m_flags = (_local11.m_flags | b2Contact.e_toiFlag); }; if ((((Number.MIN_VALUE < _local18)) && ((_local18 < _local13)))){ _local12 = _local11; _local13 = _local18; }; }; }; if ((((_local12 == null)) || (((1 - (100 * Number.MIN_VALUE)) < _local13)))){ break; }; _local3 = _local12.m_shape1; _local4 = _local12.m_shape2; _local5 = _local3.m_body; _local6 = _local4.m_body; _local5.Advance(_local13); _local6.Advance(_local13); _local12.Update(m_contactListener); _local12.m_flags = (_local12.m_flags & ~(b2Contact.e_toiFlag)); if (_local12.m_manifoldCount == 0){ } else { _local14 = _local5; if (_local14.IsStatic()){ _local14 = _local6; }; _local8.Clear(); _local15 = 0; var _temp1 = _local15; _local15 = (_local15 + 1); var _local22 = _temp1; _local10[_local22] = _local14; _local14.m_flags = (_local14.m_flags | b2Body.e_islandFlag); while (_local15 > 0) { --_local15; _local2 = _local10[_local15]; _local8.AddBody(_local2); _local2.m_flags = (_local2.m_flags & ~(b2Body.e_sleepFlag)); if (_local2.IsStatic()){ } else { _local7 = _local2.m_contactList; while (_local7) { if (_local8.m_contactCount == _local8.m_contactCapacity){ } else { if ((_local7.contact.m_flags & ((b2Contact.e_islandFlag | b2Contact.e_slowFlag) | b2Contact.e_nonSolidFlag))){ } else { if (_local7.contact.m_manifoldCount == 0){ } else { _local8.AddContact(_local7.contact); _local7.contact.m_flags = (_local7.contact.m_flags | b2Contact.e_islandFlag); _local20 = _local7.other; if ((_local20.m_flags & b2Body.e_islandFlag)){ } else { if (_local20.IsStatic() == false){ _local20.Advance(_local13); _local20.WakeUp(); }; var _temp2 = _local15; _local15 = (_local15 + 1); var _local23 = _temp2; _local10[_local23] = _local20; _local20.m_flags = (_local20.m_flags | b2Body.e_islandFlag); }; }; }; }; _local7 = _local7.next; }; }; }; _local16 = new b2TimeStep(); _local16.dt = ((1 - _local13) * _arg1.dt); _local16.inv_dt = (1 / _local16.dt); _local16.maxIterations = _arg1.maxIterations; _local8.SolveTOI(_local16); _local17 = 0; while (_local17 < _local8.m_bodyCount) { _local2 = _local8.m_bodies[_local17]; _local2.m_flags = (_local2.m_flags & ~(b2Body.e_islandFlag)); if ((_local2.m_flags & (b2Body.e_sleepFlag | b2Body.e_frozenFlag))){ } else { if (_local2.IsStatic()){ } else { _local21 = _local2.SynchronizeShapes(); if ((((_local21 == false)) && (!((m_boundaryListener == null))))){ m_boundaryListener.Violation(_local2); }; _local7 = _local2.m_contactList; while (_local7) { _local7.contact.m_flags = (_local7.contact.m_flags & ~(b2Contact.e_toiFlag)); _local7 = _local7.next; }; }; }; _local17++; }; _local17 = 0; while (_local17 < _local8.m_contactCount) { _local11 = _local8.m_contacts[_local17]; _local8.m_contacts[_local17].m_flags = (_local11.m_flags & ~((b2Contact.e_toiFlag | b2Contact.e_islandFlag))); _local17++; }; m_broadPhase.Commit(); }; }; } public function GetJointList():b2Joint{ return (m_jointList); } public function GetBodyList():b2Body{ return (m_bodyList); } public function GetPairCount():int{ return (m_broadPhase.m_pairManager.m_pairCount); } public function Validate():void{ m_broadPhase.Validate(); } public function SetWarmStarting(_arg1:Boolean):void{ m_warmStarting = _arg1; } public function SetPositionCorrection(_arg1:Boolean):void{ m_positionCorrection = _arg1; } public function CreateJoint(_arg1:b2JointDef):b2Joint{ var _local3:b2Body; var _local4:b2Shape; var _local2:b2Joint = b2Joint.Create(_arg1, m_blockAllocator); _local2.m_prev = null; _local2.m_next = m_jointList; if (m_jointList){ m_jointList.m_prev = _local2; }; m_jointList = _local2; m_jointCount++; _local2.m_node1.joint = _local2; _local2.m_node1.other = _local2.m_body2; _local2.m_node1.prev = null; _local2.m_node1.next = _local2.m_body1.m_jointList; if (_local2.m_body1.m_jointList){ _local2.m_body1.m_jointList.prev = _local2.m_node1; }; _local2.m_body1.m_jointList = _local2.m_node1; _local2.m_node2.joint = _local2; _local2.m_node2.other = _local2.m_body1; _local2.m_node2.prev = null; _local2.m_node2.next = _local2.m_body2.m_jointList; if (_local2.m_body2.m_jointList){ _local2.m_body2.m_jointList.prev = _local2.m_node2; }; _local2.m_body2.m_jointList = _local2.m_node2; if (_arg1.collideConnected == false){ _local3 = ((_arg1.body1.m_shapeCount < _arg1.body2.m_shapeCount)) ? _arg1.body1 : _arg1.body2; _local4 = _local3.m_shapeList; while (_local4) { _local4.RefilterProxy(m_broadPhase, _local3.m_xf); _local4 = _local4.m_next; }; }; return (_local2); } public function DestroyJoint(_arg1:b2Joint):void{ var _local5:b2Body; var _local6:b2Shape; var _local2:Boolean = _arg1.m_collideConnected; if (_arg1.m_prev){ _arg1.m_prev.m_next = _arg1.m_next; }; if (_arg1.m_next){ _arg1.m_next.m_prev = _arg1.m_prev; }; if (_arg1 == m_jointList){ m_jointList = _arg1.m_next; }; var _local3:b2Body = _arg1.m_body1; var _local4:b2Body = _arg1.m_body2; _local3.WakeUp(); _local4.WakeUp(); if (_arg1.m_node1.prev){ _arg1.m_node1.prev.next = _arg1.m_node1.next; }; if (_arg1.m_node1.next){ _arg1.m_node1.next.prev = _arg1.m_node1.prev; }; if (_arg1.m_node1 == _local3.m_jointList){ _local3.m_jointList = _arg1.m_node1.next; }; _arg1.m_node1.prev = null; _arg1.m_node1.next = null; if (_arg1.m_node2.prev){ _arg1.m_node2.prev.next = _arg1.m_node2.next; }; if (_arg1.m_node2.next){ _arg1.m_node2.next.prev = _arg1.m_node2.prev; }; if (_arg1.m_node2 == _local4.m_jointList){ _local4.m_jointList = _arg1.m_node2.next; }; _arg1.m_node2.prev = null; _arg1.m_node2.next = null; b2Joint.Destroy(_arg1, m_blockAllocator); m_jointCount--; if (_local2 == false){ _local5 = ((_local3.m_shapeCount < _local4.m_shapeCount)) ? _local3 : _local4; _local6 = _local5.m_shapeList; while (_local6) { _local6.RefilterProxy(m_broadPhase, _local5.m_xf); _local6 = _local6.m_next; }; }; } public function SetContactListener(_arg1:b2ContactListener):void{ m_contactListener = _arg1; } public function CreateBody(_arg1:b2BodyDef):b2Body{ if (m_lock == true){ return (null); }; var _local2:b2Body = new b2Body(_arg1, this); _local2.m_prev = null; _local2.m_next = m_bodyList; if (m_bodyList){ m_bodyList.m_prev = _local2; }; m_bodyList = _local2; m_bodyCount++; return (_local2); } public function SetBoundaryListener(_arg1:b2BoundaryListener):void{ m_boundaryListener = _arg1; } public function SetDestructionListener(_arg1:b2DestructionListener):void{ m_destructionListener = _arg1; } public function Step(_arg1:Number, _arg2:int):void{ m_lock = true; var _local3:b2TimeStep = new b2TimeStep(); _local3.dt = _arg1; _local3.maxIterations = _arg2; if (_arg1 > 0){ _local3.inv_dt = (1 / _arg1); } else { _local3.inv_dt = 0; }; _local3.dtRatio = (m_inv_dt0 * _arg1); _local3.positionCorrection = m_positionCorrection; _local3.warmStarting = m_warmStarting; m_contactManager.Collide(); if (_local3.dt > 0){ Solve(_local3); }; if (((m_continuousPhysics) && ((_local3.dt > 0)))){ SolveTOI(_local3); }; DrawDebugData(); m_inv_dt0 = _local3.inv_dt; m_lock = false; } public function GetBodyCount():int{ return (m_bodyCount); } public function GetJointCount():int{ return (m_jointCount); } } }//package Box2D.Dynamics
Section 75
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function getObjectLength(_arg1:Object):uint{ var _local3:String; var _local2:uint; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } public static function concatObjects(... _args):Object{ var _local3:Object; var _local5:String; var _local2:Object = {}; var _local4:int; while (_local4 < _args.length) { _local3 = _args[_local4]; for (_local5 in _local3) { if (_local3[_local5] == null){ delete _local2[_local5]; } else { _local2[_local5] = _local3[_local5]; }; }; _local4++; }; return (_local2); } } }//package caurina.transitions
Section 76
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public function Equations(){ trace("Equations is a static class and should not be instantiated."); } public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); }; --_arg1; return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2)); } public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2)); }; _arg1 = (_arg1 - 2); _local6 = (_local6 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2)); } public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2)); } public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2)); } public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; --_arg1; return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2)); } public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005))); }; --_arg1; return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period; var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude; if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){ _local8 = _arg3; _local7 = (_local6 / 4); } else { _local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8))); }; return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2)); } public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } } }//package caurina.transitions
Section 77
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var modifierParameters:Array; public var isSpecialProperty:Boolean; public var valueComplete:Number; public var modifierFunction:Function; public var extra:Object; public var valueStart:Number; public var hasModifier:Boolean; public var arrayIndex:Number; public var originalValueComplete:Object; public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){ valueStart = _arg1; valueComplete = _arg2; originalValueComplete = _arg3; arrayIndex = _arg4; extra = _arg5; isSpecialProperty = _arg6; hasModifier = Boolean(_arg7); modifierFunction = _arg7; modifierParameters = _arg8; } public function toString():String{ var _local1 = "\n[PropertyInfoObj "; _local1 = (_local1 + ("valueStart:" + String(valueStart))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("valueComplete:" + String(valueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("arrayIndex:" + String(arrayIndex))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("extra:" + String(extra))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("hasModifier:" + String(hasModifier))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierFunction:" + String(modifierFunction))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierParameters:" + String(modifierParameters))); _local1 = (_local1 + "]\n"); return (_local1); } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 78
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var getValue:Function; public var preProcess:Function; public var setValue:Function; public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){ getValue = _arg1; setValue = _arg2; parameters = _arg3; preProcess = _arg4; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialProperty "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("setValue:" + String(setValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("preProcess:" + String(preProcess))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 79
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var getValue:Function; public var modifyValues:Function; public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){ modifyValues = _arg1; getValue = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 80
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var parameters:Array; public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){ splitValues = _arg1; parameters = _arg2; } public function toString():String{ var _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 81
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tweener { private static var _timeScale:Number = 1; private static var _currentTimeFrame:Number; private static var _specialPropertySplitterList:Object; private static var _engineExists:Boolean = false; private static var _specialPropertyModifierList:Object; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public function Tweener(){ trace("Tweener is a static class and should not be instantiated."); } public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ if (!_inited){ init(); }; var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{ if (!_inited){ init(); }; var _local6:SpecialProperty = new SpecialProperty(_arg2, _arg3, _arg4, _arg5); _specialPropertyList[_arg1] = _local6; } public static function init(... _args):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); } private static function updateTweens():Boolean{ var _local1:int; if (_tweenList.length == 0){ return (false); }; _local1 = 0; while (_local1 < _tweenList.length) { if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){ if (!updateTweenByIndex(_local1)){ removeTweenByIndex(_local1); }; if (_tweenList[_local1] == null){ removeTweenByIndex(_local1, true); _local1--; }; }; _local1++; }; return (true); } public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Array; var _local8:Function; var _local9:TweenListObj; var _local10:Number; var _local11:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local4 = _arg1.concat(); } else { _local4 = [_arg1]; }; var _local5:Object = _arg2; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local6:Number = (isNaN(_local5.time)) ? 0 : _local5.time; var _local7:Number = (isNaN(_local5.delay)) ? 0 : _local5.delay; if (typeof(_local5.transition) == "string"){ _local11 = _local5.transition.toLowerCase(); _local8 = _transitionList[_local11]; } else { _local8 = _local5.transition; }; if (!Boolean(_local8)){ _local8 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local4.length) { if (_local5.useFrames == true){ _local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams); } else { _local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams); }; _local9.properties = null; _local9.onStart = _local5.onStart; _local9.onUpdate = _local5.onUpdate; _local9.onComplete = _local5.onComplete; _local9.onOverwrite = _local5.onOverwrite; _local9.onStartParams = _local5.onStartParams; _local9.onUpdateParams = _local5.onUpdateParams; _local9.onCompleteParams = _local5.onCompleteParams; _local9.onOverwriteParams = _local5.onOverwriteParams; _local9.onStartScope = _local5.onStartScope; _local9.onUpdateScope = _local5.onUpdateScope; _local9.onCompleteScope = _local5.onCompleteScope; _local9.onOverwriteScope = _local5.onOverwriteScope; _local9.onErrorScope = _local5.onErrorScope; _local9.isCaller = true; _local9.count = _local5.count; _local9.waitFrames = _local5.waitFrames; _tweenList.push(_local9); if ((((_local6 == 0)) && ((_local7 == 0)))){ _local10 = (_tweenList.length - 1); updateTweenByIndex(_local10); removeTweenByIndex(_local10); }; _local3++; }; return (true); } public static function pauseAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local5:SpecialPropertySplitter; var _local6:Array; var _local7:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ if (_specialPropertySplitterList[_args[_local4]]){ _local5 = _specialPropertySplitterList[_args[_local4]]; _local6 = _local5.splitValues(_arg1, null); _local7 = 0; while (_local7 < _local6.length) { _local3.push(_local6[_local7].name); _local7++; }; } else { _local3.push(_args[_local4]); }; }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local5:uint; var _local6:String; var _local7:Boolean; var _local3:TweenListObj = _tweenList[_arg1]; var _local4:TweenListObj = _local3.clone(false); _local5 = 0; while (_local5 < _arg2.length) { _local6 = _arg2[_local5]; if (Boolean(_local3.properties[_local6])){ _local3.properties[_local6] = undefined; delete _local3.properties[_local6]; }; _local5++; }; for (_local6 in _local4.properties) { _local7 = false; _local5 = 0; while (_local5 < _arg2.length) { if (_arg2[_local5] == _local6){ _local7 = true; break; }; _local5++; }; if (!_local7){ _local4.properties[_local6] = undefined; delete _local4.properties[_local6]; }; }; _tweenList.push(_local4); return ((_tweenList.length - 1)); } public static function updateFrame():void{ _currentTimeFrame++; } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; var _local3:Number = getCurrentTweeningTime(_local2); _local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused)); _local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused)); _local2.timePaused = undefined; _local2.isPaused = false; return (true); } public static function getVersion():String{ return ("AS3 1.31.74"); } public static function onEnterFrame(_arg1:Event):void{ updateTime(); updateFrame(); var _local2:Boolean; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var eventScope:Object; var tScope:Object; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; var isOver:Boolean; var cTime:Number = getCurrentTweeningTime(tTweening); if (cTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); } while (!(cTime >= nv)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (cTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope; try { tTweening.onStart.apply(eventScope, tTweening.onStartParams); } catch(e2:Error) { handleError(tTweening, e2, "onStart"); }; }; for (pName in tTweening.properties) { if (tTweening.properties[pName].isSpecialProperty){ if (Boolean(_specialPropertyList[pName].preProcess)){ tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra); }; pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { pv = tScope[pName]; }; tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (cTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (cTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d, tTweening.transitionParams); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; if (tProperty.isSpecialProperty){ _specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra); } else { tScope[pName] = nv; }; }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope; try { tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams); } catch(e3:Error) { handleError(tTweening, e3, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope; try { tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams); } catch(e4:Error) { handleError(tTweening, e4, "onComplete"); }; }; return (!(isOver)); }; return (true); } public static function setTimeScale(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (isNaN(_arg1)){ _arg1 = 1; }; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; if (_arg1 != _timeScale){ if (_tweenList != null){ _local2 = 0; while (_local2 < _tweenList.length) { _local3 = getCurrentTweeningTime(_tweenList[_local2]); _tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1)); _tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1)); if (_tweenList[_local2].timePaused != undefined){ _tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1)); }; _local2++; }; }; _timeScale = _arg1; }; } public static function resumeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { resumeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{ var eventScope:Object; var pTweening = _arg1; var pError = _arg2; var pCallBackName = _arg3; if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){ eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope; try { pTweening.onError.apply(eventScope, [pTweening.scope, pError]); } catch(metaError:Error) { printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace())); }; } else { if (!Boolean(pTweening.onError)){ printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace())); }; }; } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); _currentTimeFrame = 0; updateTime(); } public static function removeAllTweens():Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; var _local1:Boolean; _local2 = 0; while (_local2 < _tweenList.length) { removeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local3:Number; var _local4:Number; var _local5:String; var _local6:Array; var _local13:Function; var _local14:Object; var _local15:TweenListObj; var _local16:Number; var _local17:Array; var _local18:Array; var _local19:Array; var _local20:String; if (!Boolean(_arg1)){ return (false); }; if ((_arg1 is Array)){ _local6 = _arg1.concat(); } else { _local6 = [_arg1]; }; var _local7:Object = TweenListObj.makePropertiesChain(_arg2); if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time; var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay; var _local10:Array = new Array(); var _local11:Object = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true}; var _local12:Object = new Object(); for (_local5 in _local7) { if (!_local11[_local5]){ if (_specialPropertySplitterList[_local5]){ _local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters); _local3 = 0; while (_local3 < _local17.length) { if (_specialPropertySplitterList[_local17[_local3].name]){ _local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters); _local4 = 0; while (_local4 < _local18.length) { _local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false}; _local4++; }; } else { _local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false}; }; _local3++; }; } else { if (_specialPropertyModifierList[_local5] != undefined){ _local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]); _local3 = 0; while (_local3 < _local19.length) { _local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue}; _local3++; }; } else { _local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]}; }; }; }; }; for (_local5 in _local10) { if (_specialPropertyList[_local5] != undefined){ _local10[_local5].isSpecialProperty = true; } else { if (_local6[0][_local5] == undefined){ printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property.")); }; }; }; for (_local5 in _local12) { if (_local10[_local5] != undefined){ _local10[_local5].modifierParameters = _local12[_local5].modifierParameters; _local10[_local5].modifierFunction = _local12[_local5].modifierFunction; }; }; if (typeof(_local7.transition) == "string"){ _local20 = _local7.transition.toLowerCase(); _local13 = _transitionList[_local20]; } else { _local13 = _local7.transition; }; if (!Boolean(_local13)){ _local13 = _transitionList["easeoutexpo"]; }; _local3 = 0; while (_local3 < _local6.length) { _local14 = new Object(); for (_local5 in _local10) { _local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters); }; if (_local7.useFrames == true){ _local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams); } else { _local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams); }; _local15.properties = _local14; _local15.onStart = _local7.onStart; _local15.onUpdate = _local7.onUpdate; _local15.onComplete = _local7.onComplete; _local15.onOverwrite = _local7.onOverwrite; _local15.onError = _local7.onError; _local15.onStartParams = _local7.onStartParams; _local15.onUpdateParams = _local7.onUpdateParams; _local15.onCompleteParams = _local7.onCompleteParams; _local15.onOverwriteParams = _local7.onOverwriteParams; _local15.onStartScope = _local7.onStartScope; _local15.onUpdateScope = _local7.onUpdateScope; _local15.onCompleteScope = _local7.onCompleteScope; _local15.onOverwriteScope = _local7.onOverwriteScope; _local15.onErrorScope = _local7.onErrorScope; _local15.rounded = _local7.rounded; _local15.skipUpdates = _local7.skipUpdates; removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete); _tweenList.push(_local15); if ((((_local8 == 0)) && ((_local9 == 0)))){ _local16 = (_tweenList.length - 1); updateTweenByIndex(_local16); removeTweenByIndex(_local16); }; _local3++; }; return (true); } public static function registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } public static function printError(_arg1:String):void{ trace(("## [Tweener] Error: " + _arg1)); } private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{ var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; var _local4:Boolean; if (!Boolean(_tweenList)){ return (false); }; _local5 = 0; while (_local5 < _tweenList.length) { if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){ if (_arg3.length == 0){ _arg1(_local5); _local4 = true; } else { _local6 = new Array(); _local7 = 0; while (_local7 < _arg3.length) { if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){ _local6.push(_arg3[_local7]); }; _local7++; }; if (_local6.length > 0){ _local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties); if (_local8 == _local6.length){ _arg1(_local5); _local4 = true; } else { _local9 = splitTweens(_local5, _local6); _arg1(_local9); _local4 = true; }; }; }; }; _local5++; }; return (_local4); } public static function getTweens(_arg1:Object):Array{ var _local2:uint; var _local3:String; if (!Boolean(_tweenList)){ return ([]); }; var _local4:Array = new Array(); _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ for (_local3 in _tweenList[_local2].properties) { _local4.push(_local3); }; }; _local2++; }; return (_local4); } public static function isTweening(_arg1:Object):Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ return (true); }; _local2++; }; return (false); } public static function pauseTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj = _tweenList[_arg1]; if ((((_local2 == null)) || (_local2.isPaused))){ return (false); }; _local2.timePaused = getCurrentTweeningTime(_local2); _local2.isPaused = true; return (true); } public static function getCurrentTweeningTime(_arg1:Object):Number{ return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime); } public static function getTweenCount(_arg1:Object):Number{ var _local2:uint; if (!Boolean(_tweenList)){ return (0); }; var _local3:Number = 0; _local2 = 0; while (_local2 < _tweenList.length) { if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){ _local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties)); }; _local2++; }; return (_local3); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; _currentTimeFrame = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{ var removedLocally:Boolean; var i:uint; var pName:String; var eventScope:Object; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; var removed:Boolean; var tl:uint = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope; try { _tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams); } catch(e:Error) { handleError(_tweenList[i], e, "onOverwrite"); }; }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{ if (!_inited){ init(); }; var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3); _specialPropertySplitterList[_arg1] = _local4; } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } public static function resumeTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local4:uint; var _local3:Array = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } } }//package caurina.transitions
Section 82
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var hasStarted:Boolean; public var onUpdate:Function; public var useFrames:Boolean; public var count:Number; public var onOverwriteParams:Array; public var timeStart:Number; public var timeComplete:Number; public var onStartParams:Array; public var onUpdateScope:Object; public var rounded:Boolean; public var onUpdateParams:Array; public var properties:Object; public var onComplete:Function; public var transitionParams:Object; public var updatesSkipped:Number; public var onStart:Function; public var onOverwriteScope:Object; public var skipUpdates:Number; public var onStartScope:Object; public var scope:Object; public var isCaller:Boolean; public var timePaused:Number; public var transition:Function; public var onCompleteParams:Array; public var onError:Function; public var timesCalled:Number; public var onErrorScope:Object; public var onOverwrite:Function; public var isPaused:Boolean; public var waitFrames:Boolean; public var onCompleteScope:Object; public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){ scope = _arg1; timeStart = _arg2; timeComplete = _arg3; useFrames = _arg4; transition = _arg5; transitionParams = _arg6; properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(_arg1:Boolean):TweenListObj{ var _local3:String; var _local2:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams); _local2.properties = new Array(); for (_local3 in properties) { _local2.properties[_local3] = properties[_local3].clone(); }; _local2.skipUpdates = skipUpdates; _local2.updatesSkipped = updatesSkipped; if (!_arg1){ _local2.onStart = onStart; _local2.onUpdate = onUpdate; _local2.onComplete = onComplete; _local2.onOverwrite = onOverwrite; _local2.onError = onError; _local2.onStartParams = onStartParams; _local2.onUpdateParams = onUpdateParams; _local2.onCompleteParams = onCompleteParams; _local2.onOverwriteParams = onOverwriteParams; _local2.onStartScope = onStartScope; _local2.onUpdateScope = onUpdateScope; _local2.onCompleteScope = onCompleteScope; _local2.onOverwriteScope = onOverwriteScope; _local2.onErrorScope = onErrorScope; }; _local2.rounded = rounded; _local2.isPaused = isPaused; _local2.timePaused = timePaused; _local2.isCaller = isCaller; _local2.count = count; _local2.timesCalled = timesCalled; _local2.waitFrames = waitFrames; _local2.hasStarted = hasStarted; return (_local2); } public function toString():String{ var _local3:String; var _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); var _local2:Boolean; for (_local3 in properties) { if (!_local2){ _local1 = (_local1 + ","); }; _local1 = (_local1 + ("[name:" + properties[_local3].name)); _local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart)); _local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete)); _local1 = (_local1 + "]"); _local2 = false; }; _local1 = (_local1 + (", timeStart:" + String(timeStart))); _local1 = (_local1 + (", timeComplete:" + String(timeComplete))); _local1 = (_local1 + (", useFrames:" + String(useFrames))); _local1 = (_local1 + (", transition:" + String(transition))); _local1 = (_local1 + (", transitionParams:" + String(transitionParams))); if (skipUpdates){ _local1 = (_local1 + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ _local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ _local1 = (_local1 + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ _local1 = (_local1 + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ _local1 = (_local1 + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ _local1 = (_local1 + (", onOverwrite:" + String(onOverwrite))); }; if (Boolean(onError)){ _local1 = (_local1 + (", onError:" + String(onError))); }; if (onStartParams){ _local1 = (_local1 + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ _local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ _local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ _local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (onStartScope){ _local1 = (_local1 + (", onStartScope:" + String(onStartScope))); }; if (onUpdateScope){ _local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope))); }; if (onCompleteScope){ _local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope))); }; if (onOverwriteScope){ _local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope))); }; if (onErrorScope){ _local1 = (_local1 + (", onErrorScope:" + String(onErrorScope))); }; if (rounded){ _local1 = (_local1 + (", rounded:" + String(rounded))); }; if (isPaused){ _local1 = (_local1 + (", isPaused:" + String(isPaused))); }; if (timePaused){ _local1 = (_local1 + (", timePaused:" + String(timePaused))); }; if (isCaller){ _local1 = (_local1 + (", isCaller:" + String(isCaller))); }; if (count){ _local1 = (_local1 + (", count:" + String(count))); }; if (timesCalled){ _local1 = (_local1 + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ _local1 = (_local1 + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ _local1 = (_local1 + (", hasStarted:" + String(hasStarted))); }; _local1 = (_local1 + "]\n"); return (_local1); } public static function makePropertiesChain(_arg1:Object):Object{ var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; var _local2:Object = _arg1.base; if (_local2){ _local3 = {}; if ((_local2 is Array)){ _local4 = []; _local8 = 0; while (_local8 < _local2.length) { _local4.push(_local2[_local8]); _local8++; }; } else { _local4 = [_local2]; }; _local4.push(_arg1); _local6 = _local4.length; _local7 = 0; while (_local7 < _local6) { if (_local4[_local7]["base"]){ _local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]); } else { _local5 = _local4[_local7]; }; _local3 = AuxFunctions.concatObjects(_local3, _local5); _local7++; }; if (_local3["base"]){ delete _local3["base"]; }; return (_local3); //unresolved jump }; return (_arg1); } } }//package caurina.transitions
Section 83
//Main (com.midasplayer.particle.Main) package com.midasplayer.particle { import flash.events.*; import flash.display.*; public class Main extends Sprite { private var maxSize:Number;// = 29 private var numParticles:int;// = 20 private var maxXVel:Number;// = 1 private var minYVel:Number;// = -1 private var maxAlpha:Number;// = 0.02 private var maxYVel:Number;// = 1 private var particles:Array; private var minXVel:Number;// = -1 private var minSize:Number;// = 12 private var minAlpha:Number;// = 0.01 private var emitter; public function Main(){ particles = new Array(); super(); addEventListener(Event.ENTER_FRAME, enterFrame); } public function setEmitterClip(_arg1):void{ emitter = _arg1; } public function kill():void{ removeEventListener(Event.ENTER_FRAME, enterFrame); var _local1:Number = 0; while (_local1 < particles.length) { particles[_local1].destroy(); _local1++; }; } private function randRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((Math.random() * (_arg2 - _arg1)) + _arg1); return (_local3); } private function createNewParticle():void{ var _local1:* = new Particle(spark, emitter, -10, -7, stage.stageWidth, stage.stageHeight); _local1.setVel(randRange(minXVel, maxXVel), randRange(minYVel, maxYVel)); _local1.setSize(randRange(minSize, maxSize)); particles.push(_local1); while (particles.length > numParticles) { _local1 = particles.shift(); _local1.destroy(); }; var _local2:Number = 0; while (_local2 < particles.length) { particles[_local2].update(); _local2++; }; } private function enterFrame(_arg1:Event){ createNewParticle(); } } }//package com.midasplayer.particle
Section 84
//Particle (com.midasplayer.particle.Particle) package com.midasplayer.particle { import flash.display.*; import flash.geom.*; public class Particle { private var _yVel:Number; private var _xVel:Number; private var _stageWidth:Number; private var _stageHeight:Number; private var _alphaDecr:Number;// = 0 private var clip:DisplayObject; public function Particle(_arg1:Class, _arg2:DisplayObjectContainer, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){ _stageWidth = _arg5; _stageHeight = _arg6; clip = new (_arg1); _arg2.addChild(clip); clip.x = _arg3; clip.y = _arg4; } public function update(){ clip.x = (clip.x + _xVel); clip.y = (clip.y + _yVel); clip.alpha = (clip.alpha - _alphaDecr); } public function setSize(_arg1:Number){ clip.width = _arg1; clip.height = _arg1; } public function setColour(_arg1:Number){ var _local2:ColorTransform = new ColorTransform(); _local2.color = _arg1; clip.transform.colorTransform = _local2; } public function setAlphaDecr(_arg1:Number):void{ _alphaDecr = _arg1; } public function destroy():void{ clip.parent.removeChild(clip); clip = null; } public function setVel(_arg1:Number, _arg2:Number){ _xVel = _arg1; _yVel = _arg2; } } }//package com.midasplayer.particle
Section 85
//DragonLoader (com.midasplayer.DragonLoader) package com.midasplayer { import flash.events.*; import flash.display.*; import fl.transitions.easing.*; import fl.transitions.*; import flash.media.*; import flash.utils.*; public class DragonLoader extends MovieClip { public var m_fireLogoClip:MovieClip; private var oldFrameRate:int; private var m_glimmerTween:Tween; public var mcPlayBtn:MovieClip; public var fireLogoHolder:MovieClip; private var m_dragonClip:MovieClip; private var m_bg:Sprite; public var m_bannedSign:MovieClip; private var m_fireLogoTween:Tween; private var m_glimmer:MovieClip; private var m_playBtnTween:Tween; private var m_sndBell:Sound; public var bannedSign:MovieClip; public var m_playBtn:MovieClip; public static var LAUNCH_GAME:String = "launchGame"; public function DragonLoader(){ this.x = (this.y = 0); m_bannedSign = bannedSign; m_bannedSign.bg.width = stage.stageWidth; m_bannedSign.bg.height = stage.stageHeight; m_bannedSign.alpha = 0; m_bannedSign.addEventListener(MouseEvent.CLICK, onMainMovie); m_bannedSign.buttonMode = true; m_fireLogoClip = fireLogoHolder; m_fireLogoClip.x = ((m_bannedSign.bg.width - m_fireLogoClip.width) - 90); m_fireLogoClip.y = (((m_bannedSign.bg.height / 2) - (m_fireLogoClip.height / 2)) - 60); m_fireLogoClip.visible = false; m_fireLogoClip.stop(); m_dragonClip = new mcDragon(); m_dragonClip.name = "dragon"; m_dragonClip.x = (m_bannedSign.bg.width - m_dragonClip.width); m_dragonClip.y = ((m_bannedSign.bg.height / 2) - (m_dragonClip.height / 2)); m_dragonClip.stop(); m_playBtn = mcPlayBtn; m_playBtn.buttonMode = true; m_playBtn.alpha = 0; m_sndBell = new sfxBell(); } public function destroy():void{ m_playBtn.removeEventListener(MouseEvent.ROLL_OVER, btnOver); m_playBtn.removeEventListener(MouseEvent.ROLL_OUT, btnOut); m_playBtn.removeEventListener(MouseEvent.MOUSE_DOWN, btnDown); m_playBtn.removeEventListener(MouseEvent.MOUSE_UP, launchGame); if (m_fireLogoTween != null){ m_fireLogoTween.removeEventListener(TweenEvent.MOTION_FINISH, logoInPlace); m_fireLogoTween = null; }; var _local1:Sprite = (this.parent.getChildByName("clickBg") as Sprite); this.parent.removeChild(_local1); this.parent.removeChild(this); } public function launchGame(_arg1:Event):void{ root.stage.frameRate = oldFrameRate; trace(LAUNCH_GAME); this.dispatchEvent(new Event(LAUNCH_GAME)); } public function showBannedScreen():void{ m_bannedSign.alpha = 1; } public function playLoaderMovie():void{ this.addChild(m_dragonClip); this.setChildIndex(m_dragonClip, 0); m_dragonClip.addEventListener(Event.ENTER_FRAME, animationDone); m_dragonClip.play(); } private function logoVisible(_arg1:Event):void{ if (m_fireLogoClip.currentFrame == m_fireLogoClip.totalFrames){ m_fireLogoClip.removeEventListener(Event.ENTER_FRAME, logoVisible); m_playBtnTween = new Tween(m_playBtn, "alpha", None.easeNone, 0, 1, 0.5, true); m_glimmer = new mcGlimmer(); m_glimmer.x = (m_fireLogoClip.x - m_glimmer.width); m_glimmer.y = (m_fireLogoClip.y + 112); this.addChild(m_glimmer); setTimeout(onGlimmerTmr, 1000, null); }; } public function init(_arg1:String, _arg2:String=""):void{ if (_arg2 != ""){ MochiBot.track(this, _arg2); }; oldFrameRate = root.stage.frameRate; root.stage.frameRate = 30; if (KingAPI.banned){ showBannedScreen(); } else { if (KingAPI.isHome){ launchGame(null); } else { playLoaderMovie(); }; }; } private function btnOut(_arg1:MouseEvent):void{ m_playBtn.gotoAndStop("idle"); } private function btnDown(_arg1:MouseEvent):void{ m_playBtn.gotoAndStop("down"); } private function glimmerDone(_arg1:Event):void{ m_glimmerTween.removeEventListener(TweenEvent.MOTION_FINISH, glimmerDone); this.removeChild(m_glimmer); } public function onMainMovie(_arg1:MouseEvent):void{ KingAPI.openLoaderMovieLink(); } private function btnOver(_arg1:MouseEvent):void{ m_playBtn.gotoAndStop("over"); } public function animationDone(_arg1:Event):void{ if (m_dragonClip.currentFrame == 80){ m_fireLogoClip.visible = true; m_fireLogoClip.play(); m_fireLogoTween = new Tween(m_fireLogoClip, "x", Regular.easeOut, m_fireLogoClip.x, (((stage.width / 2) - (m_dragonClip.width / 2)) - 51), 1, true); m_fireLogoTween.addEventListener(TweenEvent.MOTION_FINISH, logoInPlace); }; if (m_dragonClip.currentFrame == m_dragonClip.totalFrames){ m_dragonClip.removeEventListener(Event.ENTER_FRAME, animationDone); m_dragonClip.stop(); m_playBtn.x = ((stage.width / 2) - (m_playBtn.width / 2)); m_playBtn.y = (m_fireLogoClip.y + 210); m_playBtn.addEventListener(MouseEvent.ROLL_OVER, btnOver); m_playBtn.addEventListener(MouseEvent.ROLL_OUT, btnOut); m_playBtn.addEventListener(MouseEvent.MOUSE_DOWN, btnDown); m_playBtn.addEventListener(MouseEvent.MOUSE_UP, launchGame); }; } private function logoInPlace(_arg1:Event):void{ m_fireLogoClip.addEventListener(Event.ENTER_FRAME, logoVisible); } private function onGlimmerTmr(_arg1:Event):void{ var _local2:Number = (m_fireLogoClip.x - m_glimmer.width); var _local3:Number = ((m_fireLogoClip.x + m_fireLogoClip.width) - 80); m_glimmerTween = new Tween(m_glimmer, "x", None.easeNone, _local2, _local3, 0.5, true); m_glimmerTween.addEventListener(TweenEvent.MOTION_FINISH, glimmerDone); m_sndBell.play(); } } }//package com.midasplayer
Section 86
//KingAPI (com.midasplayer.KingAPI) package com.midasplayer { import flash.events.*; import flash.net.*; import flash.external.*; public class KingAPI { public static const LINK_TYPE_RIGHT_CLICK:String = "rightclick"; public static const USER_TYPE_SUBSCRIPTION:int = 3; public static const LINK_TYPE_HIGHSCORES:String = "highscores"; public static const LINK_TYPE_SIGN:String = "sign"; public static const INITIALIZED_EVENT:String = "initialized"; public static const LINK_TYPE_OTHER_GAMES:String = "other_games"; public static const USER_TYPE_REGISTERED:int = 1; private static const SAK:String = "ggfd7sday923mdsfd8csfds34"; private static const loadHomeParametersURL:String = "http://www.king.com/servlet/FreeGameServlet?action=load"; public static const LINK_TYPE_LOADER_MOVIE:String = "loader_movie"; private static const bounceURL:String = "http://www.mygame.com/king/bounce.jsp"; public static const LINK_TYPE_PROTECT:String = "protect"; public static const LINK_TYPE_ADD_GAME:String = "add_game"; public static const USER_TYPE_GOLD:int = 2; public static const USER_TYPE_UNREGISTERED:int = 0; public static const HOST_BANNED_EVENT:String = "hostBanned"; private static const SK:String = "vf78hxcsjak77cxzhjkwad87s"; private static const loadCountURL:String = "http://www.mygame.com/king/loadcount.jsp"; public static const LINK_TYPE_LOADER_PROGRESS:String = "loader_progress"; private static var check:String = null; public static var gameName:String; public static var banned:Boolean = false; protected static var dispatcher:EventDispatcher; public static var isHome:Boolean = false; private static var sessionID:String; private static var iscore:int = 123; public static var fromURL:String; private static var SSK:String = "ng43ui54hy35tdsnd6f54rews"; private static function loadUrlErrorHandler(_arg1:Event):void{ trace(("Unable to load url: " + _arg1)); } public static function resetScore():void{ iscore = 123; check = null; } public static function openOfflineProtectionLink():void{ openKingPage(LINK_TYPE_PROTECT); } public static function init(_arg1:String, _arg2:String):void{ var so:SharedObject; var rnd1:Number; var rnd2:Number; var name = _arg1; var from = _arg2; gameName = name; fromURL = from; var loadCounter:URLLoader = new URLLoader(); var reqvars:URLVariables = new URLVariables(); reqvars.game = gameName; reqvars.from = fromURL; try { so = SharedObject.getLocal("sessionId"); if (so.data.sessionID == null){ rnd1 = Math.abs(Math.floor((Math.random() * 4294967295))); rnd2 = Math.abs(Math.floor((Math.random() * 4294967295))); so.data.sessionID = (rnd1.toString(16) + rnd2.toString(16)); so.flush(); }; sessionID = so.data.sessionID; } catch(e:Error) { sessionID = "error"; }; reqvars.session = sessionID; var request:URLRequest = new URLRequest(((loadCountURL + "?") + reqvars.toString())); loadCounter.addEventListener(Event.COMPLETE, loadCountHandler); loadCounter.addEventListener(IOErrorEvent.IO_ERROR, loadUrlErrorHandler); loadCounter.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadUrlErrorHandler); try { loadCounter.load(request); } catch(error:Error) { trace(("Unable to load loadcount url: " + loadCountURL)); trace(error.message); }; } private static function loadHomeParametersHandler(_arg1:Event):void{ var _local2:URLLoader = URLLoader(_arg1.target); trace(("loadCounter.data" + _local2.data)); } public static function submitInternalScore():void{ checkScore(); var _local1:int = ((iscore - 123) / 2); submitScore(_local1); } public static function openOtherGamesLink():void{ openKingPage(LINK_TYPE_OTHER_GAMES); } public static function openKingPage(_arg1:String, _arg2:String=null):void{ var _local3:URLVariables = new URLVariables(); _local3.game = gameName; _local3.from = fromURL; _local3.type = _arg1; _local3.session = sessionID; if (_arg2 != null){ _local3.redirect = _arg2; }; var _local4 = "_blank"; if (isHome){ _local4 = "_top"; }; navigateToURL(new URLRequest(((bounceURL + "?") + _local3.toString())), _local4); } private static function loadCountHandler(_arg1:Event):void{ var vars:URLVariables; var event = _arg1; var loadCounter:URLLoader = URLLoader(event.target); trace(("loadCounter.data :" + loadCounter.data)); try { vars = new URLVariables(loadCounter.data); if (vars.h == "true"){ isHome = true; }; if (vars.b == "true"){ banned = true; dispatcher.dispatchEvent(new Event(HOST_BANNED_EVENT)); } else { dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT)); }; trace((("::" + vars.h) + "::")); trace((("::" + vars.b) + "::")); } catch(e:Error) { trace(("Error reading data from loadcount url: " + e)); }; } public static function addEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ dispatcher = new EventDispatcher(); }; dispatcher.addEventListener(_arg1, _arg2); } public static function openLoaderMovieLink():void{ openKingPage(LINK_TYPE_LOADER_MOVIE); } public static function removeEventListener(_arg1:String, _arg2:Function):void{ if (dispatcher == null){ return; }; dispatcher.removeEventListener(_arg1, _arg2); } public static function submitScore(_arg1:int):void{ var score = _arg1; var hash:String = md5.encrypt(((((score + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitScore", score, hash); } else { openKingPage(LINK_TYPE_HIGHSCORES, ((((("game/" + gameName) + "/submit/") + score) + ":") + hash)); }; } catch(e:Error) { trace(e); }; } public static function submitLevel(_arg1:int):void{ var level = _arg1; var hash:String = md5.encrypt(((((level + ":") + gameName) + ":") + SSK)); try { if (isHome){ ExternalInterface.call("submitLevel", level, hash); }; } catch(e:Error) { trace(e); }; } public static function openHighscoresLink():void{ openKingPage(LINK_TYPE_HIGHSCORES, (("game/" + gameName) + "/highscores")); } public static function openSignLink():void{ if (!isHome){ openKingPage(LINK_TYPE_SIGN); }; } public static function openRightClickLink():void{ openKingPage(LINK_TYPE_RIGHT_CLICK); } private static function checkScore():void{ if (check != null){ if (check != md5.encrypt(((((iscore + ":") + gameName) + ":") + SK))){ SSK = "ng41ui54hy35tdsnd6f54rews"; }; }; } public static function addScore(_arg1:int):int{ checkScore(); var _local2:int = ((iscore - 123) / 2); _local2 = (_local2 + _arg1); iscore = ((_local2 * 2) + 123); check = md5.encrypt(((((iscore + ":") + gameName) + ":") + SK)); return (_local2); } public static function openLoaderProgressLink():void{ openKingPage(LINK_TYPE_LOADER_PROGRESS); } public static function openAddToWebsiteLink():void{ openKingPage(LINK_TYPE_ADD_GAME, "website_content.jsp"); } public static function submitAchievement(_arg1:String):void{ var achievement = _arg1; var hash:String = md5.encrypt(((((achievement + ":") + gameName) + ":") + SAK)); try { if (isHome){ ExternalInterface.call("submitAchievement", achievement, hash); }; } catch(e:Error) { trace(e); }; } } }//package com.midasplayer
Section 87
//md5 (com.midasplayer.md5) package com.midasplayer { public class md5 { public static const HEX_FORMAT_LOWERCASE:uint = 0; public static const HEX_FORMAT_UPPERCASE:uint = 1; public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = ""; public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "="; public static var hexcase:uint = 0; public static var b64pad:String = ""; public static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{ return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3)); } public static function binl_md5(_arg1:Array, _arg2:Number):Array{ var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32))); _arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2; var _local3:Number = 1732584193; var _local4:Number = -271733879; var _local5:Number = -1732584194; var _local6:Number = 271733878; var _local7:Number = 0; while (_local7 < _arg1.length) { _local8 = _local3; _local9 = _local4; _local10 = _local5; _local11 = _local6; _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162); _local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682); _local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101); _local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290); _local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501); _local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467); _local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784); _local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473); _local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189); _local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487); _local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835); _local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520); _local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649); _local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070); _local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379); _local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259); _local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551); _local3 = safe_add(_local3, _local8); _local4 = safe_add(_local4, _local9); _local5 = safe_add(_local5, _local10); _local6 = safe_add(_local6, _local11); _local7 = (_local7 + 16); }; return ([_local3, _local4, _local5, _local6]); } public static function str2rstr_utf16le(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF))); _local3++; }; return (_local2); } public static function hex_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2hex(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function binl2rstr(_arg1:Array):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < (_arg1.length * 32)) { _local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2binl(_arg1:String):Array{ var _local3:Number; var _local2:Array = Array((_arg1.length >> 2)); _local3 = 0; while (_local3 < _local2.length) { _local2[_local3] = 0; _local3++; }; _local3 = 0; while (_local3 < (_arg1.length * 8)) { _local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | ((_arg1.charCodeAt((_local3 / 8)) & 0xFF) << (_local3 % 32))); _local3 = (_local3 + 8); }; return (_local2); } public static function md5_vm_test():Boolean{ return ((hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72")); } public static function b64_md5(_arg1:String):String{ return (rstr2b64(rstr_md5(str2rstr_utf8(_arg1)))); } public static function any_hmac_md5(_arg1:String, _arg2:String, _arg3:String):String{ return (rstr2any(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)), _arg3)); } public static function hex_md5(_arg1:String):String{ return (rstr2hex(rstr_md5(str2rstr_utf8(_arg1)))); } public static function bit_rol(_arg1:Number, _arg2:Number):Number{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } public static function encrypt(_arg1:String):String{ return (hex_md5(_arg1)); } public static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{ return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7)); } public static function rstr2hex(_arg1:String):String{ var _local4:Number; var _local2:String = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef"; var _local3 = ""; var _local5:Number = 0; while (_local5 < _arg1.length) { _local4 = _arg1.charCodeAt(_local5); _local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15)))); _local5++; }; return (_local3); } public static function any_md5(_arg1:String, _arg2:String):String{ return (rstr2any(rstr_md5(str2rstr_utf8(_arg1)), _arg2)); } public static function b64_hmac_md5(_arg1:String, _arg2:String):String{ return (rstr2b64(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)))); } public static function rstr2b64(_arg1:String):String{ var _local6:Number; var _local7:Number; var _local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; var _local3 = ""; var _local4:Number = _arg1.length; var _local5:Number = 0; while (_local5 < _local4) { _local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0); _local7 = 0; while (_local7 < 4) { if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){ _local3 = (_local3 + b64pad); } else { _local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63))); }; _local7++; }; _local5 = (_local5 + 3); }; return (_local3); } public static function safe_add(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); var _local4:Number = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } public static function str2rstr_utf8(_arg1:String):String{ var _local4:Number; var _local5:Number; var _local2 = ""; var _local3:Number = -1; while (++_local3 < _arg1.length) { _local4 = _arg1.charCodeAt(_local3); _local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0; if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){ _local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023)); _local3++; }; if (_local4 <= 127){ _local2 = (_local2 + String.fromCharCode(_local4)); } else { if (_local4 <= 2047){ _local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63)))); } else { if (_local4 <= 0xFFFF){ _local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); } else { if (_local4 <= 2097151){ _local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63)))); }; }; }; }; }; return (_local2); } public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{ var _local3:Array = rstr2binl(_arg1); if (_local3.length > 16){ _local3 = binl_md5(_local3, (_arg1.length * 8)); }; var _local4:Array = Array(16); var _local5:Array = Array(16); var _local6:Number = 0; while (_local6 < 16) { _local4[_local6] = (_local3[_local6] ^ 909522486); _local5[_local6] = (_local3[_local6] ^ 1549556828); _local6++; }; var _local7:Array = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8))); return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128)))); } public static function str2rstr_utf16be(_arg1:String):String{ var _local2 = ""; var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF))); _local3++; }; return (_local2); } public static function rstr2any(_arg1:String, _arg2:String):String{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; var _local3:Number = _arg2.length; var _local4:Array = []; var _local9:Array = Array((_arg1.length / 2)); _local5 = 0; while (_local5 < _local9.length) { _local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1))); _local5++; }; while (_local9.length > 0) { _local8 = []; _local7 = 0; _local5 = 0; while (_local5 < _local9.length) { _local7 = ((_local7 << 16) + _local9[_local5]); _local6 = Math.floor((_local7 / _local3)); _local7 = (_local7 - (_local6 * _local3)); if ((((_local8.length > 0)) || ((_local6 > 0)))){ _local8[_local8.length] = _local6; }; _local5++; }; _local4[_local4.length] = _local7; _local9 = _local8; }; var _local10 = ""; _local5 = (_local4.length - 1); while (_local5 >= 0) { _local10 = (_local10 + _arg2.charAt(_local4[_local5])); _local5--; }; return (_local10); } public static function rstr_md5(_arg1:String):String{ return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8)))); } } }//package com.midasplayer
Section 88
//None (fl.transitions.easing.None) package fl.transitions.easing { public class None { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package fl.transitions.easing
Section 89
//Regular (fl.transitions.easing.Regular) package fl.transitions.easing { public class Regular { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } } }//package fl.transitions.easing
Section 90
//Tween (fl.transitions.Tween) package fl.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false private var _fps:Number;// = NAN private var _time:Number;// = NAN public var begin:Number;// = NAN private var _finish:Number;// = NAN public var change:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ this.func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function get position():Number{ return (this.getPosition(this._time)); } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 91
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var position:Number;// = NAN public var time:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 92
//com (King.com) package King { import flash.display.*; public dynamic class com extends SimpleButton { } }//package King
Section 93
//Level (Levels.Level) package Levels { import flash.events.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.display.*; import caurina.transitions.*; import Box2D.Dynamics.Contacts.*; import flash.media.*; import flash.utils.*; import flash.geom.*; import flash.ui.*; public class Level extends MovieClip { private var ballDieSound:BallDieSound; protected var checkPoints:Array; private var ballDieSoundChannel:SoundChannel; private var levelSoundChannel:SoundChannel; protected var m_ground:b2Body; protected var id:int; protected var transformCheckBoxSound:SoundTransform; private var levelAim:MovieClip; private var scaleTimer:Timer; private var Left:Boolean;// = false protected var myContactListener:MyContactListener; protected var playerBox:PlayerBox; protected var checkBoxSound:CheckBoxSound; protected var checkBoxSoundChannel:SoundChannel; private var m_joint:Sprite; private var Up:Boolean;// = false private var jumpTimer:Timer; protected var m_world:b2World; private var Down:Boolean;// = false protected var playerStartPosition:Point; private var ballJumpSound:BallJumpSound; protected var isWin:Boolean;// = false private var backGround:BackGround; protected var m_sprite:Sprite; protected var jumpPlatformSoundChannel:SoundChannel; protected var jumpPlatformSound:JumpPlatformSound; protected var isLose:Boolean;// = false private var ballJumpSoundChannel:SoundChannel; private var levelSound:LevelSound; private var transformLevelSound:SoundTransform; private var transformDieSound:SoundTransform; private var Right:Boolean;// = false private var backGroundStartPosition:Point; public static const m_physScale:Number = 30; public static const defaultDensity:Number = 1; public static const m_iterations:int = 10; public static const defaultRestitution:Number = 0.2; public static const m_timeStep:Number = 0.0333333333333333; public static const defaultFriction:Number = 1; public static var lastCheckNum:int = 0; public function Level(){ playerStartPosition = new Point(0, 0); backGroundStartPosition = new Point(0, 0); jumpTimer = new Timer(20, 1); jumpPlatformSound = new JumpPlatformSound(); levelSound = new LevelSound(); checkBoxSound = new CheckBoxSound(); ballJumpSound = new BallJumpSound(); ballDieSound = new BallDieSound(); transformDieSound = new SoundTransform(0.4, 0); transformLevelSound = new SoundTransform(4, 0); transformCheckBoxSound = new SoundTransform(4, 0); checkPoints = new Array(); super(); m_sprite = this; var _local1:b2AABB = new b2AABB(); _local1.lowerBound.Set(-1000, -1000); _local1.upperBound.Set(1000, 1000); var _local2:b2Vec2 = new b2Vec2(0, 10); var _local3:Boolean; m_world = new b2World(_local1, _local2, _local3); m_ground = m_world.GetGroundBody(); myContactListener = new MyContactListener(); m_world.SetContactListener(myContactListener); backGround = (m_sprite.getChildByName("backGroundMC") as BackGround); backGroundStartPosition = new Point(backGround.x, backGround.y); levelAim = (m_sprite.getChildByName("levelAim") as MovieClip); levelAim.stop(); m_joint = new Sprite(); m_sprite.addChildAt(m_joint, m_sprite.numChildren); SetControl(); var _local4:int; while (_local4 < 5) { if (this.getChildByName(("checkPoint" + _local4.toString()))){ checkPoints.push(this.getChildByName(("checkPoint" + _local4.toString()))); checkPoints[_local4].stop(); if (lastCheckNum > _local4){ checkPoints[_local4].gotoAndStop(5); }; } else { break; }; _local4++; }; playerStartPosition = new Point(checkPoints[lastCheckNum].x, checkPoints[lastCheckNum].y); playerBox = new PlayerBox(playerStartPosition.x, playerStartPosition.y, m_world, m_sprite); } private function KeyDownHandler(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case Keyboard.LEFT: case 65: Left = true; break; case Keyboard.RIGHT: case 68: Right = true; break; case Keyboard.UP: case 87: Up = true; break; }; } public function GetBodyAtPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):b2Body{ var _local11:b2Shape; var _local12:Boolean; var _local4:b2Vec2 = new b2Vec2(_arg1, _arg2); var _local5:b2AABB = new b2AABB(); _local5.lowerBound.Set((_arg1 - 0.001), (_arg2 - 0.001)); _local5.upperBound.Set((_arg1 + 0.001), (_arg2 + 0.001)); var _local6 = 10; var _local7:Array = new Array(); var _local8:int = m_world.Query(_local5, _local7, _local6); var _local9:b2Body; var _local10:int; while (_local10 < _local8) { if ((((_local7[_local10].GetBody().IsStatic() == false)) || (_arg3))){ _local11 = (_local7[_local10] as b2Shape); _local12 = (_local7[_local10] as b2Shape).TestPoint(_local11.GetBody().GetXForm(), _local4); if (_local12){ _local9 = _local11.GetBody(); break; }; }; _local10++; }; return (_local9); } public function DrawJoint(_arg1:b2Joint):void{ var _local2:b2Body = _arg1.m_body1; var _local3:b2Body = _arg1.m_body2; var _local4:b2Vec2 = _local2.GetPosition(); var _local5:b2Vec2 = _local3.GetPosition(); var _local6:b2Vec2 = _arg1.GetAnchor1(); var _local7:b2Vec2 = _arg1.GetAnchor2(); switch (_arg1.m_type){ case b2Joint.e_distanceJoint: m_joint.graphics.moveTo((_local6.x * m_physScale), (_local6.y * m_physScale)); m_joint.graphics.lineTo((_local7.x * m_physScale), (_local7.y * m_physScale)); break; case b2Joint.e_revoluteJoint: break; }; } private function playerWinHandler(_arg1:TimerEvent):void{ isWin = true; } private function ballDieCompleteHandler(_arg1:Event):void{ ballDieSoundChannel = null; } private function KeyUpHandler(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case Keyboard.LEFT: case 65: Left = false; break; case Keyboard.RIGHT: case 68: Right = false; break; case Keyboard.UP: case 87: Up = false; break; }; } private function scaleTimerHandler(_arg1:TimerEvent):void{ var _local2:* = (0.001 * Math.pow(playerBox.body.GetLinearVelocity().Length(), 2)); Tweener.addTween(m_sprite, {scaleX:(1 - _local2), scaleY:(1 - _local2), time:1, transition:"easeInQuint"}); } public function DestroyBody(_arg1:b2Body):void{ if (_arg1 != null){ _arg1.m_userData.parent.removeChild(_arg1.m_userData); m_world.DestroyBody(_arg1); }; } public function Lose():Boolean{ return (isLose); } public function Win():Boolean{ return (isWin); } public function PlayerDie():void{ var _local3:PlayerDiePart; var _local4:b2Body; var _local1:Timer = new Timer(1200, 1); _local1.addEventListener(TimerEvent.TIMER, playerDieHandler); _local1.start(); OutControl(); var _local2:int; while (_local2 < 8) { _local3 = new PlayerDiePart(); _local3.x = (((playerBox.x - 4) + (5 * Math.random())) - (5 * Math.random())); _local3.y = (((playerBox.y - 4) + (5 * Math.random())) - (5 * Math.random())); _local3.name = ("playerDiePart" + _local2.toString()); m_sprite.addChild(_local3); _local4 = CreateBody(("playerDiePart" + _local2.toString()), "Circle", defaultDensity, defaultFriction, 0, [8]); _local4.SetLinearVelocity(new b2Vec2(((playerBox.body.GetLinearVelocity().x / 3) + (7 * Math.cos((((_local2 * 2) * Math.PI) / 8)))), ((playerBox.body.GetLinearVelocity().y / 3) + (7 * Math.sin((((_local2 * 2) * Math.PI) / 8)))))); _local2++; }; playerBox.Kill(); if (((Game.soundIs) && (!(ballDieSoundChannel)))){ ballDieSoundChannel = ballDieSound.play(0, 1); ballDieSoundChannel.soundTransform = transformDieSound; ballDieSoundChannel.addEventListener(Event.SOUND_COMPLETE, ballDieCompleteHandler); }; } private function ballJumpCompleteHandler(_arg1:Event):void{ ballJumpSoundChannel = null; } public function PlayerWin():void{ var _local1:Timer; if ((((id == 12)) || ((id == 17)))){ _local1 = new Timer(10000, 1); } else { _local1 = new Timer(2800, 1); }; _local1.addEventListener(TimerEvent.TIMER, playerWinHandler); _local1.start(); levelAim.play(); OutControl(); switch (id){ case 5: case 11: break; default: playerBox.body.m_linearDamping = 3; playerBox.body.m_angularDamping = 3; break; }; } public function OutControl():void{ Preloader.stageLink.removeEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler); Preloader.stageLink.removeEventListener(KeyboardEvent.KEY_UP, KeyUpHandler); Left = false; Right = false; Up = false; Down = false; } public function SetControl():void{ Preloader.stageLink.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler); Preloader.stageLink.addEventListener(KeyboardEvent.KEY_UP, KeyUpHandler); Left = false; Right = false; Up = false; Down = false; } public function CreateBody(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Array=null):b2Body{ var _local9:BitmapData; var _local10:b2BodyDef; var _local11:b2Body; var _local12:b2PolygonDef; var _local13:b2CircleDef; var _local14:int; var _local15:int; var _local7:Sprite = (m_sprite.getChildByName(_arg1) as Sprite); var _local8:Shape = new Shape(); _local10 = new b2BodyDef(); _local10.position = new b2Vec2((_local7.x / m_physScale), (_local7.y / m_physScale)); _local10.angle = (_local7.rotation * (Math.PI / 180)); _local10.userData = _local7; _local11 = m_world.CreateBody(_local10); switch (_arg2){ case "Polygon": case "BluePolygon": _local14 = 0; while (_local14 < _arg6.length) { _local12 = new b2PolygonDef(); _local12.vertexCount = _arg6[_local14].length; _local15 = 0; while (_local15 < _local12.vertexCount) { _local12.vertices[_local15].Set((_arg6[_local14][_local15][0] / m_physScale), (_arg6[_local14][_local15][1] / m_physScale)); _local15++; }; _local12.density = _arg3; _local12.friction = _arg4; _local12.restitution = _arg5; _local11.CreateShape(_local12); _local14++; }; break; case "Circle": _local13 = new b2CircleDef(); _local13.radius = ((_arg6[0] / m_physScale) / 2); _local13.localPosition.Set(((_arg6[0] / m_physScale) / 2), ((_arg6[0] / m_physScale) / 2)); _local13.density = _arg3; _local13.friction = _arg4; _local13.restitution = _arg5; _local11.CreateShape(_local13); break; }; _local11.SetMassFromShapes(); return (_local11); } public function GetID():int{ return (id); } private function levelSoundCompleteHandler(_arg1:Event):void{ levelSoundChannel = null; } public function Update(_arg1:Event):void{ var _local8:int; var _local9:*; m_sprite.graphics.clear(); m_world.Step(m_timeStep, m_iterations); var _local2:b2Body = m_world.m_bodyList; while (_local2) { if ((((_local2.m_userData is Sprite)) && (!(_local2.IsStatic())))){ _local2.m_userData.x = (_local2.GetPosition().x * m_physScale); _local2.m_userData.y = (_local2.GetPosition().y * m_physScale); _local2.m_userData.rotation = ((_local2.GetAngle() * (180 / Math.PI)) % 360); }; _local2 = _local2.m_next; }; m_joint.graphics.clear(); m_joint.graphics.lineStyle(1, 0, (1 / 1)); var _local3:b2Joint = m_world.m_jointList; while (_local3) { DrawJoint(_local3); _local3 = _local3.m_next; }; var _local4:Boolean = GetBodyAtPoint(playerBox.body.GetPosition().x, (playerBox.body.GetPosition().y + 0.4), true); var _local5:Boolean = GetBodyAtPoint((playerBox.body.GetPosition().x - 0.2), (playerBox.body.GetPosition().y + 0.38), true); var _local6:Boolean = GetBodyAtPoint((playerBox.body.GetPosition().x + 0.2), (playerBox.body.GetPosition().y + 0.38), true); var _local7:b2Vec2 = playerBox.body.GetLinearVelocity(); if (Left){ playerBox.body.WakeUp(); if (((((_local4) || (_local5))) || (_local6))){ if (playerBox.body.m_linearVelocity.x > -5){ playerBox.body.SetLinearVelocity(new b2Vec2((_local7.x - 0.5), _local7.y)); }; } else { if (playerBox.body.m_linearVelocity.x > (-5 / 2)){ playerBox.body.SetLinearVelocity(new b2Vec2((_local7.x - 0.25), _local7.y)); }; }; }; if (Right){ playerBox.body.WakeUp(); if (((((_local4) || (_local5))) || (_local6))){ if (playerBox.body.m_linearVelocity.x < 5){ playerBox.body.SetLinearVelocity(new b2Vec2((_local7.x + 0.5), _local7.y)); }; } else { if (playerBox.body.m_linearVelocity.x < (5 / 2)){ playerBox.body.SetLinearVelocity(new b2Vec2((_local7.x + 0.25), _local7.y)); }; }; }; if (Up){ playerBox.body.WakeUp(); if ((((myContactListener.playerContactBodies.length > 0)) && (((((_local4) || (_local5))) || (_local6))))){ playerBox.body.ApplyForce(new b2Vec2(0, -65), playerBox.body.GetWorldCenter()); if (((Game.soundIs) && (!(ballJumpSoundChannel)))){ ballJumpSoundChannel = ballJumpSound.play(0, 1); ballJumpSoundChannel.addEventListener(Event.SOUND_COMPLETE, ballJumpCompleteHandler); }; } else { if (playerBox.body.m_linearVelocity.y < 0){ playerBox.body.ApplyForce(new b2Vec2(0, -1), playerBox.body.GetWorldCenter()); }; }; }; Tweener.addTween(m_sprite, {x:(m_sprite.scaleX * (-(playerBox.x) + (Game.stageWidth / 2))), y:(m_sprite.scaleY * (-(playerBox.y) + (Game.stageHeight / 2))), time:1, transition:"easeOutExpo"}); backGround.x = ((-(m_sprite.x) / 10) + backGroundStartPosition.x); backGround.y = ((-(m_sprite.y) / 10) + backGroundStartPosition.y); if (((playerBox.hitTestObject(levelAim)) && ((levelAim.currentFrame == 1)))){ if (((Game.soundIs) && (!(levelSoundChannel)))){ levelSoundChannel = levelSound.play(0, 1); levelSoundChannel.soundTransform = transformLevelSound; levelSoundChannel.addEventListener(Event.SOUND_COMPLETE, levelSoundCompleteHandler); }; PlayerWin(); }; if (levelAim.currentFrame == 20){ levelAim.stop(); }; _local8 = 0; while (_local8 < m_sprite.numChildren) { _local9 = m_sprite.getChildAt(_local8); if ((((_local9 is Shipik)) || ((_local9 is Ships10)))){ if (playerBox.HitTestObjectControlPoints(_local9)){ if (playerBox.IsLive()){ PlayerDie(); }; }; }; _local8++; }; _local8 = 0; while (_local8 < 5) { if (((((checkPoints[_local8]) && (playerBox.hitTestObject(checkPoints[_local8])))) && ((checkPoints[_local8].currentFrame == 1)))){ if (_local8 > lastCheckNum){ lastCheckNum = _local8; playerStartPosition = new Point(checkPoints[_local8].x, checkPoints[_local8].y); }; checkPoints[_local8].play(); }; if (((checkPoints[_local8]) && ((checkPoints[_local8].currentFrame == 5)))){ checkPoints[_local8].stop(); }; _local8++; }; } private function playerDieHandler(_arg1:TimerEvent):void{ isLose = true; } } }//package Levels
Section 94
//Level_1 (Levels.Level_1) package Levels { import flash.events.*; import flash.display.*; public class Level_1 extends Level { public var levelAim:MovieClip; public var barier:MovieClip; public var backGroundMC:MovieClip; public var checkPoint0:MovieClip; public var exitPlatform:MovieClip; public var startPlatform:MovieClip; public function Level_1(){ id = 1; CreateBody("startPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[200, 0], [200, 20], [0, 20], [0, 0]]]); CreateBody("exitPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[300, 0], [300, 20], [0, 20], [0, 0]]]); CreateBody("barier", "Polygon", 0, defaultFriction, defaultRestitution, [[[0, 0], [20, 0], [20, 50], [0, 50]]]); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if (playerBox.y > 550){ if (playerBox.IsLive()){ PlayerDie(); }; }; } } }//package Levels
Section 95
//Level_10 (Levels.Level_10) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_10 extends Level { public var goBall:MovieClip; public var jumpPlatform2:MovieClip; public var jumpPlatform1:MovieClip; private var jumpPlatform3Joint:b2PrismaticJoint; public var jumpPlatform3:MovieClip; public var cube1:MovieClip; public var cube2:MovieClip; public var cube3:MovieClip; public var roundBlock:MovieClip; public var levelAim:MovieClip; public var thirdBarier:MovieClip; public var afterJump:MovieClip; public var firstBarier:MovieClip; public var forthBarier:MovieClip; public var firstPlatform:MovieClip; public var checkPoint1:MovieClip; public var checkPoint2:MovieClip; public var checkPoint3:MovieClip; public var checkPoint0:MovieClip; private var jumpPlatform1Body:b2Body; private var jumpPlatform2Body:b2Body; public var mainRampa:MovieClip; private var jumpPlatform1Joint:b2PrismaticJoint; private var cube1Body:b2Body; private var cube2Body:b2Body; private var cube3Body:b2Body; private var roundBlockBody:b2Body; private var jumpPlatform3Body:b2Body; public var backGroundMC:MovieClip; public var barierPlatform:MovieClip; public var secondBarier:MovieClip; private var jumpPlatform2Joint:b2PrismaticJoint; public function Level_10(){ var _local1:b2PrismaticJointDef; var _local2:b2RevoluteJointDef; super(); id = 10; CreateBody("firstPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[112, 0], [112, 20], [0, 20], [0, 0]]]); CreateBody("barierPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[610, 0], [610, 20], [0, 20], [0, 0]]]); CreateBody("firstBarier", "Polygon", 0, defaultFriction, defaultRestitution, [[[23.5, 0], [20, 3.55], [0, 3.55], [-3.75, 0]], [[0, 3.55], [20, 3.55], [20, 30], [0, 30]]]); CreateBody("secondBarier", "Polygon", 0, defaultFriction, defaultRestitution, [[[23.5, 0], [20, 4], [0, 3.75], [-3.5, 0]], [[0, 3.75], [20, 4], [20, 50], [0, 50]]]); CreateBody("thirdBarier", "Polygon", 0, defaultFriction, defaultRestitution, [[[23.5, 0], [20, 3.75], [0, 4], [-3.75, 0]], [[0, 4], [20, 3.75], [20, 70], [0, 70]]]); CreateBody("forthBarier", "Polygon", 0, defaultFriction, defaultRestitution, [[[27.25, 0], [23.75, 4.8], [3.75, 5.15], [0, 0]], [[3.75, 5.15], [23.75, 4.8], [23.75, 90], [3.75, 90]]]); jumpPlatform1Body = CreateBody("jumpPlatform1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); jumpPlatform2Body = CreateBody("jumpPlatform2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); jumpPlatform3Body = CreateBody("jumpPlatform3", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); CreateBody("afterJump", "Polygon", 0, defaultFriction, defaultRestitution, [[[301.45, -0.25], [372.45, -0.25], [301.45, 20.25], [232.95, 30]], [[71, 0], [138.95, 30], [71, 20.5], [0, 0]], [[0, 20.5], [0, 0], [71, 20.5]], [[71, 20.5], [138.95, 30], [139.45, 50]], [[138.95, 30], [232.95, 30], [232.95, 50], [139.45, 50]], [[232.95, 50], [232.95, 30], [301.45, 20.25]], [[372.45, 20.25], [301.45, 20.25], [372.45, -0.25]]]); cube1Body = CreateBody("cube1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-50, 50], [-50, -50], [50, -50], [50, 50]]]); cube2Body = CreateBody("cube2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-50, 50], [-50, -50], [50, -50], [50, 50]]]); cube3Body = CreateBody("cube3", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-50, 50], [-50, -50], [50, -50], [50, 50]]]); CreateBody("mainRampa", "Polygon", 0, defaultFriction, defaultRestitution, [[[1285.9, 164.95], [1287.9, 174.45], [1276.4, 177.95], [1282.9, 153.95]], [[1287.9, 174.45], [1290.9, 182.45], [1276.4, 177.95]], [[1290.9, 182.45], [1294.9, 189.45], [1276.4, 177.95]], [[1294.9, 189.45], [1298.4, 193.45], [1271.4, 188.95], [1276.4, 177.95]], [[1298.4, 193.45], [1303.4, 196.45], [1265.9, 194.95], [1271.4, 188.95]], [[1265.9, 194.95], [1303.4, 196.45], [1257.9, 198.95]], [[1257.9, 198.95], [1303.4, 196.45], [1309.65, 199.2], [1243.95, 200.95]], [[434.45, 165.5], [436.45, 175], [424.95, 178.5], [431.45, 154.5]], [[436.45, 175], [439.45, 183], [424.95, 178.5]], [[439.45, 183], [443.45, 190], [424.95, 178.5]], [[443.45, 190], [446.95, 194], [419.95, 189.5], [424.95, 178.5]], [[446.95, 194], [451.95, 197], [419.95, 189.5]], [[451.95, 197], [458.2, 199.75], [414.45, 195.5], [419.95, 189.5]], [[414.45, 195.5], [458.2, 199.75], [406.45, 199.5]], [[458.2, 199.75], [476.2, 200.95], [392.5, 201.5], [406.45, 199.5]], [[476.2, 200.95], [1243.95, 200.95], [1388.9, 223], [0, 223], [392.5, 201.5]], [[161.5, 109.5], [183, 148.5], [103.95, 39], [140.95, 78.95], [150.5, 91.5]], [[183, 148.5], [192, 163], [58, 4], [76, 14], [103.95, 39]], [[192, 163], [202, 175], [0, 223], [0, 0], [42, 0], [58, 4]], [[202, 175], [215.5, 186.5], [0, 223]], [[215.5, 186.5], [236, 196.5], [0, 223]], [[236, 196.5], [0x0100, 201.5], [0, 223]], [[0x0100, 201.5], [392.5, 201.5], [0, 223]], [[1388.9, 223], [1243.95, 200.95], [1327.4, 200.4], [1388.9, 200.4]], [[1327.4, 200.4], [1243.95, 200.95], [1309.65, 199.2]]]); CreateBody("goBall", "Circle", (defaultDensity / 2), defaultFriction, defaultRestitution, [80]); roundBlockBody = CreateBody("roundBlock", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[127.3, 26.5], [122, 33.3], [107, 20.8], [109.7, 12.85]], [[84.2, 2.4], [109.7, 12.85], [82, 10.3], [54, 0]], [[24.95, 6.5], [54, 0], [27.5, 13.8], [0, 21.7]], [[3.75, 28.05], [0, 21.7], [27.5, 13.8]], [[27.5, 13.8], [54, 0], [54.5, 8.3]], [[54.5, 8.3], [54, 0], [82, 10.3]], [[82, 10.3], [109.7, 12.85], [107, 20.8]]]); _local1 = new b2PrismaticJointDef(); _local2 = new b2RevoluteJointDef(); _local1.Initialize(jumpPlatform1Body, m_ground, jumpPlatform1Body.GetWorldCenter(), new b2Vec2(0, 1)); _local1.lowerTranslation = 0; _local1.upperTranslation = 1; _local1.enableLimit = true; _local1.maxMotorForce = 0; _local1.motorSpeed = 200; _local1.enableMotor = true; jumpPlatform1Joint = (m_world.CreateJoint(_local1) as b2PrismaticJoint); _local1.Initialize(jumpPlatform2Body, m_ground, jumpPlatform2Body.GetWorldCenter(), new b2Vec2(0, 1)); _local1.lowerTranslation = 0; _local1.upperTranslation = 1; _local1.enableLimit = true; _local1.maxMotorForce = 0; _local1.motorSpeed = 200; _local1.enableMotor = true; jumpPlatform2Joint = (m_world.CreateJoint(_local1) as b2PrismaticJoint); _local1.Initialize(jumpPlatform3Body, m_ground, jumpPlatform3Body.GetWorldCenter(), new b2Vec2(0, 1)); _local1.lowerTranslation = 0; _local1.upperTranslation = 1; _local1.enableLimit = true; _local1.maxMotorForce = 0; _local1.motorSpeed = 200; _local1.enableMotor = true; jumpPlatform3Joint = (m_world.CreateJoint(_local1) as b2PrismaticJoint); _local2.Initialize(cube1Body, m_ground, cube1Body.GetPosition()); _local2.motorSpeed = (0.3 * Math.PI); _local2.maxMotorTorque = 5000; _local2.enableMotor = true; m_world.CreateJoint(_local2); _local2.Initialize(cube2Body, m_ground, cube2Body.GetPosition()); _local2.motorSpeed = (-0.3 * Math.PI); _local2.maxMotorTorque = 5000; _local2.enableMotor = true; m_world.CreateJoint(_local2); _local2.Initialize(cube3Body, m_ground, cube3Body.GetPosition()); _local2.motorSpeed = (0.3 * Math.PI); _local2.maxMotorTorque = 5000; _local2.enableMotor = true; m_world.CreateJoint(_local2); _local2.Initialize(roundBlockBody, m_ground, new b2Vec2((-675 / m_physScale), (-152 / m_physScale))); _local2.motorSpeed = (-0.9 * Math.PI); _local2.maxMotorTorque = 5000; _local2.enableMotor = true; m_world.CreateJoint(_local2); } private function jumpPlatformSoundCompleteHandler(_arg1:Event):void{ jumpPlatformSoundChannel = null; } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((playerBox.y > 500)) || (!((myContactListener.playerContactBodies.indexOf(roundBlockBody) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (myContactListener.playerContactBodies.indexOf(jumpPlatform1Body) != -1){ jumpPlatform1Joint.SetMaxMotorForce(150); if (((Game.soundIs) && (!(jumpPlatformSoundChannel)))){ jumpPlatformSoundChannel = jumpPlatformSound.play(0, 1); jumpPlatformSoundChannel.addEventListener(Event.SOUND_COMPLETE, jumpPlatformSoundCompleteHandler); }; } else { jumpPlatform1Joint.SetMaxMotorForce(0); }; if (myContactListener.playerContactBodies.indexOf(jumpPlatform2Body) != -1){ jumpPlatform2Joint.SetMaxMotorForce(150); if (((Game.soundIs) && (!(jumpPlatformSoundChannel)))){ jumpPlatformSoundChannel = jumpPlatformSound.play(0, 1); jumpPlatformSoundChannel.addEventListener(Event.SOUND_COMPLETE, jumpPlatformSoundCompleteHandler); }; } else { jumpPlatform2Joint.SetMaxMotorForce(0); }; if (myContactListener.playerContactBodies.indexOf(jumpPlatform3Body) != -1){ jumpPlatform3Joint.SetMaxMotorForce(150); if (((Game.soundIs) && (!(jumpPlatformSoundChannel)))){ jumpPlatformSoundChannel = jumpPlatformSound.play(0, 1); jumpPlatformSoundChannel.addEventListener(Event.SOUND_COMPLETE, jumpPlatformSoundCompleteHandler); }; } else { jumpPlatform3Joint.SetMaxMotorForce(0); }; } } }//package Levels
Section 96
//Level_11 (Levels.Level_11) package Levels { import flash.events.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; import flash.media.*; import flash.utils.*; public class Level_11 extends Level { public var triangle:MovieClip; public var killCeil1:MovieClip; public var train:MovieClip; public var koleso_2_1:MovieClip; public var koleso_2_2:MovieClip; public var levelAim:MovieClip; public var koleso_6_1:MovieClip; public var koleso_6_2:MovieClip; private var kolesoTrain1Joint; private var trainSoundChannel:SoundChannel; private var kolesoBody:Array; private var vagonBody:Array; public var ceil2_1:MovieClip; public var upCeil:MovieClip; public var ceil2_2:MovieClip; private var kolesoTrain1Body; public var koleso_11_1:MovieClip; public var killRotate:MovieClip; public var vagon10:MovieClip; public var vagon11:MovieClip; public var koleso_1_1:MovieClip; public var koleso_1_2:MovieClip; public var killStar1:MovieClip; public var koleso_9_1:MovieClip; public var koleso_9_2:MovieClip; public var killStar0:MovieClip; public var koleso_11_2:MovieClip; public var koleso_5_2:MovieClip; public var backGroundMC:MovieClip; public var koleso_5_1:MovieClip; public var killStar2:MovieClip; public var platform:MovieClip; public var kolesoTrain1:MovieClip; public var kolesoTrain2:MovieClip; private var transformTrainSound:SoundTransform; private var killBrevno:Array; private var killStarBody:Array; public var vagon1:MovieClip; public var koleso_10_1:MovieClip; public var koleso_10_2:MovieClip; public var vagon4:MovieClip; public var vagon5:MovieClip; public var vagon6:MovieClip; public var vagon7:MovieClip; public var vagon8:MovieClip; public var vagon9:MovieClip; public var vagon3:MovieClip; public var koleso_4_1:MovieClip; public var koleso_4_2:MovieClip; private var killRotateBody:b2Body; public var koleso_8_1:MovieClip; public var koleso_8_2:MovieClip; public var vagon2:MovieClip; private var trainSoundTimer:Timer; public var killBrevno1:MovieClip; public var killBrevno3:MovieClip; public var killBrevno0:MovieClip; public var killBrevno2:MovieClip; private var kolesoTrain2Body:b2Body; private var kolesoTrain2Joint:b2RevoluteJoint; public var checkPoint0:MovieClip; private var killCeil1Body:b2Body; private var trainBody:b2Body; public var ceil1:MovieClip; public var koleso_3_1:MovieClip; public var koleso_3_2:MovieClip; public var koleso_7_1:MovieClip; public var koleso_7_2:MovieClip; private var trainSound:TrainSound; public function Level_11(){ var _local1:int; kolesoBody = new Array(); vagonBody = new Array(); killStarBody = new Array(); killBrevno = new Array(); trainSound = new TrainSound(); transformTrainSound = new SoundTransform(0.5, 0); trainSoundTimer = new Timer(10000, 2); super(); id = 11; trainSoundTimer.addEventListener(TimerEvent.TIMER, onTimerSoundHandler); trainSoundTimer.start(); addEventListener(Event.REMOVED_FROM_STAGE, onRemovedHandler); CreateBody("levelAim", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[7.9, 12.9], [15.65, 30.15], [-9.6, 30.15], [-0.35, 12.9]]]); trainBody = CreateBody("train", "Polygon", (5 * defaultDensity), defaultFriction, defaultRestitution, [[[23.75, -21.05], [23.75, -9.3], [3.35, -1.2], [3.35, -21.05]], [[0.45, -2.6], [3.35, -1.2], [3.35, 1.3], [0.45, 2.9]], [[3.35, -1.2], [23.75, -9.3], [3.35, 1.3]], [[3.35, 1.3], [23.75, -9.3], [41.75, -9.3], [46.15, -9.2], [58, 2.35], [61.75, 6.35], [3.35, 6.35]], [[58, -9.2], [58, 2.35], [46.15, -9.2]], [[47.25, -15.9], [46.15, -9.2], [41.75, -9.3], [40, -15.9]]]); kolesoTrain1Body = CreateBody("kolesoTrain1", "Circle", defaultDensity, defaultFriction, defaultRestitution, [8]); kolesoTrain2Body = CreateBody("kolesoTrain2", "Circle", defaultDensity, defaultFriction, defaultRestitution, [8]); _local1 = 1; while (_local1 <= 11) { switch (_local1){ case 3: case 4: case 5: case 9: vagonBody.push(CreateBody(("vagon" + _local1.toString()), "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-71.35, -20.45], [-3.4, -20.5], [-3.4, 5.6], [-71.35, 5.6]]])); break; default: vagonBody.push(CreateBody(("vagon" + _local1.toString()), "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-71.35, -20.45], [-66.4, -20.45], [-71.35, -1.2]], [[-74.15, -2.8], [-71.35, -1.2], [-71.35, 1.05], [-74.15, 2.7]], [[-71.35, -1.2], [-66.4, -20.45], [-71.35, 1.05]], [[-71.35, 1.05], [-66.4, -20.45], [-66.4, 1], [-71.35, 5.6]], [[-3.4, 5.6], [-71.35, 5.6], [-66.4, 1], [-8.15, 1], [-3.4, 1.05]], [[-0.6, 2.7], [-3.4, 1.05], [-3.4, -1.2], [-0.6, -2.8]], [[-3.4, -1.2], [-3.4, 1.05], [-3.4, -20.5]], [[-3.4, -20.5], [-3.4, 1.05], [-8.15, 1], [-8.15, -20.5]]])); break; }; kolesoBody.push(new Array()); kolesoBody[(_local1 - 1)].push(CreateBody((("koleso_" + _local1.toString()) + "_1"), "Circle", defaultDensity, defaultFriction, defaultRestitution, [8])); kolesoBody[(_local1 - 1)].push(CreateBody((("koleso_" + _local1.toString()) + "_2"), "Circle", defaultDensity, defaultFriction, defaultRestitution, [8])); _local1++; }; CreateBody("platform", "Polygon", 0, defaultFriction, defaultRestitution, [[[2658.9, -33.95], [2857.8, -33.95], [3289.85, 0], [2100.95, 0]], [[0, 0], [2100.95, 0], [3718.9, 7.95], [3650, 20], [0, 20]], [[3793, 80.7], [3777.9, 60.65], [3808.7, 69.5]], [[3777.9, 60.65], [3755.7, 40.8], [3791.3, 45.7], [3808.7, 69.5]], [[3755.7, 40.8], [3714.1, 28.3], [3762.1, 21.5], [3791.3, 45.7]], [[3714.1, 28.3], [3650, 20], [3718.9, 7.95], [3762.1, 21.5]], [[3655.75, 0], [3718.9, 7.95], [3289.85, 0]], [[3718.9, 7.95], [2100.95, 0], [3289.85, 0]]]); CreateBody("ceil1", "Polygon", 0, defaultFriction, defaultRestitution, [[[659.95, 0], [659.95, 20], [0, 20], [0, 0]]]); killCeil1Body = CreateBody("killCeil1", "Polygon", 0, defaultFriction, defaultRestitution, [[[250, 5], [250, 20], [37, 14.15], [16.05, 12.95], [0, 5]], [[0, 20], [0, 5], [16.05, 12.95], [9.1, 27.5]], [[22.4, 20], [16.05, 12.95], [22.4, 17]], [[29.35, 32.6], [22.4, 17], [37, 14.15]], [[22.4, 17], [16.05, 12.95], [37, 14.15]], [[48.9, 35.5], [37, 14.15], [53.15, 26.1]], [[57.25, 29.5], [53.15, 26.1], [62.15, 15.75]], [[53.15, 26.1], [37, 14.15], [62.15, 15.75]], [[37, 14.15], [250, 20], [111.05, 16.95], [62.15, 15.75]], [[71.25, 26.5], [62.15, 15.75], [84.5, 17.3]], [[91.5, 34.55], [84.5, 17.3], [95.75, 23.8]], [[102.65, 32.65], [95.75, 23.8], [111.05, 16.95]], [[95.75, 23.8], [84.5, 17.3], [111.05, 16.95]], [[84.5, 17.3], [62.15, 15.75], [111.05, 16.95]], [[118, 28.2], [111.05, 16.95], [121.5, 23.8]], [[125.75, 37.1], [121.5, 23.8], [137, 20]], [[121.5, 23.8], [111.05, 16.95], [137, 20]], [[142.45, 29], [137, 20], [148.75, 20]], [[137, 20], [111.05, 16.95], [148.75, 20]], [[153.65, 34], [148.75, 20], [166.25, 20], [161.45, 40.4]], [[148.75, 20], [111.05, 16.95], [166.25, 20]], [[173.2, 35.5], [166.25, 20], [179.2, 27.25], [179.2, 39.8]], [[184.3, 33.15], [179.2, 27.25], [189.95, 23.5]], [[179.2, 27.25], [166.25, 20], [189.95, 23.5]], [[199.15, 39.45], [189.95, 23.5], [209.9, 20]], [[189.95, 23.5], [166.25, 20], [209.9, 20]], [[166.25, 20], [111.05, 16.95], [209.9, 20]], [[111.05, 16.95], [250, 20], [209.9, 20]], [[209.9, 20], [250, 20], [232.15, 31], [219.3, 31]], [[242.3, 39], [235.55, 20], [250, 20]], [[235.55, 20], [250, 20], [232.15, 31]]]); CreateBody("ceil2_1", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 10], [0, 10], [0, 0]]]); CreateBody("ceil2_2", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 10], [0, 10], [0, 0]]]); killRotateBody = CreateBody("killRotate", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[5, -40], [5, 40], [-5, 40], [-5, -40]]]); _local1 = 0; while (_local1 < 3) { killStarBody.push(CreateBody(("killStar" + _local1.toString()), "Circle", defaultDensity, defaultFriction, defaultRestitution, [40])); _local1++; }; _local1 = 0; while (_local1 < 4) { killBrevno.push(CreateBody(("killBrevno" + _local1.toString()), "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[52.75, 0], [52.75, 3], [0, 3], [0, 0]]])); _local1++; }; CreateBody("triangle", "Polygon", 0, defaultFriction, defaultRestitution, [[[0, 40], [185, 0], [187, 27]]]); CreateBody("upCeil", "Polygon", 0, defaultFriction, defaultRestitution, [[[-30.5, 34.5], [-13.5, 13.05], [0, 36], [-30.5, 38.5]], [[0, 36], [-13.5, 13.05], [175, 24]], [[175, 24], [-13.5, 13.05], [174.95, 0], [389, 0], [602.45, 18.6], [390.95, 24]], [[621.45, 41.5], [390.95, 24], [602.45, 18.6], [621.45, 36.65]]]); var _local2:b2DistanceJointDef = new b2DistanceJointDef(); var _local3:b2RevoluteJointDef = new b2RevoluteJointDef(); _local3.Initialize(killRotateBody, m_ground, killRotateBody.GetPosition()); _local3.motorSpeed = -(Math.PI); _local3.maxMotorTorque = 5000; _local3.enableMotor = true; m_world.CreateJoint(_local3); _local1 = 0; while (_local1 < 3) { _local3.Initialize(killStarBody[_local1], m_ground, new b2Vec2((killStarBody[_local1].GetPosition().x + (20 / m_physScale)), (killStarBody[_local1].GetPosition().y + (20 / m_physScale)))); _local3.motorSpeed = (-5 * Math.PI); _local3.maxMotorTorque = 5000; _local3.enableMotor = true; m_world.CreateJoint(_local3); _local1++; }; _local3.Initialize(trainBody, kolesoTrain1Body, new b2Vec2((kolesoTrain1Body.GetPosition().x + (4 / m_physScale)), (kolesoTrain1Body.GetPosition().y + (4 / m_physScale)))); _local3.motorSpeed = (7 * Math.PI); _local3.maxMotorTorque = 5000; _local3.enableMotor = true; kolesoTrain1Joint = (m_world.CreateJoint(_local3) as b2RevoluteJoint); _local3.Initialize(trainBody, kolesoTrain2Body, new b2Vec2((kolesoTrain2Body.GetPosition().x + (4 / m_physScale)), (kolesoTrain2Body.GetPosition().y + (4 / m_physScale)))); _local3.motorSpeed = (7 * Math.PI); _local3.maxMotorTorque = 5000; _local3.enableMotor = true; kolesoTrain2Joint = (m_world.CreateJoint(_local3) as b2RevoluteJoint); _local3.enableMotor = false; _local1 = 1; while (_local1 <= 11) { _local3.Initialize(vagonBody[(_local1 - 1)], kolesoBody[(_local1 - 1)][0], new b2Vec2((kolesoBody[(_local1 - 1)][0].GetPosition().x + (4 / m_physScale)), (kolesoBody[(_local1 - 1)][0].GetPosition().y + (4 / m_physScale)))); m_world.CreateJoint(_local3); _local3.Initialize(vagonBody[(_local1 - 1)], kolesoBody[(_local1 - 1)][1], new b2Vec2((kolesoBody[(_local1 - 1)][1].GetPosition().x + (4 / m_physScale)), (kolesoBody[(_local1 - 1)][1].GetPosition().y + (4 / m_physScale)))); m_world.CreateJoint(_local3); _local1++; }; _local2.Initialize(trainBody, vagonBody[0], trainBody.GetPosition(), vagonBody[0].GetPosition()); m_world.CreateJoint(_local2); _local1 = 1; while (_local1 <= 10) { _local2.Initialize(vagonBody[(_local1 - 1)], vagonBody[((_local1 - 1) + 1)], new b2Vec2((vagonBody[(_local1 - 1)].GetPosition().x - (75 / m_physScale)), vagonBody[(_local1 - 1)].GetPosition().y), new b2Vec2(vagonBody[((_local1 - 1) + 1)].GetPosition().x, vagonBody[((_local1 - 1) + 1)].GetPosition().y)); m_world.CreateJoint(_local2); _local1++; }; } private function onTimerSoundHandler(_arg1:TimerEvent):void{ if (Game.soundIs){ trainSoundChannel = trainSound.play(0, 1); }; if (trainSoundChannel){ trainSoundChannel.soundTransform = transformTrainSound; }; } private function onRemovedHandler(_arg1:Event):void{ if (trainSoundChannel){ trainSoundChannel.stop(); trainSoundChannel = null; }; trainSoundTimer.stop(); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((((((((((((((((((((((((playerBox.y > 500)) || (!((myContactListener.playerContactBodies.indexOf(killCeil1Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killRotateBody) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killStarBody[0]) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killStarBody[1]) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killStarBody[2]) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killStarBody[3]) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killStarBody[4]) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killStarBody[5]) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killBrevno[0]) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killBrevno[1]) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killBrevno[2]) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killBrevno[3]) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; } } }//package Levels
Section 97
//Level_12 (Levels.Level_12) package Levels { import flash.events.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; import com.midasplayer.*; import King.*; import flash.text.*; import flash.net.*; public class Level_12 extends Level { public var fiveMoreLevelsText:TextField; public var ceil:MovieClip; public var box1:MovieClip; public var box2:MovieClip; public var checkPoint0:MovieClip; public var checkPoint1:MovieClip; public var checkPoint3:MovieClip; public var mainPlatform:MovieClip; public var rampa:MovieClip; public var checkPoint2:MovieClip; public var roll1:MovieClip; public var roll2:MovieClip; public var killStar:MovieClip; public var levelAim:MovieClip; public var kingLogo:com; public var backGroundMC:MovieClip; public var boxPlatform:MovieClip; public var steps:MovieClip; public var bigBox:MovieClip; private var killStarDirection:int;// = 1 public var box0:MovieClip; private var killStarBody:b2Body; public var goPlat:MovieClip; private var boxStarBody:b2Body; public function Level_12(){ id = 12; kingLogo.addEventListener(MouseEvent.CLICK, kingClickHandler); if (KingAPI.isHome){ kingLogo.visible = false; fiveMoreLevelsText.visible = false; }; var _local1:b2FilterData = new b2FilterData(); _local1.groupIndex = -1; CreateBody("steps", "Polygon", 0, defaultFriction, defaultRestitution, [[[0x0100, 0], [0x0100, 18], [164, 18], [138, 0]], [[112, 18], [138, 18], [164, 106], [112, 37]], [[87, 37], [112, 37], [164, 106], [87, 55]], [[62, 55], [87, 55], [62, 72]], [[38.5, 72], [62, 72], [38.5, 88.5]], [[62, 72], [87, 55], [164, 106], [38.5, 88.5]], [[0, 88.5], [38.5, 88.5], [164, 106], [0, 106]], [[138, 18], [138, 0], [164, 18], [164, 106]]]); var _local2:b2Body = CreateBody("mainPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[1962.2, 0], [1962.2, 18.05], [1817.45, 7.75], [1817.45, 0]], [[1817.45, 7.75], [1962.2, 18.05], [1799.45, 15.75], [1799.45, 7.75]], [[1799.45, 15.75], [1962.2, 18.05], [1883.2, 18.05], [1779.95, 15.75]], [[1761.2, 24], [1779.95, 24], [1761.2, 31.5]], [[1741.95, 31.5], [1761.2, 31.5], [1741.95, 39.25]], [[1761.2, 31.5], [1779.95, 24], [1883.2, 193.25], [1741.95, 39.25]], [[1431.65, 39.25], [1741.95, 39.25], [1883.2, 193.25], [1431.65, 127.4]], [[884.25, 127.4], [1431.65, 127.4], [1883.2, 193.25], [884.25, 168.2]], [[533, 127.2], [533, 168.2], [511.5, 168.25], [511.5, 127.2]], [[533, 168.2], [884.25, 168.2], [1883.2, 193.25], [0, 193.25], [511.5, 168.25]], [[0, 168.25], [511.5, 168.25], [0, 193.25]], [[1779.95, 24], [1779.95, 15.75], [1883.2, 18.05], [1883.2, 193.25]]]); var _local3:b2Shape = _local2.GetShapeList(); while (_local3) { _local3.SetFilterData(_local1); m_world.Refilter(_local3); _local3 = _local3.m_next; }; CreateBody("boxPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 18], [0, 18], [0, 0]]]); var _local4:int; while (_local4 < 3) { CreateBody(("box" + _local4.toString()), "Polygon", (defaultDensity / 5), defaultFriction, defaultRestitution, [[[20, 0], [20, 20], [0, 20], [0, 0]]]); _local4++; }; CreateBody("ceil", "Polygon", 0, defaultFriction, defaultRestitution, [[[184, 0], [184, 140.25], [0, 140.25], [0, 0]]]); CreateBody("bigBox", "Polygon", (defaultDensity / 8), defaultFriction, defaultRestitution, [[[0, 0], [40, 0], [40, 40], [0, 40]]]); killStarBody = CreateBody("killStar", "Circle", defaultDensity, defaultFriction, defaultRestitution, [40]); killStarBody.GetShapeList().SetFilterData(_local1); m_world.Refilter(killStarBody.GetShapeList()); var _local5:b2Body = CreateBody("rampa", "Polygon", 0, 0.1, defaultRestitution, [[[11.6, -14.25], [11.6, -8.2], [5.6, -8.2], [0, -14.25]], [[435.5, 84.5], [354.5, 64.5], [451, 87.5]], [[354.5, 64.5], [210.95, 30], [505.5, 94], [483.5, 92.5], [451, 87.5]], [[210.95, 30], [157.95, 18], [450, 81.5], [505.5, 94]], [[996, 70.6], [1015, 70.6], [1009, 76.6], [996, 76.6]], [[1015, 70.6], [1015, 94], [1009, 88.5], [1009, 76.6]], [[1015, 94], [505.5, 94], [507.5, 88.5], [1009, 88.5]], [[507.5, 88.5], [505.5, 94], [483, 86.5]], [[483, 86.5], [505.5, 94], [450, 81.5]], [[450, 81.5], [157.95, 18], [420, 74.5]], [[420, 74.5], [157.95, 18], [211, 23.5], [353.5, 57.5]], [[157.95, 18], [110, 12], [158, 11.5], [211, 23.5]], [[110, 12], [58.75, 7], [110, 5.5], [158, 11.5]], [[58.75, 7], [0, 7], [5.6, 0], [58.75, 0], [110, 5.5]], [[0, 7], [0, -14.25], [5.6, -8.2], [5.6, 0]]]); var _local6:b2Body = CreateBody("roll1", "Circle", defaultDensity, 0.1, defaultRestitution, [8]); var _local7:b2Body = CreateBody("roll2", "Circle", defaultDensity, 0.1, defaultRestitution, [8]); var _local8:b2Body = CreateBody("goPlat", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[5.45, 0.75], [5.45, 10.1], [0, 15.75], [0, 0.75]], [[5.45, 10.1], [54.05, 10.1], [59.75, 15.75], [0, 15.75]], [[54.05, 10.1], [54.05, 0], [59.75, 0], [59.75, 15.75]]]); var _local9:b2DistanceJointDef = new b2DistanceJointDef(); var _local10:b2PrismaticJointDef = new b2PrismaticJointDef(); var _local11:b2RevoluteJointDef = new b2RevoluteJointDef(); _local10.Initialize(killStarBody, m_ground, new b2Vec2((killStarBody.GetPosition().x + (20 / m_physScale)), (killStarBody.GetPosition().y + (20 / m_physScale))), new b2Vec2(1, 0)); m_world.CreateJoint(_local10); _local9.Initialize(_local8, _local6, new b2Vec2((_local8.GetPosition().x + (3 / m_physScale)), (_local8.GetPosition().y + (1 / m_physScale))), new b2Vec2((_local6.GetPosition().x + (4 / m_physScale)), (_local6.GetPosition().y + (4 / m_physScale)))); m_world.CreateJoint(_local9); _local9.Initialize(_local8, _local7, new b2Vec2((_local8.GetPosition().x + (57 / m_physScale)), (_local8.GetPosition().y + (1 / m_physScale))), new b2Vec2((_local7.GetPosition().x + (4 / m_physScale)), (_local7.GetPosition().y + (4 / m_physScale)))); m_world.CreateJoint(_local9); _local9.Initialize(_local6, _local7, new b2Vec2((_local6.GetPosition().x + (4 / m_physScale)), (_local6.GetPosition().y + (4 / m_physScale))), new b2Vec2((_local7.GetPosition().x + (4 / m_physScale)), (_local7.GetPosition().y + (4 / m_physScale)))); m_world.CreateJoint(_local9); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((playerBox.y > 500)) || (!((myContactListener.playerContactBodies.indexOf(killStarBody) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (killStar.x < -1050){ killStarDirection = 1; }; if (killStar.x > -824){ killStarDirection = -1; }; killStarBody.SetLinearVelocity(new b2Vec2((4 * killStarDirection), 0)); } function kingClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.king.com/game/"), "_blank"); } } }//package Levels
Section 98
//Level_13 (Levels.Level_13) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_13 extends Level { public var mainPlat:MovieClip; private var movePlat2BodyDirection:int; private var greenBarierBody:b2Body; public var movePlat1:MovieClip; public var pereval2:MovieClip; public var levelAim:MovieClip; private var killStar1Body:b2Body; public var movePlat2:MovieClip; private var killStar2Body:b2Body; private var ballI:int;// = 0 public var pereval:MovieClip; public var greenCheck:MovieClip; public var greenBarier:MovieClip; private var kingStarBody2:b2Body; public var checkPoint0:MovieClip; public var checkPoint1:MovieClip; public var checkPoint2:MovieClip; private var kingStarBody1:b2Body; public var kingStar1:MovieClip; private var movePlat1Body:b2Body; private var movePlat2Body:b2Body; private var kingStarBody3:b2Body; public var skyLeft:MovieClip; public var killStar1:MovieClip; public var killStar2:MovieClip; public var backGroundMC:MovieClip; private var movePlat1BodyDirection:int; public var skyRight:MovieClip; public static var greenCheckLevel:Boolean = false; public function Level_13(){ id = 13; CreateBody("mainPlat", "Polygon", 0, defaultFriction, defaultRestitution, [[[-208.5, -55], [-208.5, -34.05], [-268.45, -34.05], [-268.45, -55]], [[-695.55, 11], [-624.5, 11], [-695.55, 29]], [[-624.5, 11], [-268.45, -55], [-268.45, -34.05], [-622.5, 29], [-695.55, 29]]]); kingStarBody1 = CreateBody("kingStar1", "Polygon", (2 * defaultDensity), defaultFriction, defaultRestitution, [[[30.65, -67.7], [53, -53], [-18.6, -7.65], [-53.05, -53], [-28.3, -69.35], [-0.05, -75]], [[-75.05, 0], [-18.6, -7.65], [-68.9, 30.1]], [[-18.6, -7.65], [53, -53], [69.2, -27.7], [74.95, 0], [67.9, 28.8], [53, 53.05], [30.3, 67.25], [-0.05, 75], [-27.65, 68.1], [-53.05, 53.05], [-68.9, 30.1]]]); movePlat1Body = CreateBody("movePlat1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[65, -5], [65, 5], [-65, 5], [-65, -5]]]); movePlat2Body = CreateBody("movePlat2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[65, -5], [65, 5], [-65, 5], [-65, -5]]]); CreateBody("skyLeft", "Polygon", 0, defaultFriction, defaultRestitution, [[[0, 191.25], [10.25, 191.25], [10.25, 236.25], [0, 245.5]], [[199.75, 460], [114.75, 444.2], [123.75, 435.85], [199.75, 451]], [[114.75, 444.2], [114.75, 245.5], [123.75, 345.25], [123.75, 435.85]], [[199.75, 359], [123.75, 345.25], [123.75, 336.25], [199.75, 350]], [[123.75, 345.25], [114.75, 245.5], [123.75, 336.25]], [[123.75, 336.25], [114.75, 245.5], [123.75, 245.25]], [[114.75, 245.5], [0, 245.5], [10.25, 236.25], [123.75, 236.25], [123.75, 245.25]], [[199.75, 259], [123.75, 245.25], [123.75, 236.25], [199.75, 250]]]); CreateBody("skyRight", "Polygon", 0, defaultFriction, defaultRestitution, [[[76, 132], [85, 132], [76, 286.85]], [[0, 300], [76, 286.85], [76, 295.85], [0, 309]], [[76, 286.85], [85, 132], [76, 295.85]], [[76, 295.85], [85, 132], [85, 394.8], [76, 386.85]], [[0, 400], [76, 386.85], [85, 394.8], [0, 409]]]); greenBarierBody = CreateBody("greenBarier", "Polygon", 0, defaultFriction, defaultRestitution, [[[10, -75], [10, 75], [-10, 75], [-10, -75]]]); CreateBody("pereval", "Polygon", 0, defaultFriction, defaultRestitution, [[[-56, 10], [-56, -10], [56, -10], [56, 10]]]); CreateBody("pereval2", "Polygon", 0, defaultFriction, defaultRestitution, [[[-56, 10], [-56, -10], [56, -10], [56, 10]]]); killStar1Body = CreateBody("killStar1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-15, 0.2], [-2.15, -2.05], [-2.05, 2.1]], [[-2.15, -2.05], [-0.25, -15], [2, -2.15], [2.1, 2], [0.2, 15], [-2.05, 2.1]], [[15, -0.25], [2.1, 2], [2, -2.15]]]); killStar2Body = CreateBody("killStar2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-15, 0.2], [-2.15, -2.05], [-2.05, 2.1]], [[-2.15, -2.05], [-0.25, -15], [2, -2.15], [2.1, 2], [0.2, 15], [-2.05, 2.1]], [[15, -0.25], [2.1, 2], [2, -2.15]]]); if (greenCheckLevel){ DestroyBody(greenBarierBody); }; var _local1:b2DistanceJointDef = new b2DistanceJointDef(); var _local2:b2PrismaticJointDef = new b2PrismaticJointDef(); _local2.Initialize(movePlat1Body, m_ground, movePlat1Body.GetWorldCenter(), new b2Vec2(1, 0)); _local2.enableLimit = false; _local2.enableMotor = false; m_world.CreateJoint(_local2); movePlat1BodyDirection = -1; _local2.Initialize(movePlat2Body, m_ground, movePlat2Body.GetWorldCenter(), new b2Vec2(1, 0)); _local2.enableLimit = false; _local2.enableMotor = false; m_world.CreateJoint(_local2); movePlat2BodyDirection = -1; _local1.Initialize(killStar1Body, m_ground, killStar1Body.GetPosition(), new b2Vec2((killStar1Body.GetPosition().x - (100 / m_physScale)), (killStar1Body.GetPosition().y - (100 / m_physScale)))); m_world.CreateJoint(_local1); _local1.Initialize(killStar2Body, m_ground, killStar2Body.GetPosition(), new b2Vec2((killStar2Body.GetPosition().x + (100 / m_physScale)), (killStar2Body.GetPosition().y - (100 / m_physScale)))); m_world.CreateJoint(_local1); killStar1Body.SetAngularVelocity(10); killStar2Body.SetAngularVelocity(10); greenCheck.stop(); } private function checkBoxSoundCompleteHandler(_arg1:Event):void{ checkBoxSoundChannel = null; } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((((((playerBox.y > 500)) || (!((myContactListener.playerContactBodies.indexOf(kingStarBody1) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killStar1Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killStar2Body) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (movePlat1.x < -1237){ movePlat1BodyDirection = 1; }; if (movePlat1.x > -863){ movePlat1BodyDirection = -1; }; movePlat1Body.SetLinearVelocity(new b2Vec2((3 * movePlat1BodyDirection), 0)); if (movePlat2.x < -572){ movePlat2BodyDirection = 1; }; if (movePlat2.x > -68){ movePlat2BodyDirection = -1; }; movePlat2Body.SetLinearVelocity(new b2Vec2((3 * movePlat2BodyDirection), 0)); if (((playerBox.hitTestObject(greenCheck)) && ((greenCheck.currentFrame == 1)))){ greenCheck.gotoAndStop(2); greenCheckLevel = true; DestroyBody(greenBarierBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; } } }//package Levels
Section 99
//Level_14 (Levels.Level_14) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_14 extends Level { public var firstPlatform:MovieClip; public var checkPoint0:MovieClip; public var checkPoint1:MovieClip; public var floor:MovieClip; public var blueCheck:MovieClip; public var movePlatform1:MovieClip; private var movePlatform1Body:b2Body; public var checkPlat:MovieClip; public var killRollBall:MovieClip; private var killRollGo:Boolean;// = false public var catapult:MovieClip; public var levelAim:MovieClip; public var finishPlat:MovieClip; public var barier:MovieClip; public var backGroundMC:MovieClip; public var catapultOpora:MovieClip; public var catapultPlat:MovieClip; public var bluePlat:MovieClip; private var bluePlatBody:b2Body; private var drop1Body:b2Body; private var movePlatform1BodyDirection:int; public var ball40:MovieClip; public var dropPlat:MovieClip; private var killRollBallBody:b2Body; public function Level_14(){ var _local3:b2PrismaticJointDef; super(); id = 14; CreateBody("firstPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[140, 10], [-110, 10], [-110, -10], [140, -10]]]); movePlatform1Body = CreateBody("movePlatform1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-60, -5.35], [-52.1, -17.1], [-52.1, -5], [-60, 5]], [[60, 5], [-60, 5], [-52.1, -5], [60, -5]]]); CreateBody("catapultPlat", "Polygon", 0, defaultFriction, defaultRestitution, [[[94.8, -44], [247.5, -44], [-16.1, -12.95]], [[-247.5, -12.95], [-16.1, -12.95], [-247.5, 44]], [[-16.1, -12.95], [247.5, -44], [247.5, 44], [-247.5, 44]]]); CreateBody("ball40", "Circle", 2, 0.2, defaultRestitution, [45]); var _local1:b2Body = CreateBody("catapultOpora", "Polygon", 0, defaultFriction, defaultRestitution, [[[-0.25, -4.75], [18.25, 24.75], [-18.25, 24.75]]]); var _local2:b2Body = CreateBody("catapult", "Polygon", 0.5, defaultFriction, defaultRestitution, [[[-72.05, -16.75], [-71.3, -10.4], [-77.25, -16.75]], [[-71.3, -10.4], [-69.4, -5.75], [-70.25, 1], [-74.25, -3.65], [-76.55, -10.1], [-77.25, -16.75]], [[-70.25, 1], [-69.4, -5.75], [-65.15, -3], [-65, 3]], [[54.4, 3], [-65, 3], [-46.65, -3], [54.4, -3]], [[-46.65, -3], [-65, 3], [-53.8, -3], [-44.1, -7.1]], [[-42.6, -11.9], [-44.1, -7.1], [-47.15, -13.55], [-47.15, -17], [-41.9, -17]], [[-47.15, -13.55], [-44.1, -7.1], [-48.15, -9.7]], [[-48.15, -9.7], [-44.1, -7.1], [-50.25, -5.75]], [[-50.25, -5.75], [-44.1, -7.1], [-53.8, -3]], [[-53.8, -3], [-65, 3], [-60, -2.25]], [[-60, -2.25], [-65, 3], [-65.15, -3]]]); CreateBody("floor", "Polygon", 0, defaultFriction, defaultRestitution, [[[-199.9, 9], [-199.9, -9], [257.1, -9], [257.1, 9]]]); bluePlatBody = CreateBody("bluePlat", "Polygon", 0, defaultFriction, defaultRestitution, [[[-44.8, -5], [39.05, -5], [47.6, 5], [-44.8, 5]], [[39.05, -5], [39.05, -17.3], [47.6, -4.9], [47.6, 5]]]); CreateBody("checkPlat", "Polygon", 0, defaultFriction, defaultRestitution, [[[158, -10], [158, 10], [-62, 10], [-62, -10]]]); drop1Body = CreateBody("dropPlat", "Polygon", 0, defaultFriction, defaultRestitution, [[[-62, 5], [-62, -5], [62, -5], [62, 5]]]); CreateBody("finishPlat", "Polygon", 0, defaultFriction, defaultRestitution, [[[79.9, -10], [162.5, -10], [162.5, 83.5], [17.9, 27.1]], [[-135.25, 27.1], [17.9, 27.1], [162.5, 83.5], [-118.25, 59.5]], [[-250.45, 59.5], [-118.25, 59.5], [162.5, 83.5], [-250.45, 79.5]]]); killRollBallBody = CreateBody("killRollBall", "Circle", defaultDensity, defaultFriction, defaultRestitution, [50]); CreateBody("barier", "Polygon", 0, defaultFriction, defaultRestitution, [[[0, 0], [20, 0], [20, 50], [0, 50]]]); _local3 = new b2PrismaticJointDef(); var _local4:b2RevoluteJointDef = new b2RevoluteJointDef(); _local3.Initialize(movePlatform1Body, m_ground, movePlatform1Body.GetWorldCenter(), new b2Vec2(0, 1)); _local3.enableLimit = false; _local3.enableMotor = false; m_world.CreateJoint(_local3); movePlatform1BodyDirection = 1; _local4.Initialize(_local2, _local1, _local2.GetPosition()); m_world.CreateJoint(_local4); blueCheck.stop(); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((playerBox.y > 750)) || (!((myContactListener.playerContactBodies.indexOf(killRollBallBody) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (movePlatform1.y < 232){ movePlatform1BodyDirection = 1; }; if (movePlatform1.y > 640){ movePlatform1BodyDirection = -1; }; movePlatform1Body.SetLinearVelocity(new b2Vec2(0, (3 * movePlatform1BodyDirection))); if (((playerBox.hitTestObject(blueCheck)) && ((blueCheck.currentFrame == 1)))){ blueCheck.gotoAndStop(2); DestroyBody(bluePlatBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; if (myContactListener.playerContactBodies.indexOf(drop1Body) != -1){ m_world.DestroyBody(drop1Body); drop1Body = CreateBody("dropPlat", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-62, 5], [-62, -5], [62, -5], [62, 5]]]); }; if ((((playerBox.x > 1410)) && (!(killRollGo)))){ killRollGo = true; killRollBallBody.ApplyImpulse(new b2Vec2(-5, 0), killRollBallBody.GetPosition()); }; } private function checkBoxSoundCompleteHandler(_arg1:Event):void{ checkBoxSoundChannel = null; } } }//package Levels
Section 100
//Level_15 (Levels.Level_15) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; import caurina.transitions.*; public class Level_15 extends Level { public var luk:MovieClip; public var rampa2:MovieClip; public var redGate:MovieClip; public var shopLeftSide:MovieClip; public var skateWheel11:MovieClip; public var skateWheel12:MovieClip; private var movePlatformBody:b2Body; public var levelAim:MovieClip; public var shopRightSide:MovieClip; private var redGateBody:b2Body; public var money:MovieClip; public var checkPoint0:MovieClip; public var checkPoint1:MovieClip; public var checkPoint2:MovieClip; private var shopLeftSideBody:b2Body; public var finishPlat:MovieClip; public var barier:MovieClip; public var movePlatform:MovieClip; public var skateBoard1:MovieClip; public var step2:MovieClip; public var step3:MovieClip; public var step1:MovieClip; public var killLine:MovieClip; public var backGroundMC:MovieClip; public var underShop:MovieClip; public var redCheck:MovieClip; private var movePlatformBodyDirection:int; public function Level_15(){ id = 15; CreateBody("rampa2", "Polygon", 0, defaultFriction, defaultRestitution, [[[-543.75, -135.5], [-487.75, -116.5], [-147.8, 14.5], [-24.8, 89.05], [-128.4, 77.55], [-659.1, -3.15], [-866.95, -54.4], [-866.95, -170], [-766.65, -170], [-726.65, -167.5], [-630.7, -154.5], [-588.65, -146.5]], [[-1606.85, -54.4], [-866.95, -54.4], [-659.1, -3.15], [-1606.85, -3.15]], [[291.95, 40.05], [291.95, 89.05], [281.45, 45.05]], [[281.45, 45.05], [291.95, 89.05], [267.95, 49.55]], [[267.95, 49.55], [291.95, 89.05], [252, 52.55]], [[291.95, 89.05], [-24.8, 89.05], [227.5, 55.05], [252, 52.55]], [[227.5, 55.05], [-24.8, 89.05], [163.45, 57.5]], [[163.45, 57.5], [-24.8, 89.05], [142.45, 57.5]], [[142.45, 57.5], [-24.8, 89.05], [46.45, 51.55]], [[46.45, 51.55], [-24.8, 89.05], [-13.55, 44.55]], [[-13.55, 44.55], [-24.8, 89.05], [-75.8, 33.5], [-41.05, 39.65]], [[-75.8, 33.5], [-24.8, 89.05], [-121.3, 22.5]], [[-121.3, 22.5], [-24.8, 89.05], [-147.8, 14.5]]]); shopLeftSideBody = CreateBody("shopLeftSide", "Polygon", 0, defaultFriction, defaultRestitution, [[[81.95, -91.5], [81.95, -53.5], [-230.7, -53.5], [-263, -91.5]], [[182.95, 91.5], [-263, 91.5], [-230.7, 81.75], [182.95, 81.75]], [[-263, 91.5], [-263, -91.5], [-230.7, -53.5], [-230.7, 81.75]]]); CreateBody("shopRightSide", "Polygon", 0, defaultFriction, defaultRestitution, [[[105.35, -10.9], [105.35, -48.7], [175.45, -48.7], [153.35, -10.9]], [[-175.5, 20.95], [153.35, 20.95], [175.45, 48.7], [-175.5, 48.7]], [[153.35, 20.95], [153.35, -10.9], [175.45, -48.7], [175.45, 48.7]]]); CreateBody("step1", "Polygon", 0, defaultFriction, defaultRestitution, [[[14.75, -3.5], [14.75, 3.5], [-14.75, 3.5], [-14.75, -3.5]]]); CreateBody("step2", "Polygon", 0, defaultFriction, defaultRestitution, [[[14.75, -3.5], [14.75, 3.5], [-14.75, 3.5], [-14.75, -3.5]]]); CreateBody("step3", "Polygon", 0, defaultFriction, defaultRestitution, [[[14.75, -3.5], [14.75, 3.5], [-14.75, 3.5], [-14.75, -3.5]]]); redGateBody = CreateBody("redGate", "Polygon", 0, defaultFriction, defaultRestitution, [[[-4, -77.65], [4, -77.65], [4, 5.35], [-4, 5.35]]]); CreateBody("finishPlat", "Polygon", 0, defaultFriction, defaultRestitution, [[[-160, -87.5], [-115, -61.5], [-160, 0]], [[-115, -61.5], [-99, -56], [-160, 0]], [[160, 0], [-160, 0], [-62, -48], [160, -48]], [[-62, -48], [-160, 0], [-80.3, -50.5]], [[-80.3, -50.5], [-160, 0], [-99, -56]]]); CreateBody("barier", "Polygon", 0, defaultFriction, defaultRestitution, [[[0, 0], [20, 0], [20, 50], [0, 50]]]); movePlatformBody = CreateBody("movePlatform", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[30, -21], [30, -11], [-30, -11], [-30, -21]]]); CreateBody("underShop", "Polygon", 0, defaultFriction, defaultRestitution, [[[-353.55, 42.3], [-353.55, -42.3], [353.6, -42.3], [353.6, 42.3]]]); if (lastCheckNum == 0){ CreateBody("luk", "Polygon", (defaultDensity / 3), (defaultFriction / 3), defaultRestitution, [[[-20, 2], [-20, -2], [20, -2], [20, 2]]]); } else { m_sprite.removeChild(luk); }; var _local1:b2Body = CreateBody("skateBoard1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-19.6, -31.95], [-14.9, -31.95], [-16.3, -30], [-19.6, -30]], [[-14.9, -31.95], [-7.05, -3.2], [-11.7, 0.3], [-16.3, -30]], [[-7.05, -3.2], [9.9, -3.2], [14.55, 0.3], [-11.7, 0.3]], [[9.9, -3.2], [15.4, -12], [16.7, -12], [14.55, 0.3]]]); var _local2:b2Body = CreateBody("skateWheel11", "Circle", defaultDensity, defaultFriction, defaultRestitution, [6]); var _local3:b2Body = CreateBody("skateWheel12", "Circle", defaultDensity, defaultFriction, defaultRestitution, [6]); var _local4:b2PrismaticJointDef = new b2PrismaticJointDef(); _local4.Initialize(movePlatformBody, m_ground, movePlatformBody.GetWorldCenter(), new b2Vec2(0, 1)); m_world.CreateJoint(_local4); movePlatformBodyDirection = 1; var _local5:b2RevoluteJointDef = new b2RevoluteJointDef(); _local5.Initialize(_local1, _local2, new b2Vec2((_local2.GetPosition().x + (3 / m_physScale)), (_local2.GetPosition().y + (3 / m_physScale)))); m_world.CreateJoint(_local5); _local5.Initialize(_local1, _local3, new b2Vec2((_local3.GetPosition().x + (3 / m_physScale)), (_local3.GetPosition().y + (3 / m_physScale)))); m_world.CreateJoint(_local5); redCheck.stop(); } private function checkBoxSoundCompleteHandler(_arg1:Event):void{ checkBoxSoundChannel = null; } override public function Update(_arg1:Event):void{ var _local2:b2RevoluteJointDef; super.Update(_arg1); if ((((playerBox.y > 860)) || (playerBox.hitTestObject(killLine)))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (((playerBox.hitTestObject(redCheck)) && ((redCheck.currentFrame == 1)))){ redCheck.gotoAndStop(2); m_world.DestroyBody(redGateBody); redGateBody = CreateBody("redGate", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -77.65], [4, -77.65], [4, 5.35], [-4, 5.35]]]); _local2 = new b2RevoluteJointDef(); _local2.Initialize(shopLeftSideBody, redGateBody, redGateBody.GetPosition()); m_world.CreateJoint(_local2); redGateBody.SetAngularVelocity(3); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; if (movePlatform.y < 211){ movePlatformBodyDirection = 1; }; if (movePlatform.y > 368){ movePlatformBodyDirection = -1; }; movePlatformBody.SetLinearVelocity(new b2Vec2(0, (3 * movePlatformBodyDirection))); if (killLine.x < 73){ killLine.x = 387; } else { killLine.x = (killLine.x - 4); }; if (playerBox.hitTestObject(money)){ Tweener.addTween(money, {scaleX:0, scaleY:0, time:0.3, transition:"easeOutQuint"}); }; } } }//package Levels
Section 101
//Level_16 (Levels.Level_16) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_16 extends Level { public var wrongWay:MovieClip; private var killRollBall2Direction:int;// = -1 public var dropPlatform:MovieClip; private var movePlatform1Body:b2Body; public var jumpPlatform1:MovieClip; private var killRollBall1Body:b2Body; private var movePlatform2Body:b2Body; public var levelAim:MovieClip; public var blueCheck1:MovieClip; public var blueCheck2:MovieClip; public var blueCheck3:MovieClip; private var axe1Body:b2Body; private var bluePlatformBody:b2Body; private var movePlatform1BodyDirection:int; private var killRollBall2Body:b2Body; public var dangerPlato:MovieClip; public var checkPoint1:MovieClip; public var checkPoint2:MovieClip; private var dropPlatformBody:b2Body; public var finishPlato:MovieClip; public var movePlatform2:MovieClip; public var checkPoint0:MovieClip; private var jumpPlatform1Body:b2Body; public var movePlatform1:MovieClip; private var movePlatform2BodyDirection:int; public var killRollBall2:MovieClip; private var jumpPlatform1Joint:b2PrismaticJoint; public var killRollBall1:MovieClip; public var plat1:MovieClip; public var plat2:MovieClip; public var backGroundMC:MovieClip; public var bluePlato:MovieClip; public var axe1:MovieClip; public var strelka:MovieClip; private var killRollBall1Direction:int;// = 1 public var firstPlat:MovieClip; public static var isStrelka:Boolean = false; public function Level_16(){ id = 16; strelka.visible = isStrelka; CreateBody("firstPlat", "Polygon", 0, defaultFriction, defaultRestitution, [[[218.95, 252], [-95, 252], [218.95, 220.05]], [[218.95, 220.05], [-95, 252], [-69, 197.05], [245.95, 197.05], [245.95, 207.05]], [[-95, 252], [-95, -251.95], [-69, 124], [-69, 197.05]], [[-95, -251.95], [217.95, -251.95], [89, 151], [-69, 124]], [[89, 151], [217.95, -251.95], [217.95, 171.95], [89, 171.95]]]); CreateBody("plat2", "Polygon", 0, defaultFriction, defaultRestitution, [[[-131, 10], [-131, -10], [131, -10], [131, 10]]]); CreateBody("plat1", "Polygon", 0, defaultFriction, defaultRestitution, [[[-55, -10], [55, -10], [55, 10], [-55, 10]]]); movePlatform1Body = CreateBody("movePlatform1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-40, 5], [-40, -5], [40, -5], [40, 5]]]); movePlatform2Body = CreateBody("movePlatform2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-40, 5], [-40, -5], [40, -5], [40, 5]]]); jumpPlatform1Body = CreateBody("jumpPlatform1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); CreateBody("dangerPlato", "Polygon", 0, defaultFriction, defaultRestitution, [[[-210, 10], [-210, -10], [210, -10], [210, 10]]]); bluePlatformBody = CreateBody("bluePlato", "Polygon", 0, defaultFriction, defaultRestitution, [[[-210, 10], [-210, -10], [210, -10], [210, 10]]]); dropPlatformBody = CreateBody("dropPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[-62, -5], [62, -5], [62, 5], [-62, 5]]]); killRollBall1Body = CreateBody("killRollBall1", "Circle", defaultDensity, defaultFriction, defaultRestitution, [50]); killRollBall2Body = CreateBody("killRollBall2", "Circle", defaultDensity, defaultFriction, defaultRestitution, [50]); CreateBody("finishPlato", "Polygon", 0, defaultFriction, defaultRestitution, [[[74.7, -41.95], [316, -41.95], [316, 42], [-13.75, 22]], [[-316, 22], [-13.75, 22], [316, 42], [-316, 42]]]); axe1Body = CreateBody("axe1", "Polygon", (2 * defaultDensity), defaultFriction, defaultRestitution, [[[25.5, -1.5], [40.5, -1.5], [40.5, 113.5], [25.5, 113.5]], [[0.5, 116.5], [25.5, 113.5], [40.5, 113.5], [67.5, 116.5], [67.5, 175.5], [0.5, 175.5]]]); var _local1:b2PrismaticJointDef = new b2PrismaticJointDef(); _local1.Initialize(movePlatform1Body, m_ground, movePlatform1Body.GetWorldCenter(), new b2Vec2(1, 0)); _local1.enableLimit = false; _local1.enableMotor = false; m_world.CreateJoint(_local1); movePlatform1BodyDirection = 1; _local1.Initialize(movePlatform2Body, m_ground, movePlatform2Body.GetWorldCenter(), new b2Vec2(1, 0)); _local1.enableLimit = false; _local1.enableMotor = false; m_world.CreateJoint(_local1); movePlatform2BodyDirection = 1; _local1.Initialize(jumpPlatform1Body, m_ground, jumpPlatform1Body.GetWorldCenter(), new b2Vec2(0, 1)); _local1.lowerTranslation = 0; _local1.upperTranslation = 1; _local1.enableLimit = true; _local1.maxMotorForce = 0; _local1.motorSpeed = 200; _local1.enableMotor = true; jumpPlatform1Joint = (m_world.CreateJoint(_local1) as b2PrismaticJoint); var _local2:b2RevoluteJointDef = new b2RevoluteJointDef(); _local2.Initialize(axe1Body, m_ground, new b2Vec2((2767 / m_physScale), (-60 / m_physScale))); m_world.CreateJoint(_local2); blueCheck1.stop(); blueCheck2.stop(); blueCheck3.stop(); } private function checkBoxSoundCompleteHandler(_arg1:Event):void{ checkBoxSoundChannel = null; } private function jumpPlatformSoundCompleteHandler(_arg1:Event):void{ jumpPlatformSoundChannel = null; } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((((((playerBox.y > 1000)) || (!((myContactListener.playerContactBodies.indexOf(killRollBall1Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killRollBall2Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(axe1Body) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (playerBox.hitTestObject(wrongWay)){ lastCheckNum = 0; isStrelka = true; }; if (movePlatform1.x < 457){ movePlatform1BodyDirection = 1; }; if (movePlatform1.x > 787){ movePlatform1BodyDirection = -1; }; movePlatform1Body.SetLinearVelocity(new b2Vec2((3 * movePlatform1BodyDirection), 0)); if (movePlatform2.x < 999){ movePlatform2BodyDirection = 1; }; if (movePlatform2.x > 1350){ movePlatform2BodyDirection = -1; }; movePlatform2Body.SetLinearVelocity(new b2Vec2((3 * movePlatform2BodyDirection), 0)); if (myContactListener.playerContactBodies.indexOf(jumpPlatform1Body) != -1){ jumpPlatform1Joint.SetMaxMotorForce(250); if (((Game.soundIs) && (!(jumpPlatformSoundChannel)))){ jumpPlatformSoundChannel = jumpPlatformSound.play(0, 1); jumpPlatformSoundChannel.addEventListener(Event.SOUND_COMPLETE, jumpPlatformSoundCompleteHandler); }; } else { jumpPlatform1Joint.SetMaxMotorForce(0); }; if (((playerBox.hitTestObject(blueCheck1)) && ((blueCheck1.currentFrame == 1)))){ blueCheck1.gotoAndStop(2); DestroyBody(bluePlatformBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.soundTransform = transformCheckBoxSound; checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; if (((playerBox.hitTestObject(blueCheck2)) && ((blueCheck2.currentFrame == 1)))){ blueCheck2.gotoAndStop(2); DestroyBody(bluePlatformBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.soundTransform = transformCheckBoxSound; checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; if (((playerBox.hitTestObject(blueCheck3)) && ((blueCheck3.currentFrame == 1)))){ blueCheck3.gotoAndStop(2); DestroyBody(bluePlatformBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.soundTransform = transformCheckBoxSound; checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; if (myContactListener.playerContactBodies.indexOf(dropPlatformBody) != -1){ m_world.DestroyBody(dropPlatformBody); dropPlatformBody = CreateBody("dropPlatform", "Polygon", (3 * defaultDensity), defaultFriction, defaultRestitution, [[[-62, -5], [62, -5], [62, 5], [-62, 5]]]); }; if (killRollBall1.x < 1450){ killRollBall1Direction = 1; }; if (killRollBall1.x > 1750){ killRollBall1Direction = -1; }; killRollBall1Body.SetAngularVelocity((5 * killRollBall1Direction)); if (killRollBall2.x < 2120){ killRollBall2Direction = 1; }; if (killRollBall2.x > 2495){ killRollBall2Direction = -1; }; killRollBall2Body.SetAngularVelocity((5 * killRollBall2Direction)); } } }//package Levels
Section 102
//Level_17 (Levels.Level_17) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; import King.*; import flash.net.*; public class Level_17 extends Level { public var checkPoint0:MovieClip; public var checkPoint1:MovieClip; public var movePlatform1:MovieClip; public var movePlatform2:MovieClip; public var kingCrown1:MovieClip; public var kingCrown2:MovieClip; private var starBody:b2Body; private var movePlatform1Body:b2Body; public var jumpPlatform1:MovieClip; public var star:MovieClip; private var movePlatform2Body:b2Body; public var levelAim:MovieClip; public var kingLogo:com; public var killStarPart:MovieClip; private var killStarPartBody:b2Body; private var movePlatform1BodyDirection:int; private var movePlatform2BodyDirection:int; private var jumpPlatform1Joint:b2PrismaticJoint; public var backGroundMC:MovieClip; private var jumpPlatform1Body:b2Body; public function Level_17(){ var _local2:b2PrismaticJointDef; var _local3:b2RevoluteJointDef; super(); id = 17; kingLogo.addEventListener(MouseEvent.CLICK, kingClickHandler); var _local1:b2Body = CreateBody("kingCrown1", "Polygon", 0, defaultFriction, defaultRestitution, [[[686.25, 10.5], [706.05, -27.4], [717.65, 5.45]], [[508.8, -8.85], [505.8, 112.95], [455.85, 100.95], [500.65, -10.1]], [[505.8, 112.95], [509.8, 180.9], [429.85, 146.9], [455.85, 100.95]], [[509.8, 180.9], [533.8, 212.9], [387.85, 186.9], [429.85, 146.9]], [[387.85, 186.9], [533.8, 212.9], [-58, 224.9], [-33.3, 205.4], [113.95, 190.9], [143.95, 188.9], [343.85, 186.9]], [[273.5, -120.6], [248.6, -134.35], [217, -197.85], [253.95, -198.4], [266.4, -162.65]], [[296.45, -192.45], [266.4, -162.65], [253.95, -198.4]], [[248.6, -134.35], [271.9, 78.95], [222.25, -133.95], [217, -197.85]], [[175.1, -192.05], [217, -197.85], [205.15, -162.9]], [[205.15, -162.9], [217, -197.85], [222.25, -133.95], [197.8, -120.65]], [[222.25, -133.95], [271.9, 78.95], [203.9, 86.95]], [[271.9, 78.95], [287.9, 128.95], [203.9, 86.95]], [[287.9, 128.95], [309.9, 166.9], [171.95, 158.9], [203.9, 86.95]], [[309.9, 166.9], [343.85, 186.9], [143.95, 188.9], [171.95, 158.9]], [[18.3, 39.4], [-10.15, 29.25], [5.75, -1.4]], [[-10.15, 29.25], [-10.3, 29.3], [-47.9, -29.8], [-34.85, -69.95], [-11.3, -35.2], [5.75, -1.4]], [[31.65, -34.9], [5.75, -1.4], [-11.3, -35.2]], [[-10.3, 29.3], [34, 120.95], [-33.3, 32.95], [-47.9, -29.8]], [[-88.65, -18.6], [-47.9, -29.8], [-55.05, 6.4]], [[-55.05, 6.4], [-47.9, -29.8], [-33.35, 32.9], [-56.75, 49.3]], [[-33.35, 32.9], [-47.9, -29.8], [-33.3, 32.95]], [[-33.3, 32.95], [34, 120.95], [-33.3, 205.4]], [[34, 120.95], [81.95, 176.9], [-33.3, 205.4]], [[81.95, 176.9], [113.95, 190.9], [-33.3, 205.4]], [[533.8, 212.9], [571.8, 212.9], [629.75, 402.85], [-135.95, 402.85], [-58, 224.9]], [[-205.45, 10.5], [-237.6, 5.3], [-225.25, -27.4]], [[-237.6, 5.3], [-238.15, 5.7], [-283.2, -45.5], [-277.7, -87.35], [-248.2, -57.5], [-225.25, -27.4]], [[-205.9, -65.05], [-225.25, -27.4], [-248.2, -57.5]], [[-238.15, 5.7], [-108.55, 188.9], [-257.95, 14.15], [-283.2, -45.5]], [[-321.25, -27], [-283.2, -45.5], [-283.65, -8.6]], [[-283.65, -8.6], [-283.2, -45.5], [-258, 14.1], [-277.45, 33.95]], [[-258, 14.1], [-283.2, -45.5], [-257.95, 14.15]], [[-257.95, 14.15], [-108.55, 188.9], [-135.95, 402.85]], [[-108.55, 188.9], [-83.95, 216.9], [-135.95, 402.85]], [[-83.95, 216.9], [-58, 224.9], [-135.95, 402.85]], [[571.8, 212.9], [627.75, 150.9], [629.75, 402.85]], [[627.75, 150.9], [717.65, 5.45], [736.95, 13.45], [629.75, 402.85]], [[717.65, 5.45], [706.05, -27.4], [736.95, 13.45]], [[706.05, -27.4], [686.7, -65.05], [764.45, -8.6], [758.25, 33.95], [736.95, 13.45]], [[764.45, -8.6], [686.7, -65.05], [729, -57.5], [764, -45.5], [801.2, -27.4], [801.05, -26.55]], [[758.5, -87.35], [764, -45.5], [729, -57.5]]]); CreateBody("kingCrown2", "Polygon", 0, defaultFriction, defaultRestitution, [[[686.25, 10.5], [706.05, -27.4], [717.65, 5.45]], [[516.8, 68.9], [505.8, 112.95], [468.85, 119.45]], [[505.8, 112.95], [509.8, 180.9], [448.35, 138.9], [468.85, 119.45]], [[509.8, 180.9], [533.8, 212.9], [386.35, 173.9], [448.35, 138.9]], [[386.35, 173.9], [533.8, 212.9], [373, 176.4]], [[373, 176.4], [533.8, 212.9], [352.35, 176.4]], [[352.35, 176.4], [533.8, 212.9], [143.95, 188.9], [171.95, 158.9], [337.1, 174.2]], [[273.5, -120.6], [248.6, -134.35], [235.5, -238.15], [253.95, -198.4], [266.4, -162.65]], [[296.45, -192.45], [266.4, -162.65], [253.95, -198.4]], [[248.6, -134.35], [273.4, 78.95], [222.25, -133.95], [217, -197.85], [235.5, -238.15]], [[175.1, -192.05], [217, -197.85], [205.15, -162.9]], [[205.15, -162.9], [217, -197.85], [222.25, -133.95], [197.8, -120.65]], [[222.25, -133.95], [273.4, 78.95], [203.9, 86.95]], [[273.4, 78.95], [290.9, 127.95], [203.9, 86.95]], [[290.9, 127.95], [305.1, 152.05], [203.9, 86.95]], [[305.1, 152.05], [321.9, 167.4], [171.95, 158.9], [203.9, 86.95]], [[321.9, 167.4], [337.1, 174.2], [171.95, 158.9]], [[143.95, 188.9], [533.8, 212.9], [-58, 224.9], [-33.3, 205.4], [113.95, 190.9]], [[18.3, 39.4], [-10.15, 29.25], [5.75, -1.4]], [[-10.15, 29.25], [-10.3, 29.3], [-47.9, -29.8], [-34.85, -69.95], [-11.3, -35.2], [5.75, -1.4]], [[31.65, -34.9], [5.75, -1.4], [-11.3, -35.2]], [[-10.3, 29.3], [34, 120.95], [-33.3, 32.95], [-47.9, -29.8]], [[-88.65, -18.6], [-47.9, -29.8], [-55.05, 6.4]], [[-55.05, 6.4], [-47.9, -29.8], [-33.35, 32.9], [-56.75, 49.3]], [[-33.35, 32.9], [-47.9, -29.8], [-33.3, 32.95]], [[-33.3, 32.95], [34, 120.95], [-33.3, 205.4]], [[34, 120.95], [81.95, 176.9], [-33.3, 205.4]], [[81.95, 176.9], [113.95, 190.9], [-33.3, 205.4]], [[533.8, 212.9], [571.8, 212.9], [629.75, 402.85], [-135.95, 402.85], [-58, 224.9]], [[-205.45, 10.5], [-237.6, 5.3], [-225.25, -27.4]], [[-237.6, 5.3], [-238.15, 5.7], [-283.2, -45.5], [-277.7, -87.35], [-248.2, -57.5], [-225.25, -27.4]], [[-205.9, -65.05], [-225.25, -27.4], [-248.2, -57.5]], [[-238.15, 5.7], [-108.55, 188.9], [-257.95, 14.15], [-283.2, -45.5]], [[-321.25, -27], [-283.2, -45.5], [-283.65, -8.6]], [[-283.65, -8.6], [-283.2, -45.5], [-258, 14.1], [-277.45, 33.95]], [[-258, 14.1], [-283.2, -45.5], [-257.95, 14.15]], [[-257.95, 14.15], [-108.55, 188.9], [-135.95, 402.85]], [[-108.55, 188.9], [-83.95, 216.9], [-135.95, 402.85]], [[-83.95, 216.9], [-58, 224.9], [-135.95, 402.85]], [[571.8, 212.9], [627.75, 150.9], [629.75, 402.85]], [[627.75, 150.9], [717.65, 5.45], [736.95, 13.45], [629.75, 402.85]], [[717.65, 5.45], [706.05, -27.4], [736.95, 13.45]], [[706.05, -27.4], [686.7, -65.05], [764.45, -8.6], [758.25, 33.95], [736.95, 13.45]], [[764.45, -8.6], [686.7, -65.05], [729, -57.5], [764, -45.5], [801.2, -27.4], [801.05, -26.55]], [[758.5, -87.35], [764, -45.5], [729, -57.5]]]); jumpPlatform1Body = CreateBody("jumpPlatform1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); killStarPartBody = CreateBody("killStarPart", "Polygon", 0, defaultFriction, defaultRestitution, [[[-0.3, -19], [18.5, 18.5], [-18.45, 19.05]]]); starBody = CreateBody("star", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[6.35, -59.65], [19.4, -19.5], [-17.2, -24.9]], [[-17.2, -24.9], [19.4, -19.5], [-34.25, 8.9], [-60.15, -24.6]], [[-34.25, 8.9], [19.4, -19.5], [-4.55, 34.9], [-46.8, 49.7]], [[-4.55, 34.9], [19.4, -19.5], [26.55, 16.7], [28.25, 59.6], [4.3, 42.2]], [[60.15, -8.3], [26.55, 16.7], [19.4, -19.5]]]); movePlatform1Body = CreateBody("movePlatform1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-40, 5], [-40, -5], [40, -5], [40, 5]]]); movePlatform2Body = CreateBody("movePlatform2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-40, 5], [-40, -5], [40, -5], [40, 5]]]); _local2 = new b2PrismaticJointDef(); _local3 = new b2RevoluteJointDef(); _local2.Initialize(jumpPlatform1Body, m_ground, jumpPlatform1Body.GetWorldCenter(), new b2Vec2(0, 1)); _local2.lowerTranslation = 0; _local2.upperTranslation = 1; _local2.enableLimit = true; _local2.maxMotorForce = 0; _local2.motorSpeed = 200; _local2.enableMotor = true; jumpPlatform1Joint = (m_world.CreateJoint(_local2) as b2PrismaticJoint); _local2.Initialize(movePlatform1Body, m_ground, movePlatform1Body.GetWorldCenter(), new b2Vec2(1, 0)); _local2.enableLimit = false; _local2.enableMotor = false; m_world.CreateJoint(_local2); movePlatform1BodyDirection = 1; _local2.Initialize(movePlatform2Body, m_ground, movePlatform2Body.GetWorldCenter(), new b2Vec2(0, 1)); _local2.enableLimit = false; _local2.enableMotor = false; m_world.CreateJoint(_local2); movePlatform1BodyDirection = -1; _local3.Initialize(starBody, _local1, starBody.GetPosition()); m_world.CreateJoint(_local3); } private function jumpPlatformSoundCompleteHandler(_arg1:Event):void{ jumpPlatformSoundChannel = null; } function kingClickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.king.com/game/"), "_blank"); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((playerBox.y > 960)) || (!((myContactListener.playerContactBodies.indexOf(killStarPartBody) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (myContactListener.playerContactBodies.indexOf(jumpPlatform1Body) != -1){ jumpPlatform1Joint.SetMaxMotorForce(150); if (((Game.soundIs) && (!(jumpPlatformSoundChannel)))){ jumpPlatformSoundChannel = jumpPlatformSound.play(0, 1); jumpPlatformSoundChannel.addEventListener(Event.SOUND_COMPLETE, jumpPlatformSoundCompleteHandler); }; } else { jumpPlatform1Joint.SetMaxMotorForce(0); }; starBody.SetAngularVelocity(-1); if (movePlatform1.x < 903){ movePlatform1BodyDirection = 1; }; if (movePlatform1.x > 1123){ movePlatform1BodyDirection = -1; }; movePlatform1Body.SetLinearVelocity(new b2Vec2((3 * movePlatform1BodyDirection), 0)); if (movePlatform2.y < 272){ movePlatform2BodyDirection = 1; }; if (movePlatform2.y > 430){ movePlatform2BodyDirection = -1; }; movePlatform2Body.SetLinearVelocity(new b2Vec2(0, (3 * movePlatform2BodyDirection))); } } }//package Levels
Section 103
//Level_2 (Levels.Level_2) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_2 extends Level { public var firstPlatform:MovieClip; public var checkPoint1:MovieClip; public var jump1:MovieClip; public var triangleBarier:MovieClip; public var checkPoint0:MovieClip; public var ballPlatform:MovieClip; public var platformTriangle:MovieClip; public var levelAim:MovieClip; public var kickBall:MovieClip; private var movePlatformBody:b2Body; public var movePlatform:MovieClip; public var exitPlatform:MovieClip; public var backGroundMC:MovieClip; private var movePlatformBodyDirection:int; public function Level_2(){ id = 2; CreateBody("firstPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[166, 0], [166, 20], [0, 20], [0, 0]]]); CreateBody("platformTriangle", "Polygon", 0, defaultFriction, defaultRestitution, [[[166, 0], [166, 20], [0, 20], [0, 0]]]); CreateBody("triangleBarier", "Polygon", 0, defaultFriction, defaultRestitution, [[[68, 67], [0, 67], [68, 15]]]); CreateBody("ballPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[166, 0], [166, 20], [0, 20], [0, 0]]]); var _local1:b2Body = CreateBody("kickBall", "Circle", (3 * defaultDensity), defaultFriction, defaultRestitution, [54]); CreateBody("jump1", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); movePlatformBody = CreateBody("movePlatform", "Polygon", defaultDensity, (3 * defaultFriction), defaultRestitution, [[[40, -5], [40, 5], [-40, 5], [-40, -5]]]); CreateBody("exitPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[166, 0], [166, 20], [0, 20], [0, 0]]]); var _local2:b2DistanceJointDef = new b2DistanceJointDef(); var _local3:b2PrismaticJointDef = new b2PrismaticJointDef(); var _local4:b2MouseJointDef = new b2MouseJointDef(); _local2.Initialize(_local1, m_ground, new b2Vec2((148 / m_physScale), (305 / m_physScale)), new b2Vec2((87 / m_physScale), (209 / m_physScale))); m_world.CreateJoint(_local2); _local3.Initialize(movePlatformBody, m_ground, movePlatformBody.GetWorldCenter(), new b2Vec2(1, 0)); _local3.enableLimit = false; _local3.enableMotor = false; movePlatformBodyDirection = 1; m_world.CreateJoint(_local3); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if (playerBox.y > 550){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (movePlatform.x < 390){ movePlatformBodyDirection = 1; }; if (movePlatform.x > 550){ movePlatformBodyDirection = -1; }; movePlatformBody.SetLinearVelocity(new b2Vec2((2 * movePlatformBodyDirection), 0)); } } }//package Levels
Section 104
//Level_3 (Levels.Level_3) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_3 extends Level { public var shipPlatform1:MovieClip; public var firstPlatform:MovieClip; public var checkPoint0:MovieClip; public var shipPlatform2:MovieClip; public var movePlatform1:MovieClip; public var movePlatform2:MovieClip; private var movePlatform1Body:b2Body; private var movePlatform2Body:b2Body; public var checkPoint1:MovieClip; public var levelAim:MovieClip; public var backGroundMC:MovieClip; private var movePlatform1BodyDirection:int; public var exitPlatform:MovieClip; public var ship1:Ships10; public var ship2:Ships10; public var ship3:Ships10; private var movePlatform2BodyDirection:int; public function Level_3(){ id = 3; CreateBody("firstPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[150, 0], [150, 20], [0, 20], [0, 0]]]); CreateBody("shipPlatform1", "Polygon", 0, defaultFriction, defaultRestitution, [[[250, 0], [250, 20], [0, 20], [0, 0]]]); CreateBody("shipPlatform2", "Polygon", 0, defaultFriction, defaultRestitution, [[[250, 0], [250, 20], [0, 20], [0, 0]]]); movePlatform1Body = CreateBody("movePlatform1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[150, 0], [150, 10], [0, 10], [0, 0]]]); movePlatform2Body = CreateBody("movePlatform2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[150, 0], [150, 10], [0, 10], [0, 0]]]); CreateBody("exitPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[450, 0], [450, 20], [0, 20], [0, 0]]]); var _local1:b2PrismaticJointDef = new b2PrismaticJointDef(); _local1.Initialize(movePlatform1Body, m_ground, movePlatform1Body.GetWorldCenter(), new b2Vec2(0, 1)); _local1.enableLimit = false; _local1.enableMotor = false; m_world.CreateJoint(_local1); movePlatform1BodyDirection = 1; _local1.Initialize(movePlatform2Body, m_ground, movePlatform2Body.GetWorldCenter(), new b2Vec2(0, 1)); _local1.enableLimit = false; _local1.enableMotor = false; m_world.CreateJoint(_local1); movePlatform2BodyDirection = 1; } override public function Update(_arg1:Event):void{ super.Update(_arg1); if (playerBox.y > 650){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (movePlatform1.y < 270){ movePlatform1BodyDirection = 1; }; if (movePlatform1.y > 425){ movePlatform1BodyDirection = -1; }; movePlatform1Body.SetLinearVelocity(new b2Vec2(0, (3 * movePlatform1BodyDirection))); if (movePlatform2.y < 116){ movePlatform2BodyDirection = 1; }; if (movePlatform2.y > 271){ movePlatform2BodyDirection = -1; }; movePlatform2Body.SetLinearVelocity(new b2Vec2(0, (3 * movePlatform2BodyDirection))); } } }//package Levels
Section 105
//Level_4 (Levels.Level_4) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_4 extends Level { public var dropPlatform:MovieClip; public var axePlatform:MovieClip; private var killBoom1Up:Boolean; private var killBoom3Up:Boolean; private var axe2Body:b2Body; public var levelAim:MovieClip; private var killBoom1Body:b2Body; private var killBoom2Body:b2Body; private var axe1Body:b2Body; private var killBoom3Body:b2Body; public var secondFloor1:MovieClip; public var secondFloor2:MovieClip; public var secondFloor3:MovieClip; public var firstFloor:MovieClip; private var dropPlatformBody:b2Body; public var checkPoint0:MovieClip; public var checkPoint1:MovieClip; public var mainPlatform:MovieClip; public var step:MovieClip; public var axe1:MovieClip; public var axe2:MovieClip; public var killBoom1:MovieClip; public var killBoom2:MovieClip; public var killBoom3:MovieClip; public var backGroundMC:MovieClip; private var killBoom2Up:Boolean; public function Level_4(){ var _local2:b2RevoluteJointDef; super(); id = 4; CreateBody("mainPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[810, 0], [810, 20], [0, 20], [0, 0]]]); CreateBody("firstFloor", "Polygon", 0, defaultFriction, defaultRestitution, [[[200, 0], [200, 20], [0, 20], [0, 0]]]); CreateBody("secondFloor1", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); CreateBody("secondFloor2", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); CreateBody("secondFloor3", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); CreateBody("step", "Polygon", 0, defaultFriction, defaultRestitution, [[[117, -10], [202, -10], [117, 12]], [[92, 12], [117, 12], [92, 34]], [[117, 12], [202, -10], [150, 16], [92, 34]], [[70, 34], [92, 34], [150, 122], [70, 57]], [[45, 57], [70, 57], [45, 76]], [[24, 76], [45, 76], [24, 99]], [[45, 76], [70, 57], [24, 99]], [[0, 99], [24, 99], [0, 122]], [[24, 99], [70, 57], [150, 122], [0, 122]], [[150, 122], [92, 34], [150, 16]], [[202, 16], [150, 16], [202, -10]]]); dropPlatformBody = CreateBody("dropPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[130, 0], [130, 10], [0, 10], [0, 0]]]); CreateBody("axePlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[850, 0], [850, 20], [0, 20], [0, 0]]]); killBoom1Body = CreateBody("killBoom1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[19.5, -267.5], [19.5, -31.5], [-19.5, -31.5], [-19.5, -267.5]], [[-19.5, -31.5], [19.5, -31.5], [50.5, 0.5], [-47.5, 0.5]]]); killBoom2Body = CreateBody("killBoom2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[19.5, -267.5], [19.5, -31.5], [-19.5, -31.5], [-19.5, -267.5]], [[-19.5, -31.5], [19.5, -31.5], [50.5, 0.5], [-47.5, 0.5]]]); killBoom3Body = CreateBody("killBoom3", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[19.5, -267.5], [19.5, -31.5], [-19.5, -31.5], [-19.5, -267.5]], [[-19.5, -31.5], [19.5, -31.5], [50.5, 0.5], [-47.5, 0.5]]]); axe1Body = CreateBody("axe1", "Polygon", (2 * defaultDensity), defaultFriction, defaultRestitution, [[[25.5, -1.5], [40.5, -1.5], [40.5, 113.5], [25.5, 113.5]], [[0.5, 116.5], [25.5, 113.5], [40.5, 113.5], [67.5, 116.5], [67.5, 175.5], [0.5, 175.5]]]); axe2Body = CreateBody("axe2", "Polygon", (2 * defaultDensity), defaultFriction, defaultRestitution, [[[25.5, -1.5], [40.5, -1.5], [40.5, 113.5], [25.5, 113.5]], [[0.5, 116.5], [25.5, 113.5], [40.5, 113.5], [67.5, 116.5], [67.5, 175.5], [0.5, 175.5]]]); var _local1:b2PrismaticJointDef = new b2PrismaticJointDef(); _local2 = new b2RevoluteJointDef(); _local1.Initialize(killBoom1Body, m_ground, killBoom1Body.GetWorldCenter(), new b2Vec2(0, 1)); _local1.enableLimit = false; _local1.enableMotor = false; m_world.CreateJoint(_local1); killBoom1Up = true; _local1.Initialize(killBoom2Body, m_ground, killBoom2Body.GetWorldCenter(), new b2Vec2(0, 1)); _local1.enableLimit = false; _local1.enableMotor = false; m_world.CreateJoint(_local1); killBoom1Up = true; _local1.Initialize(killBoom3Body, m_ground, killBoom3Body.GetWorldCenter(), new b2Vec2(0, 1)); _local1.enableLimit = false; _local1.enableMotor = false; m_world.CreateJoint(_local1); killBoom1Up = true; _local2.Initialize(axe1Body, m_ground, new b2Vec2((785 / m_physScale), (127 / m_physScale))); m_world.CreateJoint(_local2); _local2.Initialize(axe2Body, m_ground, new b2Vec2((1077 / m_physScale), (127 / m_physScale))); m_world.CreateJoint(_local2); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((((((((((playerBox.y > 650)) || (!((myContactListener.playerContactBodies.indexOf(killBoom1Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killBoom2Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killBoom3Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(axe1Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(axe2Body) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (myContactListener.playerContactBodies.indexOf(dropPlatformBody) != -1){ m_world.DestroyBody(dropPlatformBody); dropPlatformBody = CreateBody("dropPlatform", "Polygon", (3 * defaultDensity), defaultFriction, defaultRestitution, [[[130, 0], [130, 10], [0, 10], [0, 0]]]); }; if (killBoom1.y > 436){ killBoom1Up = true; }; if (killBoom1.y < 327){ killBoom1Up = false; }; if (killBoom1Up){ killBoom1Body.SetLinearVelocity(new b2Vec2(0, -2)); }; if (killBoom2.y > 436){ killBoom2Up = true; }; if (killBoom2.y < 327){ killBoom2Up = false; }; if (killBoom2Up){ killBoom2Body.SetLinearVelocity(new b2Vec2(0, -2)); }; if (killBoom3.y > 436){ killBoom3Up = true; }; if (killBoom3.y < 327){ killBoom3Up = false; }; if (killBoom3Up){ killBoom3Body.SetLinearVelocity(new b2Vec2(0, -2)); }; } } }//package Levels
Section 106
//Level_5 (Levels.Level_5) package Levels { import flash.events.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_5 extends Level { public var jumpPlatform:MovieClip; public var firstPlatform:MovieClip; public var greenCheck:MovieClip; public var checkPoint0:MovieClip; public var mainPlatform:MovieClip; public var blueCheck:MovieClip; public var littleBall:MovieClip; public var greenPlatform:MovieClip; public var blueBarier:MovieClip; public var bigBall:MovieClip; public var levelAim:MovieClip; public var backGroundMC:MovieClip; public var rightBarier:MovieClip; private var greenPlatformBody:b2Body; private var blueBarierBody:b2Body; public function Level_5(){ id = 5; CreateBody("firstPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[298.45, 0], [298.45, 0.3], [0, 20], [0, 0]], [[298.45, 0.3], [300, 0.3], [300, 20], [0, 20]]]); blueBarierBody = CreateBody("blueBarier", "Polygon", 0, defaultFriction, defaultRestitution, [[[0, 0], [10, 0], [10, 100], [0, 100]]]); CreateBody("mainPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[594.9, 0], [594.9, 136], [0, 136], [0, 116], [195.95, 0]]]); CreateBody("rightBarier", "Polygon", 0, defaultFriction, defaultRestitution, [[[0, 0], [30, 0], [1.05, 251], [0, 251]], [[1.05, 251], [30, 0], [30, 251.95], [1.05, 251.95]]]); CreateBody("jumpPlatform", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[226.95, 0], [226.95, 7], [0, 7], [0, 0]]]); greenPlatformBody = CreateBody("greenPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[85, 0], [85, 15], [0, 15], [0, 0]]]); CreateBody("littleBall", "Circle", defaultDensity, defaultFriction, defaultRestitution, [13]); CreateBody("bigBall", "Circle", (2 * defaultDensity), defaultFriction, defaultRestitution, [83.5]); blueCheck.stop(); greenCheck.stop(); } private function checkBoxSoundCompleteHandler(_arg1:Event):void{ checkBoxSoundChannel = null; } override public function Update(_arg1:Event):void{ super.Update(_arg1); if (playerBox.y > 650){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (((playerBox.hitTestObject(blueCheck)) && ((blueCheck.currentFrame == 1)))){ blueCheck.gotoAndStop(2); DestroyBody(blueBarierBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; if (((playerBox.hitTestObject(greenCheck)) && ((greenCheck.currentFrame == 1)))){ greenCheck.gotoAndStop(2); DestroyBody(greenPlatformBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.soundTransform = transformCheckBoxSound; checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; } } }//package Levels
Section 107
//Level_6 (Levels.Level_6) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_6 extends Level { public var rampa2:MovieClip; private var drop2Body:b2Body; public var checkPoint1:MovieClip; public var checkPoint0:MovieClip; public var spin:MovieClip; private var drop3Body:b2Body; public var rampa:MovieClip; private var blueBarierBody:b2Body; public var levelAim:MovieClip; public var drop1:MovieClip; public var drop2:MovieClip; public var drop3:MovieClip; public var finishPlatform:MovieClip; private var greenPlatformBody:b2Body; public var backBall1:MovieClip; public var backBall2:MovieClip; public var backBall3:MovieClip; public var beforeBackBalls:MovieClip; public var afterJump:MovieClip; public var backGroundMC:MovieClip; public var voronkaLeft:MovieClip; private var drop1Body:b2Body; public var voronkaRight:MovieClip; public function Level_6(){ var _local3:b2Body; var _local4:b2Body; super(); id = 6; CreateBody("rampa", "Polygon", 0, defaultFriction, defaultRestitution, [[[66.9, 0], [66.9, 22.15], [0, 0]], [[66.9, 22.15], [69.8, 47.2], [0, 0]], [[69.8, 47.2], [72.9, 68.15], [0, 0]], [[72.9, 68.15], [77.9, 90.15], [0, 0]], [[77.9, 90.15], [83.9, 108.15], [0, 0]], [[83.9, 108.15], [92.9, 127.15], [0, 0]], [[92.9, 127.15], [103.9, 146.15], [0, 0]], [[103.9, 146.15], [114.9, 162.15], [0, 261.1], [0, 0]], [[114.9, 162.15], [127.9, 174.15], [0, 261.1]], [[127.9, 174.15], [146.35, 187.35], [0, 261.1]], [[146.35, 187.35], [165.9, 194.65], [0, 261.1]], [[165.9, 194.65], [183.4, 197.65], [279.9, 261.1], [0, 261.1]], [[279.9, 138.15], [279.9, 261.1], [271.9, 155.65]], [[271.9, 155.65], [279.9, 261.1], [261.9, 171.65]], [[261.9, 171.65], [279.9, 261.1], [250.4, 183.65]], [[250.4, 183.65], [279.9, 261.1], [234.9, 194.15]], [[234.9, 194.15], [279.9, 261.1], [218.9, 198.15]], [[218.9, 198.15], [279.9, 261.1], [200.4, 198.65]], [[200.4, 198.65], [279.9, 261.1], [183.4, 197.65]]]); CreateBody("afterJump", "Polygon", 0, defaultFriction, defaultRestitution, [[[182, 0], [182, 20], [0, 20], [0, 0]]]); drop1Body = CreateBody("drop1", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); drop2Body = CreateBody("drop2", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); drop3Body = CreateBody("drop3", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); var _local1:b2Body = CreateBody("spin", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[60.55, -65.5], [67.75, -58.6], [26.3, -30.2]], [[5, -89.5], [5, -39.75], [-5, -39.75], [-5, -89.5]], [[5, -39.75], [26.3, -30.2], [-24.35, -31.4], [-24.6, -31.65], [-5, -39.75]], [[-24.6, -31.65], [-24.35, -31.4], [-31.7, -24.5], [-67.9, -57.8], [-61.1, -65.2]], [[-24.35, -31.4], [26.3, -30.2], [-31.45, 24.8], [-39.8, 4.3], [-39.65, -5.7], [-31.7, -24.5]], [[-88.95, -6.1], [-39.65, -5.7], [-39.8, 4.3], [-89.05, 3.9]], [[26.3, -30.2], [67.75, -58.6], [32.8, -23], [-24.65, 31.55], [-66.7, 60.1], [-31.45, 24.8]], [[-31.7, 24.55], [-31.45, 24.8], [-66.7, 60.1]], [[-59.6, 67.1], [-66.7, 60.1], [-24.65, 31.55]], [[-4.2, 39.8], [-24.65, 31.55], [-4.2, 39.4]], [[-4.85, 89.4], [-4.2, 39.8], [5.15, 89.5]], [[-4.2, 39.8], [-4.2, 39.4], [5.8, 39.6], [5.15, 89.5]], [[-4.2, 39.4], [-24.65, 31.55], [32.4, 23], [32.65, 23.2], [26.15, 30.3], [5.8, 39.6]], [[25.9, 30.6], [26.15, 30.3], [32.65, 23.2], [70.2, 55.6], [63.7, 63.2]], [[32.65, 23.2], [32.4, 23], [39.75, 4.45]], [[32.4, 23], [-24.65, 31.55], [32.8, -23], [39.65, -5.55], [39.75, 4.45]], [[89.05, 4], [39.75, 4.45], [39.65, -5.55], [88.95, -6]], [[33, -22.8], [32.8, -23], [67.75, -58.6]]]); CreateBody("voronkaLeft", "Polygon", 0, 0, defaultRestitution, [[[0, 284.45], [105.5, 224], [107.5, 227], [1.5, 288]], [[105.5, 224], [112.5, 216.5], [115.5, 219], [107.5, 227]], [[112.5, 216.5], [115.5, 208], [115.5, 219]], [[115.5, 208], [115.5, 68.5], [115.5, 219]], [[115.5, 219], [115.5, 68.5], [119.5, 67.5], [119.5, 208]], [[115.5, 68.5], [88.5, 34.5], [92.5, 32], [119.5, 67.5]], [[88.5, 34.5], [83.5, 0], [88, 0], [92.5, 32]]]); CreateBody("voronkaRight", "Polygon", 0, 0, defaultRestitution, [[[0, 306.2], [105.5, 245.75], [107.5, 248.75], [1.5, 309.75]], [[105.5, 245.75], [113.65, 240.2], [107.5, 248.75]], [[113.65, 240.2], [120.4, 233.95], [115.4, 243.2], [107.5, 248.75]], [[120.4, 233.95], [124.9, 226.45], [123.4, 235.7], [115.4, 243.2]], [[124.9, 226.45], [128.65, 216.95], [127.9, 227.45], [123.4, 235.7]], [[128.65, 216.95], [130.25, 207.95], [131.9, 218.2], [127.9, 227.45]], [[130.25, 207.95], [130.25, 67.5], [134.25, 68.5], [134.25, 207.95], [133.4, 212.95], [131.9, 218.2]], [[130.25, 67.5], [157.25, 32], [161.25, 34.5], [134.25, 68.5]], [[157.25, 32], [161.75, 0], [166.25, 0], [161.25, 34.5]]]); CreateBody("rampa2", "Polygon", 0, defaultFriction, defaultRestitution, [[[129.9, 0], [129.9, 26.4], [58.9, 26.4], [0, 0]], [[279.9, 191.15], [279.9, 284.1], [271.9, 208.65]], [[271.9, 208.65], [279.9, 284.1], [261.9, 224.65]], [[261.9, 224.65], [279.9, 284.1], [250.4, 236.65]], [[250.4, 236.65], [279.9, 284.1], [234.9, 247.15]], [[234.9, 247.15], [279.9, 284.1], [218.9, 251.15]], [[279.9, 284.1], [0, 284.1], [200.4, 251.65], [218.9, 251.15]], [[200.4, 251.65], [0, 284.1], [183.4, 250.65]], [[183.4, 250.65], [0, 284.1], [165.9, 247.65]], [[165.9, 247.65], [0, 284.1], [146.35, 240.35]], [[146.35, 240.35], [0, 284.1], [127.9, 227.15]], [[127.9, 227.15], [0, 284.1], [114.9, 215.15]], [[114.9, 215.15], [0, 284.1], [103.9, 199.15]], [[103.9, 199.15], [0, 284.1], [92.9, 180.15]], [[0, 284.1], [0, 0], [83.9, 161.15], [92.9, 180.15]], [[83.9, 161.15], [0, 0], [77.9, 143.15]], [[77.9, 143.15], [0, 0], [72.9, 121.15]], [[72.9, 121.15], [0, 0], [58.9, 26.4]]]); CreateBody("beforeBackBalls", "Polygon", 0, defaultFriction, defaultRestitution, [[[182, 0], [182, 20], [0, 20], [0, 0]]]); var _local2:b2Body = CreateBody("backBall1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[14.75, -16.85], [18.5, -12.7], [22.25, -3.1], [22.35, 2.5], [18.3, 13], [14.65, 16.95], [3.25, 22.15], [-2.4, 22.25], [-13.85, 17.7], [-17.65, 13.9], [-22.35, 2.4], [-22.25, -3.15], [-17.8, -13.65], [-13.8, -17.65], [-2.85, -22.15], [2.8, -22.15]], [[2.8, -50], [2.8, -22.15], [-2.85, -22.15], [-2.85, -50]], [[-49.95, -3.4], [-22.25, -3.15], [-22.35, 2.4], [-50, 2.2]], [[-2.75, 49.95], [-2.4, 22.25], [3.25, 22.15], [2.85, 50]], [[50, 2.25], [22.35, 2.5], [22.25, -3.1], [49.9, -3.35]]]); _local3 = CreateBody("backBall2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[14.75, -16.85], [18.5, -12.7], [22.25, -3.1], [22.35, 2.5], [18.3, 13], [14.65, 16.95], [3.25, 22.15], [-2.4, 22.25], [-13.85, 17.7], [-17.65, 13.9], [-22.35, 2.4], [-22.25, -3.15], [-17.8, -13.65], [-13.8, -17.65], [-2.85, -22.15], [2.8, -22.15]], [[2.8, -50], [2.8, -22.15], [-2.85, -22.15], [-2.85, -50]], [[-49.95, -3.4], [-22.25, -3.15], [-22.35, 2.4], [-50, 2.2]], [[-2.75, 49.95], [-2.4, 22.25], [3.25, 22.15], [2.85, 50]], [[50, 2.25], [22.35, 2.5], [22.25, -3.1], [49.9, -3.35]]]); _local4 = CreateBody("backBall3", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[14.75, -16.85], [18.5, -12.7], [22.25, -3.1], [22.35, 2.5], [18.3, 13], [14.65, 16.95], [3.25, 22.15], [-2.4, 22.25], [-13.85, 17.7], [-17.65, 13.9], [-22.35, 2.4], [-22.25, -3.15], [-17.8, -13.65], [-13.8, -17.65], [-2.85, -22.15], [2.8, -22.15]], [[2.8, -50], [2.8, -22.15], [-2.85, -22.15], [-2.85, -50]], [[-49.95, -3.4], [-22.25, -3.15], [-22.35, 2.4], [-50, 2.2]], [[-2.75, 49.95], [-2.4, 22.25], [3.25, 22.15], [2.85, 50]], [[50, 2.25], [22.35, 2.5], [22.25, -3.1], [49.9, -3.35]]]); CreateBody("finishPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); var _local5:b2RevoluteJointDef = new b2RevoluteJointDef(); _local5.Initialize(_local1, m_ground, new b2Vec2((722 / m_physScale), (323 / m_physScale))); _local5.motorSpeed = (0.3 * -(Math.PI)); _local5.maxMotorTorque = 5000; _local5.enableMotor = true; m_world.CreateJoint(_local5); _local5.Initialize(_local2, m_ground, _local2.GetPosition()); _local5.motorSpeed = (0.2 * Math.PI); _local5.maxMotorTorque = 5000; _local5.enableMotor = true; m_world.CreateJoint(_local5); _local5.Initialize(_local3, m_ground, _local3.GetPosition()); _local5.motorSpeed = (0.2 * Math.PI); _local5.maxMotorTorque = 5000; _local5.enableMotor = true; m_world.CreateJoint(_local5); _local5.Initialize(_local4, m_ground, _local4.GetPosition()); _local5.motorSpeed = (0.2 * Math.PI); _local5.maxMotorTorque = 5000; _local5.enableMotor = true; m_world.CreateJoint(_local5); } override public function Update(_arg1:Event):void{ super.Update(_arg1); if (playerBox.y > 1060){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (myContactListener.playerContactBodies.indexOf(drop1Body) != -1){ m_world.DestroyBody(drop1Body); drop1Body = CreateBody("drop1", "Polygon", (3 * defaultDensity), defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); }; if (myContactListener.playerContactBodies.indexOf(drop2Body) != -1){ m_world.DestroyBody(drop2Body); drop2Body = CreateBody("drop2", "Polygon", (3 * defaultDensity), defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); }; if (myContactListener.playerContactBodies.indexOf(drop3Body) != -1){ m_world.DestroyBody(drop3Body); drop3Body = CreateBody("drop3", "Polygon", (3 * defaultDensity), defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); }; } } }//package Levels
Section 108
//Level_7 (Levels.Level_7) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_7 extends Level { public var triangle:MovieClip; private var starBody:b2Body; public var vanna:MovieClip; private var movePlatform2Body:b2Body; public var levelAim:MovieClip; public var box11:MovieClip; public var box12:MovieClip; public var box13:MovieClip; public var box15:MovieClip; public var box16:MovieClip; public var box17:MovieClip; public var box18:MovieClip; private var bluePlatformBody:b2Body; public var box14:MovieClip; public var firstPlatform:MovieClip; public var box10:MovieClip; public var movePlatform1:MovieClip; public var movePlatform2:MovieClip; private var movePlatform2BodyDirection:int; public var star:MovieClip; public var potolok:MovieClip; private var jumpPlatform1Body:b2Body; private var redWallBody:b2Body; public var backGroundMC:MovieClip; public var endPlatform:MovieClip; private var jumpPlatform2Joint:b2PrismaticJoint; public var bigMovePlatform:MovieClip; private var movePlatform1Body:b2Body; public var jumpPlatform2:MovieClip; public var bigPlatform:MovieClip; public var shipik2:Ships10; public var shipik3:Ships10; public var shipik4:Ships10; public var kill3:Ships10; public var shipik5:Ships10; public var jumpPlatform1:MovieClip; public var shipik1:Ships10; public var kill4:Ships10; public var kill1:Ships10; public var kill2:Ships10; private var movePlatform1BodyDirection:int; public var box1:MovieClip; public var box2:MovieClip; public var box3:MovieClip; public var checkPoint1:MovieClip; public var box5:MovieClip; public var box6:MovieClip; public var box7:MovieClip; public var box8:MovieClip; public var box9:MovieClip; public var checkPoint0:MovieClip; public var box4:MovieClip; public var checkPoint2:MovieClip; private var jumpPlatform2Body:b2Body; public var blueCheck:MovieClip; private var jumpPlatform1Joint:b2PrismaticJoint; public var bluePlatform:MovieClip; public var redCheck:MovieClip; public var redWall:MovieClip; public static var redCheckLevel:Boolean = false; public function Level_7(){ id = 7; CreateBody("firstPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[150, 0], [150, 20], [0, 20], [0, 0]]]); jumpPlatform1Body = CreateBody("jumpPlatform1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); CreateBody("bigPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[228.2, -82.45], [228.2, -59.45], [-264.8, -47.45], [-264.8, -82.45]], [[-264.8, -47.45], [228.2, -59.45], [-339.8, 11.55]], [[-441.75, 11.55], [-339.8, 11.55], [-527.75, 61.5]], [[-339.8, 11.55], [228.2, -59.45], [254.2, -59.45], [254.2, -36.45], [-527.75, 82.5], [-527.75, 61.5]], [[527.75, 29], [527.75, 82.5], [512.1, 42.5]], [[512.1, 42.5], [527.75, 82.5], [492.9, 51.2]], [[492.9, 51.2], [527.75, 82.5], [475.55, 53.2]], [[527.75, 82.5], [-527.75, 82.5], [457.5, 51.7], [475.55, 53.2]], [[457.5, 51.7], [-527.75, 82.5], [415.55, 41.25]], [[415.55, 41.25], [-527.75, 82.5], [309.2, 8.55]], [[309.2, 8.55], [-527.75, 82.5], [280.2, -14.45], [309.2, -14.45]], [[280.2, -14.45], [-527.75, 82.5], [254.2, -36.45], [280.2, -36.45]]]); var _local1 = CreateBody("potolok", "Polygon", 0, defaultFriction, defaultRestitution, [[[0x0101, -78], [0x0101, -19], [-200, 44], [-257, -10], [-257, -78]], [[-200, 44], [0x0101, -19], [205, 33], [-200, 78]], [[205, 78], [-200, 78], [205, 33]]]); CreateBody("triangle", "Polygon", 0, defaultFriction, defaultRestitution, [[[-375.95, -58], [-155.95, -36.75], [257.1, 31.15], [-373.9, 55]], [[404, 55], [-373.9, 55], [257.1, 31.15], [404, 31.2]], [[257.1, 31.15], [-155.95, -36.75], [112.1, -53.75]], [[112.1, -53.75], [-155.95, -36.75], [-0.4, -126.95]]]); movePlatform1Body = CreateBody("movePlatform1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[75, -5], [75, 5], [-75, 5], [-75, -5]]]); movePlatform2Body = CreateBody("movePlatform2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[75, -5], [75, 5], [-75, 5], [-75, -5]]]); jumpPlatform2Body = CreateBody("jumpPlatform2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[100, 0], [100, 20], [0, 20], [0, 0]]]); CreateBody("vanna", "Polygon", 0, defaultFriction, defaultRestitution, [[[415.5, -92.5], [415.5, -59.05], [194.55, 92.45], [164.55, 50.45], [234.55, -92.5]], [[-156.45, -89.5], [-63.45, 50.45], [-74.45, 92.45], [-415.45, -59.55], [-415.45, -89.5]], [[-63.45, 50.45], [164.55, 50.45], [194.55, 92.45], [-74.45, 92.45]]]); redWallBody = CreateBody("redWall", "Polygon", 0, defaultFriction, defaultRestitution, [[[1.5, -61.5], [1.5, 61.5], [-18.5, 61.5], [-18.5, -61.5]]]); if (redCheckLevel){ DestroyBody(redWallBody); }; var _local2:b2Body = CreateBody("bigMovePlatform", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-75, -5], [75, -5], [75, 5], [-75, 5]]]); CreateBody("endPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[150, 0], [150, 20], [0, 20], [0, 0]]]); var _local3 = 1; while (_local3 <= 18) { CreateBody(("box" + _local3.toString()), "Polygon", 0.3, defaultFriction, defaultRestitution, [[[10, -10], [10, 10], [-10, 10], [-10, -10]]]); _local3++; }; bluePlatformBody = CreateBody("bluePlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[140, 0], [140, 20], [0, 20], [0, 0]]]); starBody = CreateBody("star", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-0.25, 15], [2, 27.85], [-2.15, 27.95]], [[2, 27.85], [15, 29.75], [2.1, 32], [-2.05, 32.1], [-15, 30.2], [-2.15, 27.95]], [[0.2, 45], [-2.05, 32.1], [2.1, 32]]]); starBody.SetAngularVelocity(-4); var _local4:b2DistanceJointDef = new b2DistanceJointDef(); var _local5:b2PrismaticJointDef = new b2PrismaticJointDef(); _local4.Initialize(_local2, m_ground, new b2Vec2((3077 / m_physScale), (-190 / m_physScale)), new b2Vec2((3005 / m_physScale), (-305 / m_physScale))); m_world.CreateJoint(_local4); _local4.Initialize(_local2, m_ground, new b2Vec2((2944 / m_physScale), (-190 / m_physScale)), new b2Vec2((2873 / m_physScale), (-305 / m_physScale))); m_world.CreateJoint(_local4); _local4.Initialize(starBody, _local1, new b2Vec2((619 / m_physScale), (-51.5 / m_physScale)), new b2Vec2((552 / m_physScale), (-111 / m_physScale))); m_world.CreateJoint(_local4); _local5.Initialize(jumpPlatform1Body, m_ground, jumpPlatform1Body.GetWorldCenter(), new b2Vec2(0, 1)); _local5.lowerTranslation = 0; _local5.upperTranslation = 1; _local5.enableLimit = true; _local5.maxMotorForce = 0; _local5.motorSpeed = 200; _local5.enableMotor = true; jumpPlatform1Joint = (m_world.CreateJoint(_local5) as b2PrismaticJoint); _local5.Initialize(jumpPlatform2Body, m_ground, jumpPlatform2Body.GetWorldCenter(), new b2Vec2(0, 1)); _local5.lowerTranslation = 0; _local5.upperTranslation = 1; _local5.enableLimit = true; _local5.maxMotorForce = 0; _local5.motorSpeed = 200; _local5.enableMotor = true; jumpPlatform2Joint = (m_world.CreateJoint(_local5) as b2PrismaticJoint); _local5.Initialize(movePlatform1Body, m_ground, movePlatform1Body.GetWorldCenter(), new b2Vec2(0, 1)); _local5.enableLimit = false; _local5.enableMotor = false; m_world.CreateJoint(_local5); movePlatform1BodyDirection = 1; _local5.Initialize(movePlatform2Body, m_ground, movePlatform2Body.GetWorldCenter(), new b2Vec2(1, 0)); _local5.enableLimit = false; _local5.enableMotor = false; m_world.CreateJoint(_local5); movePlatform2BodyDirection = 1; redCheck.stop(); blueCheck.stop(); } private function checkBoxSoundCompleteHandler(_arg1:Event):void{ checkBoxSoundChannel = null; } private function jumpPlatformSoundCompleteHandler(_arg1:Event):void{ jumpPlatformSoundChannel = null; } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((playerBox.y > 500)) || (!((myContactListener.playerContactBodies.indexOf(starBody) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (myContactListener.playerContactBodies.indexOf(jumpPlatform1Body) != -1){ jumpPlatform1Joint.SetMaxMotorForce(150); if (((Game.soundIs) && (!(jumpPlatformSoundChannel)))){ jumpPlatformSoundChannel = jumpPlatformSound.play(0, 1); jumpPlatformSoundChannel.addEventListener(Event.SOUND_COMPLETE, jumpPlatformSoundCompleteHandler); }; } else { jumpPlatform1Joint.SetMaxMotorForce(0); }; if (myContactListener.playerContactBodies.indexOf(jumpPlatform2Body) != -1){ jumpPlatform2Joint.SetMaxMotorForce(170); if (((Game.soundIs) && (!(jumpPlatformSoundChannel)))){ jumpPlatformSoundChannel = jumpPlatformSound.play(0, 1); jumpPlatformSoundChannel.addEventListener(Event.SOUND_COMPLETE, jumpPlatformSoundCompleteHandler); }; } else { jumpPlatform2Joint.SetMaxMotorForce(0); }; if (movePlatform1.y < -30){ movePlatform1BodyDirection = 1; }; if (movePlatform1.y > 115){ movePlatform1BodyDirection = -1; }; movePlatform1Body.SetLinearVelocity(new b2Vec2(0, (3 * movePlatform1BodyDirection))); if (movePlatform2.x < 1495){ movePlatform2BodyDirection = 1; }; if (movePlatform2.x > 1645){ movePlatform2BodyDirection = -1; }; movePlatform2Body.SetLinearVelocity(new b2Vec2((3 * movePlatform2BodyDirection), 0)); if (((playerBox.hitTestObject(redCheck)) && ((redCheck.currentFrame == 1)))){ redCheck.gotoAndStop(2); DestroyBody(redWallBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.soundTransform = transformCheckBoxSound; checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; redCheckLevel = true; }; if (((playerBox.hitTestObject(blueCheck)) && ((blueCheck.currentFrame == 1)))){ blueCheck.gotoAndStop(2); DestroyBody(bluePlatformBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.soundTransform = transformCheckBoxSound; checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; } } }//package Levels
Section 109
//Level_8 (Levels.Level_8) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; import flash.media.*; public class Level_8 extends Level { public var killer1:MovieClip; public var killer2:MovieClip; public var killer3:MovieClip; private var killer2Up:Boolean; public var shipik1:Ships10; public var shipik2:Ships10; public var shipik3:Ships10; public var shipik4:Ships10; public var shipik5:Ships10; public var shipik6:Ships10; public var shipik9:Ships10; private var carBody:b2Body; public var shipik7:Ships10; public var shipik8:Ships10; private var carSound:Sound; public var potolok1:MovieClip; public var potolok2:MovieClip; public var potolok3:MovieClip; public var killSpusk2:MovieClip; public var potolok4:MovieClip; public var finishPlatform:MovieClip; public var levelAim:MovieClip; public var firstRampa:MovieClip; private var killer3Up:Boolean; public var checkPoint0:MovieClip; public var koleco2:MovieClip; public var pol:MovieClip; public var checkPoint1:MovieClip; private var killer3Body:b2Body; public var killSpusk:MovieClip; public var car:MovieClip; private var killer2Body:b2Body; private var killer1Up:Boolean; private var killSpuskBody:b2Body; public var koleco1:MovieClip; private var killSpusk2Body:b2Body; public var barier:MovieClip; public var backGroundMC:MovieClip; private var carSoundChannel:SoundChannel; private var killer1Body:b2Body; public var shipik10:Ships10; public var shipik11:Ships10; public function Level_8(){ carSound = new CarSound(); super(); id = 8; CreateBody("firstRampa", "Polygon", 0, defaultFriction, defaultRestitution, [[[217, 189], [247, 270], [84, 4], [102, 11], [115, 24], [127, 37], [145, 60], [174, 100], [197, 143]], [[247, 270], [288, 338.95], [0, 480.95], [0, 0], [68, 0], [84, 4]], [[288, 338.95], [315.95, 365.95], [0, 480.95]], [[315.95, 365.95], [348.95, 380.95], [0, 480.95]], [[348.95, 380.95], [390.95, 386.95], [478.95, 480.95], [0, 480.95]], [[478.95, 354.95], [478.95, 480.95], [428.95, 378.95]], [[428.95, 378.95], [478.95, 480.95], [390.95, 386.95]]]); CreateBody("pol", "Polygon", 0, defaultFriction, defaultRestitution, [[[683, 0], [683, 34.05], [500, 34.05], [0, 0]], [[0, 200.05], [0, 0], [500, 34.05], [500, 200.05]]]); CreateBody("potolok1", "Polygon", 0, defaultFriction, defaultRestitution, [[[198, 0], [198, 200.05], [0, 200.05], [0, 0]]]); CreateBody("potolok2", "Polygon", 0, defaultFriction, defaultRestitution, [[[0, 0], [45, 0], [45, 200], [0, 200]]]); CreateBody("potolok3", "Polygon", 0, defaultFriction, defaultRestitution, [[[0, 0], [45, 0], [45, 200], [0, 200]]]); CreateBody("potolok4", "Polygon", 0, defaultFriction, defaultRestitution, [[[0, 0], [125, 0], [125, 200], [0, 200]]]); killSpuskBody = CreateBody("killSpusk", "Polygon", 0, defaultFriction, defaultRestitution, [[[954.95, 494.95], [963.95, 524.95], [874.95, 514.95]], [[874.95, 514.95], [963.95, 524.95], [882.95, 547.95], [792.95, 547.95], [798.95, 514.95]], [[182.95, 26], [544.95, 393.95], [522.95, 419.95], [164, 53.95], [115.95, 0]], [[0, 0], [115.95, 0], [111, 33.95], [0, 33.95]], [[111, 33.95], [115.95, 0], [164, 53.95]], [[544.95, 393.95], [646.95, 458.95], [522.95, 419.95]], [[646.95, 458.95], [798.95, 514.95], [792.95, 547.95], [632.95, 491], [522.95, 419.95]]]); carBody = CreateBody("car", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[98, 40.75], [91.5, 41.75], [91.5, 39.25], [98, 24.25]], [[62, 0], [68, 16.5], [65.75, 17], [59.75, 0]], [[68, 16.5], [98, 24.25], [65.75, 26], [65.75, 17]], [[17.25, 0.5], [20.5, 21.75], [13.5, 28.5], [9.5, 31.5], [0, 0.5]], [[0, 41.5], [0, 0.5], [6.5, 36.25], [5.5, 41.5]], [[6.5, 36.25], [0, 0.5], [9.5, 31.5]], [[13.5, 28.5], [20.5, 21.75], [17.25, 27.5]], [[20.5, 21.75], [33.25, 26], [17.25, 27.5]], [[33.25, 26], [65.75, 26], [21.25, 27.5], [17.25, 27.5]], [[21.25, 27.5], [65.75, 26], [25.5, 28.5]], [[65.75, 26], [98, 24.25], [28.5, 30.25], [25.5, 28.5]], [[28.5, 30.25], [98, 24.25], [75.25, 27.5], [30.75, 32.75]], [[33.75, 41.5], [33.5, 39.25], [63.5, 41.5]], [[33.5, 39.25], [32.25, 35.5], [63.5, 41.5]], [[32.25, 35.5], [30.75, 32.75], [64.5, 36.25], [63.5, 41.5]], [[64.5, 36.25], [30.75, 32.75], [67.5, 31.5]], [[67.5, 31.5], [30.75, 32.75], [71.5, 28.5]], [[71.5, 28.5], [30.75, 32.75], [75.25, 27.5]], [[75.25, 27.5], [98, 24.25], [79.25, 27.5]], [[79.25, 27.5], [98, 24.25], [83.5, 28.5]], [[83.5, 28.5], [98, 24.25], [86.5, 30.25]], [[86.5, 30.25], [98, 24.25], [88.75, 32.75]], [[88.75, 32.75], [98, 24.25], [90.25, 35.5]], [[90.25, 35.5], [98, 24.25], [91.5, 39.25]]]); killSpusk2Body = CreateBody("killSpusk2", "Polygon", 0, defaultFriction, defaultRestitution, [[[290, 76], [631.05, 409.05], [275, 105.95], [199, 34]], [[0, 0], [199, 34], [191, 65.95], [-6, 34.95]], [[191, 65.95], [199, 34], [275, 105.95]], [[275, 105.95], [631.05, 409.05], [618, 439.95]], [[631.05, 409.05], [717.05, 457.05], [618, 439.95]], [[717.05, 457.05], [891.05, 494.05], [882.95, 523.95], [705.95, 485.95], [618, 439.95]], [[891.05, 494.05], [965.05, 494.05], [964.95, 523.95], [882.95, 523.95]], [[964.95, 523.95], [965.05, 494.05], [1049.05, 468.05], [1057.95, 493.95]]]); var _local1:b2Body = CreateBody("koleco1", "Circle", defaultDensity, defaultFriction, defaultRestitution, [23.3]); var _local2:b2Body = CreateBody("koleco2", "Circle", defaultDensity, defaultFriction, defaultRestitution, [23.3]); killer1Body = CreateBody("killer1", "Polygon", (10 * defaultDensity), defaultFriction, defaultRestitution, [[[8.9, 0], [34.9, 0], [34.9, 200], [22.2, 218.5], [8.9, 200]]]); killer2Body = CreateBody("killer2", "Polygon", (10 * defaultDensity), defaultFriction, defaultRestitution, [[[8.9, 0], [34.9, 0], [34.9, 200], [22.2, 218.5], [8.9, 200]]]); killer3Body = CreateBody("killer3", "Polygon", (10 * defaultDensity), defaultFriction, defaultRestitution, [[[8.9, 0], [34.9, 0], [34.9, 200], [22.2, 218.5], [8.9, 200]]]); CreateBody("finishPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[482.85, -107], [500.05, -107], [500.05, 20], [482.85, 0]], [[0, 0], [482.85, 0], [500.05, 20], [0, 20]]]); CreateBody("barier", "Polygon", 0, defaultFriction, defaultRestitution, [[[24.75, 0], [34.5, 33.75], [0, 33.75], [10, 0]]]); var _local3:b2RevoluteJointDef = new b2RevoluteJointDef(); var _local4:b2PrismaticJointDef = new b2PrismaticJointDef(); _local4.Initialize(killer1Body, m_ground, killer1Body.GetWorldCenter(), new b2Vec2(0, 1)); m_world.CreateJoint(_local4); _local4.Initialize(killer2Body, m_ground, killer2Body.GetWorldCenter(), new b2Vec2(0, 1)); m_world.CreateJoint(_local4); _local4.Initialize(killer3Body, m_ground, killer3Body.GetWorldCenter(), new b2Vec2(0, 1)); m_world.CreateJoint(_local4); _local3.Initialize(carBody, _local1, new b2Vec2(((koleco1.x + 11.65) / m_physScale), ((koleco1.y + 11.65) / m_physScale))); m_world.CreateJoint(_local3); _local3.Initialize(carBody, _local2, new b2Vec2(((koleco2.x + 11.65) / m_physScale), ((koleco2.y + 11.65) / m_physScale))); m_world.CreateJoint(_local3); addEventListener(Event.REMOVED_FROM_STAGE, onRemovedHandler); } private function onRemovedHandler(_arg1:Event):void{ if (carSoundChannel){ carSoundChannel.stop(); carSoundChannel = null; }; } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((((((((((playerBox.y > 1800)) || (!((myContactListener.playerContactBodies.indexOf(killer1Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killer2Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killer3Body) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killSpuskBody) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(killSpusk2Body) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (myContactListener.playerContactBodies.indexOf(carBody) != -1){ if (((Game.soundIs) && (!(carSoundChannel)))){ carSoundChannel = carSound.play(0, int.MAX_VALUE, new SoundTransform(0.8, 0)); }; }; if (!Game.soundIs){ if (carSoundChannel){ carSoundChannel.stop(); carSoundChannel = null; }; }; if (killer1.y > 70){ killer1Up = true; }; if (killer1.y < -4){ killer1Up = false; }; if (killer1Up){ killer1Body.SetLinearVelocity(new b2Vec2(0, -4)); }; if (killer2.y > 70){ killer2Up = true; }; if (killer2.y < -4){ killer2Up = false; }; if (killer2Up){ killer2Body.SetLinearVelocity(new b2Vec2(0, -4)); }; if (killer3.y > 70){ killer3Up = true; }; if (killer3.y < -4){ killer3Up = false; }; if (killer3Up){ killer3Body.SetLinearVelocity(new b2Vec2(0, -4)); }; } } }//package Levels
Section 110
//Level_9 (Levels.Level_9) package Levels { import flash.events.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import flash.display.*; public class Level_9 extends Level { private var firstCrankBody:b2Body; public var jumpBall1:MovieClip; public var jumpBall2:MovieClip; private var greenPlatformBodyDirection:int;// = 1 public var greenCheck1:MovieClip; public var greenCheck2:MovieClip; public var greenCheck3:MovieClip; public var bridgeElement10:MovieClip; public var jumpBall3:MovieClip; public var greenPlatform:MovieClip; public var killRollBall:MovieClip; public var levelAim:MovieClip; public var finishPlatform:MovieClip; private var killRollBallDirection:int;// = 1 public var middlePlatform:MovieClip; private var boomCrankBody:b2Body; public var upPlatform:MovieClip; public var firstCrank:MovieClip; public var firstBigPlatform:MovieClip; public var checkPoint1:MovieClip; public var checkPoint3:MovieClip; public var checkPoint0:MovieClip; public var checkPoint2:MovieClip; private var greenPlatformBody:b2Body; public var bridgeElement1:MovieClip; public var bridgeElement2:MovieClip; public var bridgeElement3:MovieClip; public var bridgeElement4:MovieClip; public var bridgeElement5:MovieClip; public var bridgeElement6:MovieClip; public var backGroundMC:MovieClip; public var bridgeElement8:MovieClip; public var bridgeElement9:MovieClip; public var lowPlatform:MovieClip; public var bridgeElement7:MovieClip; public var low2Platform:MovieClip; public var boomCrank:MovieClip; private var killRollBallBody:b2Body; public var secondCrank:MovieClip; public function Level_9(){ id = 9; firstCrankBody = CreateBody("firstCrank", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[6.8, -7.65], [6.8, 7.35], [-73.2, 7.35], [-73.2, -7.65]]]); var _local1:b2Body = CreateBody("secondCrank", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[7.2, -6.6], [7.2, 8.4], [-142.8, 8.4], [-142.8, -6.6]]]); boomCrankBody = CreateBody("boomCrank", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[5, -15], [5, 15], [-53.5, 15], [-64.25, -0.25], [-53.5, -15]]]); CreateBody("firstBigPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[1327.45, 378.95], [1327.45, 400.95], [0, 400.95], [1121.45, 378.95]], [[1121.45, 361.95], [1121.45, 378.95], [1103.9, 361.9]], [[1103.9, 342.9], [1103.9, 361.9], [1085.9, 342.9]], [[1085.9, 323.95], [1085.9, 342.9], [1067.9, 323.95]], [[1085.9, 342.9], [1103.9, 361.9], [953.4, 251.95], [1067.9, 323.95]], [[1067.9, 304.95], [1067.9, 323.95], [1049.9, 304.95]], [[1049.9, 281.95], [1049.9, 304.95], [1029.05, 281.95]], [[1029.05, 281.95], [1049.9, 304.95], [953.4, 251.95], [1001.6, 251.95]], [[1049.9, 304.95], [1067.9, 323.95], [953.4, 251.95]], [[1103.9, 361.9], [1121.45, 378.95], [953.4, 281.95], [953.4, 251.95]], [[953.4, 281.95], [1121.45, 378.95], [896.9, 281.95]], [[896.9, 281.95], [1121.45, 378.95], [850.9, 280.95]], [[850.9, 280.95], [1121.45, 378.95], [800.9, 273.95]], [[800.9, 273.95], [1121.45, 378.95], [0, 400.95], [777.95, 266.95]], [[441.95, 57], [458.95, 117], [190, 46]], [[458.95, 117], [755.95, 257.95], [190, 46]], [[755.95, 257.95], [777.95, 266.95], [0, 400.95], [0, 0], [190, 46]], [[196, 20], [190, 46], [0, 0]]]); greenPlatformBody = CreateBody("greenPlatform", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[49, -5], [49, 5], [-49, 5], [-49, -5]]]); var _local2:b2Body = CreateBody("lowPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[-581.95, -109.1], [-522.95, -109.1], [-522.95, -9], [-705.95, -35]], [[-795.95, -35], [-705.95, -35], [-522.95, -9], [-795.95, -9]]]); var _local3:b2Body = CreateBody("low2Platform", "Polygon", 0, defaultFriction, defaultRestitution, [[[286.95, -10.95], [399.95, -10.95], [286.95, 14.05]], [[262.95, 14.05], [286.95, 14.05], [262.95, 37.05]], [[286.95, 14.05], [399.95, -10.95], [262.95, 37.05]], [[239.95, 37.05], [262.95, 37.05], [239.95, 59.05]], [[262.95, 37.05], [399.95, -10.95], [239.95, 59.05]], [[215, 59.05], [239.95, 59.05], [215, 82]], [[239.95, 59.05], [399.95, -10.95], [399.95, 113], [215, 82]], [[-399.95, -112.95], [-288, -112.95], [-318, -13], [-399.95, -13]], [[-288, -112.95], [-288, 82], [-318, 113], [-318, -13]], [[-288, 82], [215, 82], [399.95, 113], [-318, 113]]]); CreateBody("upPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[163, -58], [163, -26], [29, 1.5], [-162.95, -58]], [[-162.95, 47], [-162.95, -58], [29, 1.5], [29, 58], [-150.95, 58]]]); CreateBody("middlePlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[-48.6, -81.9], [-48.6, -26.05], [-96, 81.9], [-96, -81.9]], [[-96, 81.9], [-48.6, -26.05], [96, -9.05], [96, 81.9]]]); CreateBody("finishPlatform", "Polygon", 0, defaultFriction, defaultRestitution, [[[-58, -12.5], [58, -12.5], [58, 12.5], [-58, 12.5]]]); var _local4:b2Body = CreateBody("bridgeElement1", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -4], [56, -4], [56, 4], [-4, 4]]]); var _local5:b2Body = CreateBody("bridgeElement2", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -4], [56, -4], [56, 4], [-4, 4]]]); var _local6:b2Body = CreateBody("bridgeElement3", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -4], [56, -4], [56, 4], [-4, 4]]]); var _local7:b2Body = CreateBody("bridgeElement4", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -4], [56, -4], [56, 4], [-4, 4]]]); var _local8:b2Body = CreateBody("bridgeElement5", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -4], [56, -4], [56, 4], [-4, 4]]]); var _local9:b2Body = CreateBody("bridgeElement6", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -4], [56, -4], [56, 4], [-4, 4]]]); var _local10:b2Body = CreateBody("bridgeElement7", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -4], [56, -4], [56, 4], [-4, 4]]]); var _local11:b2Body = CreateBody("bridgeElement8", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -4], [56, -4], [56, 4], [-4, 4]]]); var _local12:b2Body = CreateBody("bridgeElement9", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -4], [56, -4], [56, 4], [-4, 4]]]); var _local13:b2Body = CreateBody("bridgeElement10", "Polygon", defaultDensity, defaultFriction, defaultRestitution, [[[-4, -4], [56, -4], [56, 4], [-4, 4]]]); killRollBallBody = CreateBody("killRollBall", "Circle", defaultDensity, defaultFriction, defaultRestitution, [50]); var _local14:b2Body = CreateBody("jumpBall1", "Circle", defaultDensity, defaultFriction, defaultRestitution, [75]); var _local15:b2Body = CreateBody("jumpBall2", "Circle", defaultDensity, defaultFriction, defaultRestitution, [75]); var _local16:b2Body = CreateBody("jumpBall3", "Circle", defaultDensity, defaultFriction, defaultRestitution, [75]); var _local17:b2DistanceJointDef = new b2DistanceJointDef(); var _local18:b2RevoluteJointDef = new b2RevoluteJointDef(); var _local19:b2PrismaticJointDef = new b2PrismaticJointDef(); _local19.Initialize(greenPlatformBody, m_ground, greenPlatformBody.GetWorldCenter(), new b2Vec2(1, 0)); m_world.CreateJoint(_local19); _local18.Initialize(_local2, _local4, _local4.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(_local4, _local5, _local5.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(_local5, _local6, _local6.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(_local6, _local7, _local7.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(_local7, _local8, _local8.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(_local8, _local9, _local9.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(_local9, _local10, _local10.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(_local10, _local11, _local11.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(_local11, _local12, _local12.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(_local12, _local13, _local13.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(_local13, _local3, new b2Vec2((_local13.GetPosition().x + (50 / m_physScale)), _local13.GetPosition().y)); m_world.CreateJoint(_local18); _local18.Initialize(firstCrankBody, m_ground, firstCrankBody.GetPosition()); _local18.motorSpeed = (1.8 * Math.PI); _local18.maxMotorTorque = 5000; _local18.enableMotor = true; m_world.CreateJoint(_local18); _local18.enableMotor = false; _local18.Initialize(_local1, firstCrankBody, _local1.GetPosition()); m_world.CreateJoint(_local18); _local18.Initialize(boomCrankBody, _local1, boomCrankBody.GetPosition()); m_world.CreateJoint(_local18); _local19.Initialize(boomCrankBody, m_ground, boomCrankBody.GetWorldCenter(), new b2Vec2(1, 0)); m_world.CreateJoint(_local19); _local17.Initialize(_local14, m_ground, new b2Vec2((2236 / m_physScale), (63 / m_physScale)), new b2Vec2((2172 / m_physScale), (-56 / m_physScale))); m_world.CreateJoint(_local17); _local17.Initialize(_local15, m_ground, new b2Vec2((2370 / m_physScale), (63 / m_physScale)), new b2Vec2((2435 / m_physScale), (-56 / m_physScale))); m_world.CreateJoint(_local17); _local17.Initialize(_local16, m_ground, new b2Vec2((2761 / m_physScale), (63 / m_physScale)), new b2Vec2((2698 / m_physScale), (-56 / m_physScale))); m_world.CreateJoint(_local17); greenCheck1.stop(); greenCheck2.stop(); greenCheck3.stop(); } private function checkBoxSoundCompleteHandler(_arg1:Event):void{ checkBoxSoundChannel = null; } override public function Update(_arg1:Event):void{ super.Update(_arg1); if ((((((playerBox.y > 530)) || (!((myContactListener.playerContactBodies.indexOf(killRollBallBody) == -1))))) || (!((myContactListener.playerContactBodies.indexOf(boomCrankBody) == -1))))){ if (playerBox.IsLive()){ PlayerDie(); }; }; if (greenPlatform.x < 55){ greenPlatformBodyDirection = 1; }; if (greenPlatform.x > 387){ greenPlatformBodyDirection = -1; }; greenPlatformBody.SetLinearVelocity(new b2Vec2((2 * greenPlatformBodyDirection), 0)); if (((playerBox.hitTestObject(greenCheck1)) && ((greenCheck1.currentFrame == 1)))){ greenCheck1.gotoAndStop(2); DestroyBody(greenPlatformBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.soundTransform = transformCheckBoxSound; checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; if (((playerBox.hitTestObject(greenCheck2)) && ((greenCheck2.currentFrame == 1)))){ greenCheck2.gotoAndStop(2); DestroyBody(greenPlatformBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.soundTransform = transformCheckBoxSound; checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; if (((playerBox.hitTestObject(greenCheck3)) && ((greenCheck3.currentFrame == 1)))){ greenCheck3.gotoAndStop(2); DestroyBody(greenPlatformBody); if (((Game.soundIs) && (!(checkBoxSoundChannel)))){ checkBoxSoundChannel = checkBoxSound.play(0, 1); checkBoxSoundChannel.soundTransform = transformCheckBoxSound; checkBoxSoundChannel.addEventListener(Event.SOUND_COMPLETE, checkBoxSoundCompleteHandler); }; }; if (killRollBall.x < 740){ killRollBallDirection = 1; }; if (killRollBall.x > 1200){ killRollBallDirection = -1; }; killRollBallBody.SetAngularVelocity((5 * killRollBallDirection)); } } }//package Levels
Section 111
//mcFireLogo_4 (movie_fla.mcFireLogo_4) package movie_fla { import flash.display.*; public dynamic class mcFireLogo_4 extends MovieClip { public function mcFireLogo_4(){ addFrameScript(72, frame73); } function frame73(){ stop(); } } }//package movie_fla
Section 112
//mcPlayBtn_7 (movie_fla.mcPlayBtn_7) package movie_fla { import flash.display.*; public dynamic class mcPlayBtn_7 extends MovieClip { public function mcPlayBtn_7(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package movie_fla
Section 113
//PauseSprite_84 (movie_fla.PauseSprite_84) package movie_fla { import flash.events.*; import flash.display.*; import flash.text.*; import com.midasplayer.*; public dynamic class PauseSprite_84 extends MovieClip { public var returnButton:SimpleButton; public var pauseText:TextField; public var backToMenuButton:SimpleButton; public var walkButton:SimpleButton; public var kingGamesButton:SimpleButton; public function PauseSprite_84(){ addFrameScript(0, frame1); } public function returnButtonHandler(_arg1:MouseEvent):void{ (this.parent as Game).PressP(); } function frame1(){ stop(); returnButton.addEventListener(MouseEvent.CLICK, returnButtonHandler); backToMenuButton.addEventListener(MouseEvent.CLICK, backToMenuButtonHandler); walkButton.addEventListener(MouseEvent.CLICK, walkButtonHandler); kingGamesButton.addEventListener(MouseEvent.CLICK, kingGamesButtonHandler); } public function kingGamesButtonHandler(_arg1:MouseEvent):void{ KingAPI.openOtherGamesLink(); } public function walkButtonHandler(_arg1:MouseEvent):void{ KingAPI.openSignLink(); } public function backToMenuButtonHandler(_arg1:MouseEvent):void{ (this.parent as Game).ExitGame(); } } }//package movie_fla
Section 114
//BackGround (BackGround) package { import flash.display.*; public dynamic class BackGround extends MovieClip { } }//package
Section 115
//BallDieSound (BallDieSound) package { import flash.media.*; public dynamic class BallDieSound extends Sound { } }//package
Section 116
//BallDownSound (BallDownSound) package { import flash.media.*; public dynamic class BallDownSound extends Sound { } }//package
Section 117
//BallJumpSound (BallJumpSound) package { import flash.media.*; public dynamic class BallJumpSound extends Sound { } }//package
Section 118
//CarSound (CarSound) package { import flash.media.*; public dynamic class CarSound extends Sound { } }//package
Section 119
//CheckBoxSound (CheckBoxSound) package { import flash.media.*; public dynamic class CheckBoxSound extends Sound { } }//package
Section 120
//ClickButtonSound (ClickButtonSound) package { import flash.media.*; public dynamic class ClickButtonSound extends Sound { } }//package
Section 121
//Game (Game) package { import flash.events.*; import flash.display.*; import com.midasplayer.*; import flash.media.*; import King.*; import flash.text.*; import Levels.*; import flash.net.*; public class Game extends Sprite { private var gameLoop1:GameLoop1; private var gameLoop1Channel:SoundChannel; public var pauseSprite:MovieClip; public var quitText:MovieClip; public var scoreText:TextField; public var m_currLevel:Level; private var beforePauseSoundIs:Boolean; private var loopPosition:Number;// = 0 private var transformGameLoop1:SoundTransform; public var menuButton:TextField; private var quitSprite:Sprite; private var wasInPause:Boolean; public var soundCheck:SoundCheck; public var kingGameButton:com; private var pause:Boolean; private var m_currId:int;// = 1 public static const stageHeight:Number = 400; public static const stageWidth:Number = 550; public static var scoreKills:int = 0; public static var scoreAvailable:Boolean; public static var soundIs:Boolean = true; public function Game(){ gameLoop1 = new GameLoop1(); transformGameLoop1 = new SoundTransform(1, 0); super(); m_currId = Preloader.startLevelNum; SetLevel(m_currId); addEventListener(Event.ENTER_FRAME, Update); Preloader.stageLink.addEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler); pauseSprite.visible = false; quitSprite = (getChildByName("quitText") as Sprite); quitSprite.visible = false; addEventListener(Event.DEACTIVATE, deactivateHandler); addEventListener(Event.ACTIVATE, activateHandler); SetSound(Game.soundIs); soundCheck.addEventListener(MouseEvent.CLICK, onCheckSoundHandler); menuButton.addEventListener(MouseEvent.CLICK, onMenuButtonHandler); kingGameButton.addEventListener(MouseEvent.CLICK, kingClickHandler); } private function KeyDownHandler(_arg1:KeyboardEvent):void{ switch (_arg1.keyCode){ case 80: PressP(); break; case 82: if (!pause){ SetLevel(m_currId); }; if (Game.scoreAvailable){ Game.scoreKills++; scoreText.text = ("Death: " + Game.scoreKills.toString()); }; break; case 27: PressEsc(); break; case 89: if (quitSprite.visible){ ExitGame(); }; break; case 78: if (quitSprite.visible){ m_currLevel.SetControl(); addEventListener(Event.ENTER_FRAME, Update); m_currLevel.alpha = 1; quitSprite.visible = false; }; break; }; } private function onCheckSoundHandler(_arg1:MouseEvent):void{ if (!pause){ soundIs = !(soundIs); SetSound(soundIs); }; } public function SetLevel(_arg1:int):void{ if (m_currLevel){ m_currLevel.OutControl(); removeChild(m_currLevel); }; m_currId = _arg1; if (Game.scoreAvailable){ scoreText.text = ("Death: " + Game.scoreKills.toString()); } else { scoreText.text = ""; }; switch (m_currId){ case 1: m_currLevel = new Level_1(); break; case 2: m_currLevel = new Level_2(); break; case 3: m_currLevel = new Level_3(); break; case 4: m_currLevel = new Level_4(); break; case 5: m_currLevel = new Level_5(); break; case 6: m_currLevel = new Level_6(); break; case 7: m_currLevel = new Level_7(); break; case 8: m_currLevel = new Level_8(); break; case 9: m_currLevel = new Level_9(); break; case 10: m_currLevel = new Level_10(); break; case 11: m_currLevel = new Level_11(); break; case 12: m_currLevel = new Level_12(); break; case 13: m_currLevel = new Level_13(); break; case 14: m_currLevel = new Level_14(); break; case 15: m_currLevel = new Level_15(); break; case 16: m_currLevel = new Level_16(); break; case 17: m_currLevel = new Level_17(); break; }; addChildAt(m_currLevel, 0); } public function PressEsc():void{ if (!pause){ if (!quitSprite.visible){ m_currLevel.OutControl(); removeEventListener(Event.ENTER_FRAME, Update); m_currLevel.alpha = 0.5; this.setChildIndex(quitSprite, (this.numChildren - 1)); quitSprite.visible = true; } else { m_currLevel.SetControl(); addEventListener(Event.ENTER_FRAME, Update); m_currLevel.alpha = 1; quitSprite.visible = false; }; }; } public function PressP():void{ if (!quitSprite.visible){ pause = !(pause); SetPause(pause); }; } public function ExitGame():void{ if (m_currLevel){ removeChild(m_currLevel); }; if (gameLoop1Channel){ gameLoop1Channel.stop(); }; Level.lastCheckNum = 0; Level_7.redCheckLevel = false; Level_13.greenCheckLevel = false; Level_16.isStrelka = false; removeEventListener(Event.DEACTIVATE, deactivateHandler); removeEventListener(Event.ACTIVATE, activateHandler); removeEventListener(Event.ENTER_FRAME, Update); Preloader.stageLink.removeEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler); (this.parent as MovieClip).gotoAndStop("menu_main"); soundIs = true; } private function deactivateHandler(_arg1:Event):void{ if (!quitSprite.visible){ if (!pause){ SetPause(true); } else { wasInPause = true; }; }; } private function kingClickHandler(_arg1:MouseEvent):void{ KingAPI.openSignLink(); } private function SetPause(_arg1:Boolean):void{ pause = _arg1; if (pause){ m_currLevel.OutControl(); removeEventListener(Event.ENTER_FRAME, Update); m_currLevel.alpha = 0.5; this.setChildIndex(pauseSprite, (this.numChildren - 1)); pauseSprite.visible = true; beforePauseSoundIs = soundIs; SetSound(false); } else { m_currLevel.SetControl(); addEventListener(Event.ENTER_FRAME, Update); m_currLevel.alpha = 1; this.setChildIndex(pauseSprite, (this.numChildren - 1)); pauseSprite.visible = false; SetSound(beforePauseSoundIs); wasInPause = false; }; } private function activateHandler(_arg1:Event):void{ if (!quitSprite.visible){ if (!wasInPause){ SetPause(false); }; }; } private function Update(_arg1:Event):void{ m_currLevel.Update(_arg1); if (m_currLevel.Win()){ m_currId++; Level.lastCheckNum = 0; if ((((m_currId < 13)) || ((((m_currId < 18)) && (Preloader.isHome))))){ if (((!(Preloader.mySo.data.levelsAvaiable)) || ((Preloader.mySo.data.levelsAvaiable < m_currId)))){ Preloader.mySo.data.levelsAvaiable = m_currId; Preloader.mySo.flush(100); Preloader.levelsAvaiable = m_currId; }; SetLevel(m_currId); } else { if ((((m_currId == 18)) && (Game.scoreAvailable))){ KingAPI.submitScore(Game.scoreKills); }; ExitGame(); }; }; if (m_currLevel.Lose()){ if (Game.scoreAvailable){ Game.scoreKills++; scoreText.text = ("Death: " + Game.scoreKills.toString()); }; SetLevel(m_currId); }; } private function onMenuButtonHandler(_arg1:MouseEvent):void{ PressP(); } private function SetSound(_arg1:Boolean):void{ soundIs = _arg1; if (soundIs){ soundCheck.gotoAndStop(1); gameLoop1Channel = gameLoop1.play(loopPosition, int.MAX_VALUE, transformGameLoop1); } else { soundCheck.gotoAndStop(2); if (gameLoop1Channel){ loopPosition = gameLoop1Channel.position; gameLoop1Channel.stop(); }; }; } } }//package
Section 122
//GameLoop1 (GameLoop1) package { import flash.media.*; public dynamic class GameLoop1 extends Sound { } }//package
Section 123
//JumpPlatformSound (JumpPlatformSound) package { import flash.media.*; public dynamic class JumpPlatformSound extends Sound { } }//package
Section 124
//LevelButton (LevelButton) package { import flash.display.*; import flash.text.*; public class LevelButton extends MovieClip { private var levelNum:int; public var avaliable:Boolean; private var textNum:TextField; public function LevelButton(_arg1:int):void{ levelNum = _arg1; if (levelNum <= Preloader.levelsAvaiable){ avaliable = true; gotoAndStop(1); } else { avaliable = false; gotoAndStop(4); }; textNum = new TextField(); textNum.x = 1; textNum.y = 1; textNum.width = 25; textNum.height = 25; textNum.embedFonts = true; textNum.selectable = false; var _local2:TextFormat = new TextFormat("Kronika", 14, 0); _local2.align = TextFormatAlign.CENTER; textNum.defaultTextFormat = _local2; textNum.text = num.toString(); this.mouseChildren = false; addChild(textNum); } public function get num():int{ return (levelNum); } } }//package
Section 125
//LevelSound (LevelSound) package { import flash.media.*; public dynamic class LevelSound extends Sound { } }//package
Section 126
//libGlow (libGlow) package { import flash.display.*; public dynamic class libGlow extends MovieClip { } }//package
Section 127
//mcDragon (mcDragon) package { import flash.display.*; public dynamic class mcDragon extends MovieClip { } }//package
Section 128
//mcGlimmer (mcGlimmer) package { import flash.display.*; public dynamic class mcGlimmer extends MovieClip { } }//package
Section 129
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 130
//MyContactListener (MyContactListener) package { import flash.events.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Dynamics.Contacts.*; import flash.media.*; public class MyContactListener extends b2ContactListener { private var transformBallDownSound:SoundTransform; private var ballDownSound:BallDownSound; private var ballDownSoundChannel:SoundChannel; public var playerContactBodies:Array; public function MyContactListener(){ playerContactBodies = new Array(); ballDownSound = new BallDownSound(); transformBallDownSound = new SoundTransform(0.6, 0); super(); } override public function Add(_arg1:b2ContactPoint):void{ var _local2:b2Body = _arg1.shape1.GetBody(); var _local3:b2Body = _arg1.shape2.GetBody(); if ((_local2.m_userData is PlayerBox)){ playerContactBodies.push(_local3); }; if ((_local3.m_userData is PlayerBox)){ playerContactBodies.push(_local2); }; } private function ballDownSoundCompleteHandler(_arg1:Event):void{ ballDownSoundChannel = null; } override public function Remove(_arg1:b2ContactPoint):void{ var _local2:b2Body = _arg1.shape1.GetBody(); var _local3:b2Body = _arg1.shape2.GetBody(); if ((((_local2.m_userData is PlayerBox)) && (!((playerContactBodies.indexOf(_local3) == -1))))){ playerContactBodies.splice(_local3, 1); }; if ((((_local3.m_userData is PlayerBox)) && (!((playerContactBodies.indexOf(_local2) == -1))))){ playerContactBodies.splice(_local2, 1); }; } override public function Persist(_arg1:b2ContactPoint):void{ } override public function Result(_arg1:b2ContactResult):void{ var _local2:b2Body = _arg1.shape1.GetBody(); var _local3:b2Body = _arg1.shape2.GetBody(); if (((Game.soundIs) && ((((_local2.m_userData is PlayerBox)) || ((_local3.m_userData is PlayerBox)))))){ if (_arg1.normalImpulse > 2){ if (!ballDownSoundChannel){ ballDownSoundChannel = ballDownSound.play(0, 1); ballDownSoundChannel.soundTransform = transformBallDownSound; ballDownSoundChannel.addEventListener(Event.SOUND_COMPLETE, ballDownSoundCompleteHandler); }; }; }; } } }//package
Section 131
//OverButtonSound (OverButtonSound) package { import flash.media.*; public dynamic class OverButtonSound extends Sound { } }//package
Section 132
//PlayerBox (PlayerBox) package { import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Common.*; import flash.display.*; import Box2D.Dynamics.Contacts.*; import Levels.*; import flash.geom.*; public class PlayerBox extends MovieClip { public var body:b2Body; private var m_worldIn:b2World; private var live:Boolean;// = true private var testPoints:Array; private var m_spriteIn:Sprite; public function PlayerBox(_arg1:Number, _arg2:Number, _arg3:b2World, _arg4:Sprite){ var _local5:b2BodyDef; var _local6:b2CircleDef; testPoints = new Array(); super(); _local5 = new b2BodyDef(); _local6 = new b2CircleDef(); m_worldIn = _arg3; m_spriteIn = _arg4; x = _arg1; y = _arg2; _arg4.x = (-(this.x) + (Game.stageWidth / 2)); _arg4.y = (-(this.y) + (Game.stageHeight / 2)); _local6.radius = ((width / Level.m_physScale) / 2); _local6.localPosition.Set(0, 0); _local6.density = 1; _local6.friction = 0.4; _local6.restitution = 0.2; _local5.position.Set((_arg1 / Level.m_physScale), (_arg2 / Level.m_physScale)); _local5.userData = this; body = _arg3.CreateBody(_local5); body.SetBullet(true); body.CreateShape(_local6); body.SetMassFromShapes(); _arg4.addChild(this); var _local7 = 16; var _local8:Number = (this.width / 2); var _local9:Number = ((2 * Math.PI) / _local7); var _local10:int; while (_local10 < _local7) { testPoints.push(new Point((_local8 * Math.cos((_local9 * _local10))), (_local8 * Math.sin((_local9 * _local10))))); _local10++; }; } public function HitTestObjectControlPoints(_arg1:DisplayObject):Boolean{ var _local3:Point; var _local2:int; while (_local2 < 16) { _local3 = this.localToGlobal(testPoints[_local2]); if (_arg1.hitTestPoint(_local3.x, _local3.y, true)){ return (true); }; _local2++; }; return (false); } public function IsLive():Boolean{ return (live); } public function Kill():void{ if (this.live){ m_worldIn.DestroyBody(this.body); m_spriteIn.removeChild(this); live = false; }; } } }//package
Section 133
//PlayerDiePart (PlayerDiePart) package { import flash.display.*; public dynamic class PlayerDiePart extends MovieClip { } }//package
Section 134
//Preloader (Preloader) package { import flash.events.*; import flash.display.*; import com.midasplayer.*; import com.midasplayer.particle.*; import flash.media.*; import flash.utils.*; import King.*; import flash.text.*; import flash.filters.*; import flash.net.*; public class Preloader extends MovieClip { public var highscoreButton:SimpleButton; public var transformSound:SoundTransform; public var playButton:SimpleButton; public var showLevel:MovieClip; public var mcLoadLogoBg:MovieClip; public var kingLogo1:com; public var overButtonSound:OverButtonSound; public var newLevelButton:LevelButton; public var bar:Sprite; public var newLevelNum:int; public var holder:Sprite; public var particles:Main; public var kingLevelsLabel:MovieClip; public var levelName:Array; public var walkthroughButton:SimpleButton; public var game_name:String; public var moreGamesButton:SimpleButton; public var mcKingLoader:DragonLoader; public var matrix:Array; public var mochi:String; public var bg:Sprite; public var highscoreAvailableText:TextField; public var levelText:TextField; public var clickButtonSound:ClickButtonSound; public var _mochiads_game_id:String; public var downloadButton:SimpleButton; public var kingLogo:com; public var kingLevels:com; public var selectSprite:Sprite; public var j:int; public var EFLogo:MovieClip; public var EFText:TextField; public var creditsButton:SimpleButton; public var i:int; public var backButton:SimpleButton; public var l:int; public var filter:BitmapFilter; public static var startLevelNum:int = 1; public static var levelsAvaiable:int; public static var mySo:SharedObject; public static var isHome:Boolean; public static var stageLink:Stage; public static var stageLoaderInfo:LoaderInfo; public function Preloader(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5); stage.showDefaultContextMenu = false; stageLoaderInfo = loaderInfo; stageLink = stage; if (isUrl(["notdoppler.com"])){ Preloader.isHome = true; } else { Preloader.isHome = false; }; mySo = SharedObject.getLocal("RedBall", "/"); if (mySo.data.levelsAvaiable != undefined){ levelsAvaiable = mySo.data.levelsAvaiable; } else { levelsAvaiable = 1; }; if (((!(Preloader.isHome)) && ((levelsAvaiable > 12)))){ levelsAvaiable = 12; }; } public function highscoreClickHandler(_arg1:MouseEvent):void{ clickButtonSound.play(0, 1); KingAPI.openHighscoresLink(); } public function preload(_arg1:Event):void{ bg = new Sprite(); bg.buttonMode = true; bg.name = "clickBg"; bg.graphics.beginFill(0, 0); bg.graphics.lineTo(stage.stageWidth, 0); bg.graphics.lineTo(stage.stageWidth, stage.stageHeight); bg.graphics.lineTo(0, stage.stageHeight); bg.graphics.lineTo(0, 0); bg.graphics.endFill(); bg.addEventListener(MouseEvent.CLICK, openKingPage); this.addChildAt(bg, this.getChildIndex(mcLoadLogoBg)); mcLoadLogoBg.x = ((stage.stageWidth / 2) - (mcLoadLogoBg.width / 2)); mcLoadLogoBg.y = ((stage.stageHeight / 2) - (mcLoadLogoBg.height / 2)); bar = new Sprite(); bar.graphics.beginFill(0xFFFFFF, 0); bar.x = (mcLoadLogoBg.x + 5); bar.y = (mcLoadLogoBg.y + 34); bar.graphics.drawRect(0, 0, 96, 5); bar.graphics.endFill(); this.addChild(bar); holder = new Sprite(); this.addChild(holder); holder.x = bar.x; holder.y = bar.y; particles = new Main(); particles.setEmitterClip(holder); this.addChild(particles); addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function backButtonHandler(_arg1:MouseEvent):void{ gotoAndStop("menu_main"); clickButtonSound.play(0, 1); } public function boxCheckMoveHandler(_arg1:MouseEvent):void{ overButtonSound.play(0, 1, transformSound); } public function backButtonOverHandler(_arg1:MouseEvent):void{ overButtonSound.play(0, 1, transformSound); } public function onClickHandler(_arg1:MouseEvent):void{ Preloader.startLevelNum = _arg1.target.num; if ((((_arg1.target.num == 1)) && (Preloader.isHome))){ Game.scoreAvailable = true; Game.scoreKills = 0; } else { Game.scoreAvailable = false; }; removeChild(selectSprite); _arg1.target.removeEventListener(MouseEvent.MOUSE_OVER, onOverHandler); _arg1.target.removeEventListener(MouseEvent.MOUSE_DOWN, onDownHandler); _arg1.target.removeEventListener(MouseEvent.MOUSE_OUT, onOutHandler); gotoAndStop("game"); clickButtonSound.play(0, 1); } public function openKingPage(_arg1:Event):void{ KingAPI.openLoaderProgressLink(); } public function onEnterFrame(_arg1:Event):void{ holder.x = (bar.x + bar.width); if (framesLoaded == totalFrames){ particles.kill(); this.removeChild(particles); removeEventListener(Event.ENTER_FRAME, onEnterFrame); bg.removeEventListener(MouseEvent.CLICK, openKingPage); this.removeChild(bar); if (!KingAPI.isHome){ gotoAndStop(2); } else { gotoAndStop(3); }; } else { bar.scaleX = (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal); mcLoadLogoBg.bar.scaleX = (1 - (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal)); }; } public function moreGamesClickHandler(_arg1:MouseEvent):void{ clickButtonSound.play(0, 1); KingAPI.openOtherGamesLink(); } public function playButtonClickHandler(_arg1:MouseEvent):void{ gotoAndStop("menu_select_level"); clickButtonSound.play(0, 1); } public function downloadClickHandler(_arg1:MouseEvent):void{ clickButtonSound.play(0, 1); KingAPI.openAddToWebsiteLink(); } public function creditsButtonClickHandler(_arg1:MouseEvent):void{ gotoAndStop("credits"); clickButtonSound.play(0, 1); } public function launchGame(_arg1):void{ mcKingLoader.destroy(); gotoAndStop(3); } public function kingClickHandler(_arg1:MouseEvent):void{ KingAPI.openOtherGamesLink(); } function frame1(){ stop(); game_name = "red-ball"; mochi = "193158d9"; _mochiads_game_id = "8836e503bdb21d70"; stage.scaleMode = StageScaleMode.NO_SCALE; KingAPI.addEventListener(KingAPI.INITIALIZED_EVENT, preload); KingAPI.addEventListener(KingAPI.HOST_BANNED_EVENT, preload); KingAPI.init(game_name, root.loaderInfo.url); MochiBot.track(this, mochi); } public function isUrl(_arg1:Array):Boolean{ var _local2:String = this.stage.loaderInfo.loaderURL; var _local3:Number = (_local2.indexOf("://") + 3); var _local4:Number = _local2.indexOf("/", _local3); var _local5:String = _local2.substring(_local3, _local4); var _local6:Number = (_local5.lastIndexOf(".") - 1); var _local7:Number = (_local5.lastIndexOf(".", _local6) + 1); _local5 = _local5.substring(_local7, _local5.length); var _local8:int; while (_local8 < _arg1.length) { if (_local5 == _arg1[_local8]){ return (true); }; _local8++; }; return (false); } public function walkthroughtClickHandler(_arg1:MouseEvent):void{ clickButtonSound.play(0, 1); KingAPI.openSignLink(); } public function onDownHandler(_arg1:MouseEvent):void{ _arg1.target.gotoAndStop(3); } function frame5(){ stop(); showLevel.stop(); selectSprite = new Sprite(); l = 0; levelName = new Array("Select the level you want to play!", "Level 1: Move and jump", "Level 2: Funny ball", "Level 3: Lifts and thorns", "Level 4: Axes", "Level 5: Jump!", "Level 6: Springboards", "Level 7: Box bridge", "Level 8: Car", "Level 9: Ninja on the bridge", "Level 10: Red ball on the ball", "Level 11: Train", "Level 12: Sleep slope", "Level 13: Pacman", "Level 14: Catapult", "Level 15: Shop burglary", "Level 16: Short cut", "Level 17: The King"); levelText.text = levelName[0]; showLevel.gotoAndStop(21); kingLevels.addEventListener(MouseEvent.CLICK, kingClickHandler); if (((Preloader.isHome) || ((Preloader.levelsAvaiable <= 11)))){ kingLevelsLabel.visible = false; highscoreAvailableText.visible = false; kingLevels.visible = false; }; i = 0; while (i < 2) { j = 0; while (j < ((i == 0)) ? 12 : 5) { l++; newLevelNum = l; newLevelButton = new LevelButton(newLevelNum); newLevelButton.x = (((i == 0)) ? 100 : 205 + (30 * j)); newLevelButton.y = (65 + (50 * i)); selectSprite.addChild(newLevelButton); if (newLevelButton.avaliable){ newLevelButton.addEventListener(MouseEvent.CLICK, onClickHandler); newLevelButton.addEventListener(MouseEvent.MOUSE_OVER, onOverHandler); newLevelButton.addEventListener(MouseEvent.MOUSE_DOWN, onDownHandler); newLevelButton.addEventListener(MouseEvent.MOUSE_OUT, onOutHandler); } else { newLevelButton.addEventListener(MouseEvent.MOUSE_OVER, onOverHandler); newLevelButton.addEventListener(MouseEvent.MOUSE_OUT, onOutHandler); }; j++; }; i++; }; addChild(selectSprite); matrix = new Array(); matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]); matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]); matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]); matrix = matrix.concat([0, 0, 0, 1, 0]); filter = new ColorMatrixFilter(matrix); } function frame2(){ mcKingLoader.addEventListener(DragonLoader.LAUNCH_GAME, launchGame); mcKingLoader.init(game_name, mochi); } function frame3(){ stop(); overButtonSound = new OverButtonSound(); clickButtonSound = new ClickButtonSound(); playButton.addEventListener(MouseEvent.CLICK, playButtonClickHandler); moreGamesButton.addEventListener(MouseEvent.CLICK, moreGamesClickHandler); creditsButton.addEventListener(MouseEvent.CLICK, creditsButtonClickHandler); downloadButton.addEventListener(MouseEvent.CLICK, downloadClickHandler); walkthroughButton.addEventListener(MouseEvent.CLICK, walkthroughtClickHandler); highscoreButton.addEventListener(MouseEvent.CLICK, highscoreClickHandler); transformSound = new SoundTransform(0.5, 0); playButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); moreGamesButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); creditsButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); downloadButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); walkthroughButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); highscoreButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); kingLogo1.addEventListener(MouseEvent.CLICK, kingClickHandler); } function frame4(){ backButton.addEventListener(MouseEvent.CLICK, backButtonHandler); backButton.addEventListener(MouseEvent.MOUSE_OVER, backButtonOverHandler); kingLogo.addEventListener(MouseEvent.CLICK, kingClickHandler); } public function onOutHandler(_arg1:MouseEvent):void{ if (_arg1.target.avaliable){ _arg1.target.gotoAndStop(1); }; showLevel.gotoAndStop(21); levelText.text = levelName[0]; } public function onOverHandler(_arg1:MouseEvent):void{ if (_arg1.target.avaliable){ _arg1.target.gotoAndStop(2); showLevel.filters = []; } else { showLevel.filters = [filter]; }; showLevel.gotoAndStop(_arg1.target.num); levelText.text = levelName[_arg1.target.num]; overButtonSound.play(0, 1, transformSound); } } }//package
Section 135
//sfxBell (sfxBell) package { import flash.media.*; public dynamic class sfxBell extends Sound { } }//package
Section 136
//Shipik (Shipik) package { import flash.display.*; public dynamic class Shipik extends MovieClip { } }//package
Section 137
//Ships10 (Ships10) package { import flash.display.*; public dynamic class Ships10 extends MovieClip { } }//package
Section 138
//SoundCheck (SoundCheck) package { import flash.display.*; public dynamic class SoundCheck extends MovieClip { } }//package
Section 139
//spark (spark) package { import flash.display.*; public dynamic class spark extends MovieClip { public function spark(){ addFrameScript(22, frame23); } function frame23(){ gotoAndStop("loop"); } } }//package
Section 140
//TrainSound (TrainSound) package { import flash.media.*; public dynamic class TrainSound extends Sound { } }//package

Library Items

Symbol 1 BitmapUsed by:2
Symbol 2 GraphicUses:1Used by:5
Symbol 3 GraphicUsed by:4
Symbol 4 MovieClipUses:3Used by:5
Symbol 5 MovieClipUses:2 4Used by:Timeline
Symbol 6 Sound {BallDieSound}
Symbol 7 Sound {TrainSound}
Symbol 8 Sound {ClickButtonSound}
Symbol 9 Sound {OverButtonSound}
Symbol 10 Sound {BallJumpSound}
Symbol 11 Sound {JumpPlatformSound}
Symbol 12 Sound {LevelSound}
Symbol 13 Sound {sfxBell}
Symbol 14 Sound {CarSound}
Symbol 15 Sound {CheckBoxSound}
Symbol 16 Sound {BallDownSound}
Symbol 17 Sound {GameLoop1}
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClip {PlayerDiePart}Uses:18
Symbol 20 GraphicUsed by:23
Symbol 21 GraphicUsed by:23
Symbol 22 GraphicUsed by:23
Symbol 23 MovieClip {PlayerBox}Uses:20 21 22
Symbol 24 GraphicUsed by:26
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClipUses:24 25Used by:88
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClipUses:27Used by:29
Symbol 29 MovieClipUses:28Used by:33 685  Timeline
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClipUses:30Used by:32
Symbol 32 MovieClipUses:31Used by:33 685  Timeline
Symbol 33 MovieClip {BackGround}Uses:29 32Used by:88 126 171 197 209 238 274 293 337 370 384 425 452 493 536 572 601
Symbol 34 ShapeTweeningUsed by:38
Symbol 35 GraphicUsed by:38
Symbol 36 GraphicUsed by:38
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClipUses:34 35 36 37Used by:88 126 171 197 209 238 274 293 337 370 384 425 452 493 536 572 601
Symbol 39 GraphicUsed by:43
Symbol 40 BitmapUsed by:41 64 411 417 480 511 554
Symbol 41 GraphicUses:40Used by:43
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClipUses:39 41 42Used by:88
Symbol 44 GraphicUsed by:50
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:50 53 56 59 91 94 97 108 115 118 134 156 163 174 177 180 188 193 215 231 250 268 271 297 300 303 308 313 330 340 343 346 361 367 373 376 381 397 403 406 409 416 422 441 447 455 458 478 485 497 503 506 520 528 539 547 550 562 565 568 582 598 752
Symbol 47 GraphicUsed by:50
Symbol 48 GraphicUsed by:49
Symbol 49 MovieClipUses:48Used by:50 56 94 163 174 193 203 208 215 268 297 300 330 346 373 376 381 397 422 427 432 434 441 447 503 506 528 539 547 562 565 582 598
Symbol 50 MovieClipUses:44 46 47 49Used by:88
Symbol 51 GraphicUsed by:53
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClipUses:51 46 52Used by:88
Symbol 54 GraphicUsed by:56
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClipUses:54 46 55 49Used by:88
Symbol 57 GraphicUsed by:59
Symbol 58 GraphicUsed by:59
Symbol 59 MovieClipUses:57 46 58Used by:88
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClip {Shipik}Uses:60Used by:62 88 171 274 293 425 493 766
Symbol 62 MovieClip {Ships10}Uses:61Used by:88 126 171 238 274 337 370 384 425 493 536 572 766
Symbol 63 GraphicUsed by:66
Symbol 64 GraphicUses:40Used by:66
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClipUses:63 64 65Used by:88
Symbol 67 GraphicUsed by:71
Symbol 68 BitmapUsed by:69 73 110 144 148 182 217 235 281 315 348 352 356 363 386 390 436 469 487 515 529 541 589 593 755
Symbol 69 GraphicUses:68Used by:71
Symbol 70 GraphicUsed by:71
Symbol 71 MovieClipUses:67 69 70Used by:88
Symbol 72 GraphicUsed by:75 532
Symbol 73 GraphicUses:68Used by:75
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClipUses:72 73 74Used by:88 766
Symbol 76 GraphicUsed by:77
Symbol 77 MovieClipUses:76Used by:88 766
Symbol 78 FontUsed by:79 80 125 127 169 194 195 196 198 199 200 206 210 272 273 275 291 292 294 332 368 369 382 383 424 448 449 450 451 492 494 531 535 571 576 599 600 686 687 688 689 690 693 694 695 698 699 700 705 706 707 708 711 712 713 714 717 718 719 720 724 725 726 727 728 729 730 731 734 737 743 744 767 769 771 772 773 779 780 781 782 783 786 787 788 789 792 793 794 795 797 798 799 800 804 805
Symbol 79 EditableTextUses:78Used by:88
Symbol 80 EditableTextUses:78Used by:88
Symbol 81 ShapeTweeningUsed by:85
Symbol 82 GraphicUsed by:85
Symbol 83 GraphicUsed by:85
Symbol 84 GraphicUsed by:85
Symbol 85 MovieClipUses:81 82 83 84Used by:88 126 171 197 209 238 274 293 337 370 384 425 452 493 536 572 601
Symbol 86 GraphicUsed by:87
Symbol 87 Button {King.com}Uses:86Used by:88 293 806  Timeline
Symbol 88 MovieClip {Levels.Level_12}Uses:26 33 38 43 50 53 56 59 62 61 66 71 75 77 79 80 85 87
Symbol 89 GraphicUsed by:91
Symbol 90 GraphicUsed by:91
Symbol 91 MovieClipUses:89 46 90Used by:126
Symbol 92 GraphicUsed by:94
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:92 46 93 49Used by:126 766
Symbol 95 GraphicUsed by:97
Symbol 96 GraphicUsed by:97
Symbol 97 MovieClipUses:95 46 96Used by:126
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClipUses:98Used by:126 766
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClipUses:100Used by:126 766
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClipUses:102Used by:126
Symbol 104 GraphicUsed by:105
Symbol 105 MovieClipUses:104Used by:126
Symbol 106 GraphicUsed by:108
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClipUses:106 46 107Used by:126
Symbol 109 GraphicUsed by:112
Symbol 110 GraphicUses:68Used by:112
Symbol 111 GraphicUsed by:112
Symbol 112 MovieClipUses:109 110 111Used by:126
Symbol 113 GraphicUsed by:115 367 419
Symbol 114 GraphicUsed by:115
Symbol 115 MovieClipUses:113 46 114Used by:126 766
Symbol 116 GraphicUsed by:118
Symbol 117 GraphicUsed by:118
Symbol 118 MovieClipUses:116 46 117Used by:126
Symbol 119 GraphicUsed by:124
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClipUses:120Used by:122 161 290 306 324 500 509 523
Symbol 122 MovieClipUses:121Used by:124 222 228 253 258 379 400 444 461 464 467 475 553 559 575 579 585
Symbol 123 GraphicUsed by:124
Symbol 124 MovieClipUses:119 122 123Used by:126
Symbol 125 EditableTextUses:78Used by:126
Symbol 126 MovieClip {Levels.Level_8}Uses:33 38 91 94 97 62 99 101 103 105 108 112 115 118 124 125 85
Symbol 127 EditableTextUses:78Used by:171
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClipUses:128Used by:171 766
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130Used by:171 766
Symbol 132 GraphicUsed by:134
Symbol 133 GraphicUsed by:134
Symbol 134 MovieClipUses:132 46 133Used by:171
Symbol 135 GraphicUsed by:139
Symbol 136 GraphicUsed by:137
Symbol 137 MovieClipUses:136Used by:139 142
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClipUses:135 137 138Used by:171 766
Symbol 140 GraphicUsed by:142
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClipUses:140 137 141Used by:171 766
Symbol 143 GraphicUsed by:146 163 290 308
Symbol 144 GraphicUses:68Used by:146 588
Symbol 145 GraphicUsed by:146
Symbol 146 MovieClipUses:143 144 145Used by:171 766
Symbol 147 GraphicUsed by:150
Symbol 148 GraphicUses:68Used by:150
Symbol 149 GraphicUsed by:150
Symbol 150 MovieClipUses:147 148 149Used by:171
Symbol 151 GraphicUsed by:153
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClipUses:151 152Used by:171 572
Symbol 154 GraphicUsed by:156
Symbol 155 GraphicUsed by:156
Symbol 156 MovieClipUses:154 46 155Used by:171
Symbol 157 GraphicUsed by:158
Symbol 158 MovieClipUses:157Used by:171
Symbol 159 GraphicUsed by:161
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClipUses:159 121 160Used by:171
Symbol 162 GraphicUsed by:163
Symbol 163 MovieClipUses:143 46 162 49Used by:171 766
Symbol 164 GraphicUsed by:165
Symbol 165 MovieClipUses:164Used by:171
Symbol 166 GraphicUsed by:167
Symbol 167 MovieClipUses:166Used by:171
Symbol 168 GraphicUsed by:170
Symbol 169 EditableTextUses:78Used by:170
Symbol 170 MovieClipUses:168 169Used by:171 766
Symbol 171 MovieClip {Levels.Level_15}Uses:33 127 38 129 131 134 139 142 146 150 153 156 158 85 61 62 161 163 165 167 170
Symbol 172 GraphicUsed by:174 381 556 591
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClipUses:172 46 173 49Used by:197 766
Symbol 175 GraphicUsed by:177
Symbol 176 GraphicUsed by:177
Symbol 177 MovieClipUses:175 46 176Used by:197
Symbol 178 GraphicUsed by:180
Symbol 179 GraphicUsed by:180
Symbol 180 MovieClipUses:178 46 179Used by:197
Symbol 181 GraphicUsed by:185
Symbol 182 GraphicUses:68Used by:185
Symbol 183 GraphicUsed by:185
Symbol 184 GraphicUsed by:185
Symbol 185 MovieClipUses:181 182 183 184Used by:197
Symbol 186 GraphicUsed by:188
Symbol 187 GraphicUsed by:188
Symbol 188 MovieClipUses:186 46 187Used by:197
Symbol 189 GraphicUsed by:190
Symbol 190 MovieClipUses:189Used by:197 766
Symbol 191 GraphicUsed by:193
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClipUses:191 46 192 49Used by:197
Symbol 194 EditableTextUses:78Used by:197
Symbol 195 EditableTextUses:78Used by:197
Symbol 196 EditableTextUses:78Used by:197
Symbol 197 MovieClip {Levels.Level_4}Uses:33 174 177 180 185 188 190 38 193 194 195 196 85
Symbol 198 EditableTextUses:78Used by:209
Symbol 199 EditableTextUses:78Used by:209
Symbol 200 EditableTextUses:78Used by:209
Symbol 201 GraphicUsed by:203
Symbol 202 GraphicUsed by:203
Symbol 203 MovieClipUses:201 202 49Used by:209
Symbol 204 GraphicUsed by:205
Symbol 205 MovieClipUses:204Used by:209 766
Symbol 206 EditableTextUses:78Used by:209
Symbol 207 GraphicUsed by:208
Symbol 208 MovieClipUses:207 49Used by:209 766
Symbol 209 MovieClip {Levels.Level_1}Uses:33 198 199 200 203 205 206 208 38 85
Symbol 210 EditableTextUses:78Used by:238
Symbol 211 GraphicUsed by:212
Symbol 212 MovieClipUses:211Used by:238 766
Symbol 213 GraphicUsed by:215
Symbol 214 GraphicUsed by:215
Symbol 215 MovieClipUses:213 46 214 49Used by:238 766
Symbol 216 GraphicUsed by:219
Symbol 217 GraphicUses:68Used by:219
Symbol 218 GraphicUsed by:219
Symbol 219 MovieClipUses:216 217 218Used by:238
Symbol 220 GraphicUsed by:222
Symbol 221 GraphicUsed by:222
Symbol 222 MovieClipUses:220 122 221Used by:238
Symbol 223 GraphicUsed by:225
Symbol 224 GraphicUsed by:225
Symbol 225 MovieClipUses:223 224Used by:238 425 601
Symbol 226 GraphicUsed by:228
Symbol 227 GraphicUsed by:228
Symbol 228 MovieClipUses:226 122 227Used by:238
Symbol 229 GraphicUsed by:231
Symbol 230 GraphicUsed by:231
Symbol 231 MovieClipUses:229 46 230Used by:238
Symbol 232 GraphicUsed by:233
Symbol 233 MovieClipUses:232Used by:238
Symbol 234 GraphicUsed by:237
Symbol 235 GraphicUses:68Used by:237
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:234 235 236Used by:238
Symbol 238 MovieClip {Levels.Level_13}Uses:33 210 38 85 212 215 219 222 225 228 231 233 237 62
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:274 766
Symbol 241 GraphicUsed by:242
Symbol 242 MovieClipUses:241Used by:274 766
Symbol 243 GraphicUsed by:245
Symbol 244 GraphicUsed by:245
Symbol 245 MovieClipUses:243 244Used by:274
Symbol 246 GraphicUsed by:247
Symbol 247 MovieClipUses:246Used by:274 766
Symbol 248 GraphicUsed by:250
Symbol 249 GraphicUsed by:250
Symbol 250 MovieClipUses:248 46 249Used by:274
Symbol 251 GraphicUsed by:253
Symbol 252 GraphicUsed by:253
Symbol 253 MovieClipUses:251 122 252Used by:274
Symbol 254 GraphicUsed by:255
Symbol 255 MovieClipUses:254Used by:274 766
Symbol 256 GraphicUsed by:258
Symbol 257 GraphicUsed by:258
Symbol 258 MovieClipUses:256 122 257Used by:274
Symbol 259 GraphicUsed by:260
Symbol 260 MovieClipUses:259Used by:274
Symbol 261 GraphicUsed by:263
Symbol 262 GraphicUsed by:263
Symbol 263 MovieClipUses:261 262Used by:274
Symbol 264 GraphicUsed by:265
Symbol 265 MovieClipUses:264Used by:274
Symbol 266 GraphicUsed by:268
Symbol 267 GraphicUsed by:268
Symbol 268 MovieClipUses:266 46 267 49Used by:274
Symbol 269 GraphicUsed by:271
Symbol 270 GraphicUsed by:271
Symbol 271 MovieClipUses:269 46 270Used by:274
Symbol 272 EditableTextUses:78Used by:274
Symbol 273 EditableTextUses:78Used by:274
Symbol 274 MovieClip {Levels.Level_11}Uses:33 240 242 245 247 250 253 255 258 62 260 263 38 265 268 271 61 272 85 273
Symbol 275 EditableTextUses:78Used by:293
Symbol 276 GraphicUsed by:277
Symbol 277 MovieClipUses:276Used by:293
Symbol 278 GraphicUsed by:279
Symbol 279 MovieClipUses:278Used by:293
Symbol 280 GraphicUsed by:284
Symbol 281 GraphicUses:68Used by:284
Symbol 282 GraphicUsed by:284
Symbol 283 GraphicUsed by:284
Symbol 284 MovieClipUses:280 281 282 283Used by:293
Symbol 285 GraphicUsed by:286
Symbol 286 MovieClipUses:285Used by:293
Symbol 287 GraphicUsed by:288
Symbol 288 MovieClipUses:287Used by:293
Symbol 289 GraphicUsed by:290
Symbol 290 MovieClipUses:143 121 289Used by:293 766
Symbol 291 EditableTextUses:78Used by:293
Symbol 292 EditableTextUses:78Used by:293
Symbol 293 MovieClip {Levels.Level_17}Uses:33 275 38 85 277 279 284 286 288 61 290 291 87 292
Symbol 294 EditableTextUses:78Used by:337
Symbol 295 GraphicUsed by:297
Symbol 296 GraphicUsed by:297
Symbol 297 MovieClipUses:295 46 296 49Used by:337
Symbol 298 GraphicUsed by:300
Symbol 299 GraphicUsed by:300
Symbol 300 MovieClipUses:298 46 299 49Used by:337
Symbol 301 GraphicUsed by:303
Symbol 302 GraphicUsed by:303
Symbol 303 MovieClipUses:301 46 302Used by:337
Symbol 304 GraphicUsed by:306
Symbol 305 GraphicUsed by:306
Symbol 306 MovieClipUses:304 121 305Used by:337
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClipUses:143 46 307Used by:337 766
Symbol 309 GraphicUsed by:310 423
Symbol 310 MovieClipUses:309Used by:337 766
Symbol 311 GraphicUsed by:313
Symbol 312 GraphicUsed by:313
Symbol 313 MovieClipUses:311 46 312Used by:337
Symbol 314 GraphicUsed by:318
Symbol 315 GraphicUses:68Used by:318
Symbol 316 GraphicUsed by:318
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClipUses:314 315 316 317Used by:337
Symbol 319 GraphicUsed by:321
Symbol 320 GraphicUsed by:321
Symbol 321 MovieClipUses:319 320Used by:337 536 572 601
Symbol 322 GraphicUsed by:324
Symbol 323 GraphicUsed by:324
Symbol 324 MovieClipUses:322 121 323Used by:337
Symbol 325 GraphicUsed by:327
Symbol 326 GraphicUsed by:327
Symbol 327 MovieClipUses:325 326Used by:337
Symbol 328 GraphicUsed by:330
Symbol 329 GraphicUsed by:330
Symbol 330 MovieClipUses:328 46 329 49Used by:337
Symbol 331 GraphicUsed by:333
Symbol 332 EditableTextUses:78Used by:333
Symbol 333 MovieClipUses:331 332Used by:337
Symbol 334 GraphicUsed by:336
Symbol 335 GraphicUsed by:336
Symbol 336 MovieClipUses:334 335Used by:337
Symbol 337 MovieClip {Levels.Level_16}Uses:33 294 38 297 300 303 62 306 308 310 313 318 321 324 327 330 333 85 336
Symbol 338 GraphicUsed by:340
Symbol 339 GraphicUsed by:340
Symbol 340 MovieClipUses:338 46 339Used by:370
Symbol 341 GraphicUsed by:343
Symbol 342 GraphicUsed by:343
Symbol 343 MovieClipUses:341 46 342Used by:370
Symbol 344 GraphicUsed by:346
Symbol 345 GraphicUsed by:346
Symbol 346 MovieClipUses:344 46 345 49Used by:370
Symbol 347 GraphicUsed by:350
Symbol 348 GraphicUses:68Used by:350
Symbol 349 GraphicUsed by:350
Symbol 350 MovieClipUses:347 348 349Used by:370
Symbol 351 GraphicUsed by:354
Symbol 352 GraphicUses:68Used by:354
Symbol 353 GraphicUsed by:354
Symbol 354 MovieClipUses:351 352 353Used by:370
Symbol 355 GraphicUsed by:358
Symbol 356 GraphicUses:68Used by:358
Symbol 357 GraphicUsed by:358
Symbol 358 MovieClipUses:355 356 357Used by:370
Symbol 359 GraphicUsed by:361
Symbol 360 GraphicUsed by:361
Symbol 361 MovieClipUses:359 46 360Used by:370
Symbol 362 GraphicUsed by:365
Symbol 363 GraphicUses:68Used by:365
Symbol 364 GraphicUsed by:365
Symbol 365 MovieClipUses:362 363 364Used by:370 766
Symbol 366 GraphicUsed by:367
Symbol 367 MovieClipUses:113 46 366Used by:370 766
Symbol 368 EditableTextUses:78Used by:370
Symbol 369 EditableTextUses:78Used by:370
Symbol 370 MovieClip {Levels.Level_6}Uses:33 340 38 343 346 350 354 358 361 365 367 368 369 62 85
Symbol 371 GraphicUsed by:373
Symbol 372 GraphicUsed by:373
Symbol 373 MovieClipUses:371 46 372 49Used by:384
Symbol 374 GraphicUsed by:376
Symbol 375 GraphicUsed by:376
Symbol 376 MovieClipUses:374 46 375 49Used by:384
Symbol 377 GraphicUsed by:379
Symbol 378 GraphicUsed by:379
Symbol 379 MovieClipUses:377 122 378Used by:384
Symbol 380 GraphicUsed by:381
Symbol 381 MovieClipUses:172 46 380 49Used by:384 766
Symbol 382 EditableTextUses:78Used by:384
Symbol 383 EditableTextUses:78Used by:384
Symbol 384 MovieClip {Levels.Level_3}Uses:33 38 373 376 379 381 382 383 62 85
Symbol 385 GraphicUsed by:388
Symbol 386 GraphicUses:68Used by:388
Symbol 387 GraphicUsed by:388
Symbol 388 MovieClipUses:385 386 387Used by:425
Symbol 389 GraphicUsed by:392
Symbol 390 GraphicUses:68Used by:392
Symbol 391 GraphicUsed by:392
Symbol 392 MovieClipUses:389 390 391Used by:425
Symbol 393 GraphicUsed by:394
Symbol 394 MovieClipUses:393Used by:425
Symbol 395 GraphicUsed by:397
Symbol 396 GraphicUsed by:397
Symbol 397 MovieClipUses:395 46 396 49Used by:425
Symbol 398 GraphicUsed by:400
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClipUses:398 122 399Used by:425
Symbol 401 GraphicUsed by:403
Symbol 402 GraphicUsed by:403
Symbol 403 MovieClipUses:401 46 402Used by:425
Symbol 404 GraphicUsed by:406
Symbol 405 GraphicUsed by:406
Symbol 406 MovieClipUses:404 46 405Used by:425
Symbol 407 GraphicUsed by:409
Symbol 408 GraphicUsed by:409
Symbol 409 MovieClipUses:407 46 408Used by:425
Symbol 410 GraphicUsed by:413
Symbol 411 GraphicUses:40Used by:413
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClipUses:410 411 412Used by:425
Symbol 414 GraphicUsed by:416
Symbol 415 GraphicUsed by:416
Symbol 416 MovieClipUses:414 46 415Used by:425
Symbol 417 GraphicUses:40Used by:419
Symbol 418 GraphicUsed by:419
Symbol 419 MovieClipUses:113 417 418Used by:425 766
Symbol 420 GraphicUsed by:422
Symbol 421 GraphicUsed by:422
Symbol 422 MovieClipUses:420 46 421 49Used by:425
Symbol 423 MovieClipUses:309Used by:425 766
Symbol 424 EditableTextUses:78Used by:425
Symbol 425 MovieClip {Levels.Level_9}Uses:33 38 388 392 394 397 61 225 400 403 406 409 413 416 419 422 423 62 424 85
Symbol 426 GraphicUsed by:427
Symbol 427 MovieClipUses:426 49Used by:452
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClipUses:428Used by:452
Symbol 430 GraphicUsed by:432
Symbol 431 GraphicUsed by:432
Symbol 432 MovieClipUses:430 431 49Used by:452
Symbol 433 GraphicUsed by:434
Symbol 434 MovieClipUses:433 49Used by:452 766
Symbol 435 GraphicUsed by:438
Symbol 436 GraphicUses:68Used by:438
Symbol 437 GraphicUsed by:438
Symbol 438 MovieClipUses:435 436 437Used by:452 766
Symbol 439 GraphicUsed by:441
Symbol 440 GraphicUsed by:441
Symbol 441 MovieClipUses:439 46 440 49Used by:452
Symbol 442 GraphicUsed by:444
Symbol 443 GraphicUsed by:444
Symbol 444 MovieClipUses:442 122 443Used by:452
Symbol 445 GraphicUsed by:447
Symbol 446 GraphicUsed by:447
Symbol 447 MovieClipUses:445 46 446 49Used by:452
Symbol 448 EditableTextUses:78Used by:452
Symbol 449 EditableTextUses:78Used by:452
Symbol 450 EditableTextUses:78Used by:452
Symbol 451 EditableTextUses:78Used by:452
Symbol 452 MovieClip {Levels.Level_2}Uses:33 38 427 429 432 434 438 441 444 447 448 449 450 85 451
Symbol 453 GraphicUsed by:455
Symbol 454 GraphicUsed by:455
Symbol 455 MovieClipUses:453 46 454Used by:493
Symbol 456 GraphicUsed by:458
Symbol 457 GraphicUsed by:458
Symbol 458 MovieClipUses:456 46 457Used by:493
Symbol 459 GraphicUsed by:461
Symbol 460 GraphicUsed by:461
Symbol 461 MovieClipUses:459 122 460Used by:493
Symbol 462 GraphicUsed by:464
Symbol 463 GraphicUsed by:464
Symbol 464 MovieClipUses:462 122 463Used by:493
Symbol 465 GraphicUsed by:467
Symbol 466 GraphicUsed by:467
Symbol 467 MovieClipUses:465 122 466Used by:493
Symbol 468 GraphicUsed by:472
Symbol 469 GraphicUses:68Used by:472
Symbol 470 GraphicUsed by:472
Symbol 471 GraphicUsed by:472
Symbol 472 MovieClipUses:468 469 470 471Used by:493
Symbol 473 GraphicUsed by:475
Symbol 474 GraphicUsed by:475
Symbol 475 MovieClipUses:473 122 474Used by:493
Symbol 476 GraphicUsed by:478
Symbol 477 GraphicUsed by:478
Symbol 478 MovieClipUses:476 46 477Used by:493
Symbol 479 GraphicUsed by:482
Symbol 480 GraphicUses:40Used by:482
Symbol 481 GraphicUsed by:482
Symbol 482 MovieClipUses:479 480 481Used by:493
Symbol 483 GraphicUsed by:485
Symbol 484 GraphicUsed by:485
Symbol 485 MovieClipUses:483 46 484Used by:493
Symbol 486 GraphicUsed by:489
Symbol 487 GraphicUses:68Used by:489
Symbol 488 GraphicUsed by:489
Symbol 489 MovieClipUses:486 487 488Used by:493 766
Symbol 490 GraphicUsed by:491
Symbol 491 MovieClipUses:490Used by:493
Symbol 492 EditableTextUses:78Used by:493
Symbol 493 MovieClip {Levels.Level_10}Uses:33 38 455 458 461 464 467 472 475 62 478 482 485 61 489 491 492 85
Symbol 494 EditableTextUses:78Used by:536
Symbol 495 GraphicUsed by:497
Symbol 496 GraphicUsed by:497
Symbol 497 MovieClipUses:495 46 496Used by:536
Symbol 498 GraphicUsed by:500
Symbol 499 GraphicUsed by:500
Symbol 500 MovieClipUses:498 121 499Used by:536
Symbol 501 GraphicUsed by:503
Symbol 502 GraphicUsed by:503
Symbol 503 MovieClipUses:501 46 502 49Used by:536 766
Symbol 504 GraphicUsed by:506
Symbol 505 GraphicUsed by:506
Symbol 506 MovieClipUses:504 46 505 49Used by:536
Symbol 507 GraphicUsed by:509
Symbol 508 GraphicUsed by:509
Symbol 509 MovieClipUses:507 121 508Used by:536
Symbol 510 GraphicUsed by:513
Symbol 511 GraphicUses:40Used by:513
Symbol 512 GraphicUsed by:513
Symbol 513 MovieClipUses:510 511 512Used by:536 766
Symbol 514 GraphicUsed by:517
Symbol 515 GraphicUses:68Used by:517
Symbol 516 GraphicUsed by:517
Symbol 517 MovieClipUses:514 515 516Used by:536 766
Symbol 518 GraphicUsed by:520
Symbol 519 GraphicUsed by:520
Symbol 520 MovieClipUses:518 46 519Used by:536
Symbol 521 GraphicUsed by:523
Symbol 522 GraphicUsed by:523
Symbol 523 MovieClipUses:521 121 522Used by:536
Symbol 524 GraphicUsed by:525
Symbol 525 MovieClipUses:524Used by:536
Symbol 526 GraphicUsed by:528
Symbol 527 GraphicUsed by:528
Symbol 528 MovieClipUses:526 46 527 49Used by:536
Symbol 529 GraphicUses:68Used by:532
Symbol 530 GraphicUsed by:532
Symbol 531 EditableTextUses:78Used by:532
Symbol 532 MovieClipUses:72 529 530 531Used by:536 766
Symbol 533 GraphicUsed by:534
Symbol 534 MovieClipUses:533Used by:536
Symbol 535 EditableTextUses:78Used by:536
Symbol 536 MovieClip {Levels.Level_14}Uses:33 494 38 85 497 62 500 503 506 509 513 517 520 523 525 528 321 532 534 535
Symbol 537 GraphicUsed by:539
Symbol 538 GraphicUsed by:539
Symbol 539 MovieClipUses:537 46 538 49Used by:572
Symbol 540 GraphicUsed by:544
Symbol 541 GraphicUses:68Used by:544
Symbol 542 GraphicUsed by:544
Symbol 543 GraphicUsed by:544
Symbol 544 MovieClipUses:540 541 542 543Used by:572
Symbol 545 GraphicUsed by:547
Symbol 546 GraphicUsed by:547
Symbol 547 MovieClipUses:545 46 546 49Used by:572
Symbol 548 GraphicUsed by:550
Symbol 549 GraphicUsed by:550
Symbol 550 MovieClipUses:548 46 549Used by:572 766
Symbol 551 GraphicUsed by:553
Symbol 552 GraphicUsed by:553
Symbol 553 MovieClipUses:551 122 552Used by:572
Symbol 554 GraphicUses:40Used by:556
Symbol 555 GraphicUsed by:556
Symbol 556 MovieClipUses:172 554 555Used by:572 766
Symbol 557 GraphicUsed by:559
Symbol 558 GraphicUsed by:559
Symbol 559 MovieClipUses:557 122 558Used by:572
Symbol 560 GraphicUsed by:562
Symbol 561 GraphicUsed by:562
Symbol 562 MovieClipUses:560 46 561 49Used by:572
Symbol 563 GraphicUsed by:565
Symbol 564 GraphicUsed by:565
Symbol 565 MovieClipUses:563 46 564 49Used by:572
Symbol 566 GraphicUsed by:568
Symbol 567 GraphicUsed by:568
Symbol 568 MovieClipUses:566 46 567Used by:572
Symbol 569 GraphicUsed by:570
Symbol 570 MovieClipUses:569Used by:572
Symbol 571 EditableTextUses:78Used by:572
Symbol 572 MovieClip {Levels.Level_7}Uses:33 38 539 544 547 550 553 153 556 559 562 565 62 568 321 570 571 85
Symbol 573 GraphicUsed by:575
Symbol 574 GraphicUsed by:575
Symbol 575 MovieClipUses:573 122 574Used by:601
Symbol 576 EditableTextUses:78Used by:601
Symbol 577 GraphicUsed by:579
Symbol 578 GraphicUsed by:579
Symbol 579 MovieClipUses:577 122 578Used by:601
Symbol 580 GraphicUsed by:582
Symbol 581 GraphicUsed by:582
Symbol 582 MovieClipUses:580 46 581 49Used by:601 766
Symbol 583 GraphicUsed by:585
Symbol 584 GraphicUsed by:585
Symbol 585 MovieClipUses:583 122 584Used by:601
Symbol 586 GraphicUsed by:588
Symbol 587 GraphicUsed by:588
Symbol 588 MovieClipUses:586 144 587Used by:601 766
Symbol 589 GraphicUses:68Used by:591
Symbol 590 GraphicUsed by:591
Symbol 591 MovieClipUses:172 589 590Used by:601 766
Symbol 592 GraphicUsed by:595
Symbol 593 GraphicUses:68Used by:595
Symbol 594 GraphicUsed by:595
Symbol 595 MovieClipUses:592 593 594Used by:601
Symbol 596 GraphicUsed by:598
Symbol 597 GraphicUsed by:598
Symbol 598 MovieClipUses:596 46 597 49Used by:601
Symbol 599 EditableTextUses:78Used by:601
Symbol 600 EditableTextUses:78Used by:601
Symbol 601 MovieClip {Levels.Level_5}Uses:33 575 321 225 38 576 579 582 585 588 591 595 598 599 600 85
Symbol 602 GraphicUsed by:606
Symbol 603 GraphicUsed by:606
Symbol 604 GraphicUsed by:606
Symbol 605 GraphicUsed by:606
Symbol 606 MovieClip {LevelButton}Uses:602 603 604 605
Symbol 607 BitmapUsed by:608
Symbol 608 GraphicUses:607Used by:653
Symbol 609 BitmapUsed by:610
Symbol 610 GraphicUses:609Used by:653
Symbol 611 BitmapUsed by:612
Symbol 612 GraphicUses:611Used by:653
Symbol 613 BitmapUsed by:614
Symbol 614 GraphicUses:613Used by:653
Symbol 615 BitmapUsed by:616
Symbol 616 GraphicUses:615Used by:653
Symbol 617 BitmapUsed by:618
Symbol 618 GraphicUses:617Used by:653
Symbol 619 BitmapUsed by:620
Symbol 620 GraphicUses:619Used by:653
Symbol 621 BitmapUsed by:622
Symbol 622 GraphicUses:621Used by:653
Symbol 623 BitmapUsed by:624
Symbol 624 GraphicUses:623Used by:653
Symbol 625 BitmapUsed by:626
Symbol 626 GraphicUses:625Used by:653
Symbol 627 BitmapUsed by:628
Symbol 628 GraphicUses:627Used by:653
Symbol 629 BitmapUsed by:630
Symbol 630 GraphicUses:629Used by:653
Symbol 631 BitmapUsed by:632
Symbol 632 GraphicUses:631Used by:653
Symbol 633 BitmapUsed by:634
Symbol 634 GraphicUses:633Used by:653
Symbol 635 BitmapUsed by:636
Symbol 636 GraphicUses:635Used by:653
Symbol 637 BitmapUsed by:638
Symbol 638 GraphicUses:637Used by:653
Symbol 639 BitmapUsed by:640
Symbol 640 GraphicUses:639Used by:653
Symbol 641 BitmapUsed by:642
Symbol 642 GraphicUses:641Used by:653
Symbol 643 BitmapUsed by:644
Symbol 644 GraphicUses:643Used by:653
Symbol 645 BitmapUsed by:646
Symbol 646 GraphicUses:645Used by:653
Symbol 647 BitmapUsed by:648
Symbol 648 GraphicUses:647Used by:653
Symbol 649 BitmapUsed by:650
Symbol 650 GraphicUses:649Used by:653
Symbol 651 BitmapUsed by:652
Symbol 652 GraphicUses:651Used by:653
Symbol 653 MovieClip {spark}Uses:608 610 612 614 616 618 620 622 624 626 628 630 632 634 636 638 640 642 644 646 648 650 652
Symbol 654 BitmapUsed by:655
Symbol 655 GraphicUses:654Used by:656
Symbol 656 MovieClip {libGlow}Uses:655
Symbol 657 BitmapUsed by:658
Symbol 658 GraphicUses:657Used by:659
Symbol 659 MovieClip {mcGlimmer}Uses:658
Symbol 660 VideoUsed by:662
Symbol 661 SoundUsed by:662
Symbol 662 MovieClip {mcDragon}Uses:660 661
Symbol 663 VideoUsed by:664
Symbol 664 MovieClip {movie_fla.mcFireLogo_4}Uses:663Used by:677
Symbol 665 GraphicUsed by:666
Symbol 666 MovieClipUses:665Used by:669
Symbol 667 FontUsed by:668
Symbol 668 EditableTextUses:667Used by:669
Symbol 669 MovieClipUses:666 668Used by:677
Symbol 670 BitmapUsed by:671
Symbol 671 GraphicUses:670Used by:676
Symbol 672 BitmapUsed by:673
Symbol 673 GraphicUses:672Used by:676
Symbol 674 BitmapUsed by:675
Symbol 675 GraphicUses:674Used by:676
Symbol 676 MovieClip {movie_fla.mcPlayBtn_7}Uses:671 673 675Used by:677
Symbol 677 MovieClip {com.midasplayer.DragonLoader}Uses:664 669 676Used by:Timeline
Symbol 678 GraphicUsed by:685
Symbol 679 GraphicUsed by:680
Symbol 680 MovieClipUses:679Used by:681
Symbol 681 MovieClipUses:680Used by:685  Timeline
Symbol 682 GraphicUsed by:685
Symbol 683 GraphicUsed by:684
Symbol 684 MovieClipUses:683Used by:685
Symbol 685 MovieClipUses:678 29 32 681 682 684Used by:Timeline
Symbol 686 EditableTextUses:78Used by:Timeline
Symbol 687 EditableTextUses:78Used by:692
Symbol 688 EditableTextUses:78Used by:692
Symbol 689 EditableTextUses:78Used by:692
Symbol 690 EditableTextUses:78Used by:692
Symbol 691 GraphicUsed by:692
Symbol 692 ButtonUses:687 688 689 690 691Used by:Timeline
Symbol 693 EditableTextUses:78Used by:697
Symbol 694 EditableTextUses:78Used by:697
Symbol 695 EditableTextUses:78Used by:697
Symbol 696 GraphicUsed by:697
Symbol 697 ButtonUses:693 694 695 696Used by:Timeline
Symbol 698 EditableTextUses:78Used by:702
Symbol 699 EditableTextUses:78Used by:702
Symbol 700 EditableTextUses:78Used by:702
Symbol 701 GraphicUsed by:702
Symbol 702 ButtonUses:698 699 700 701Used by:Timeline
Symbol 703 FontUsed by:704
Symbol 704 EditableTextUses:703Used by:Timeline
Symbol 705 EditableTextUses:78Used by:710
Symbol 706 EditableTextUses:78Used by:710
Symbol 707 EditableTextUses:78Used by:710
Symbol 708 EditableTextUses:78Used by:710
Symbol 709 GraphicUsed by:710 721
Symbol 710 ButtonUses:705 706 707 708 709Used by:Timeline
Symbol 711 EditableTextUses:78Used by:716
Symbol 712 EditableTextUses:78Used by:716
Symbol 713 EditableTextUses:78Used by:716
Symbol 714 EditableTextUses:78Used by:716
Symbol 715 GraphicUsed by:716
Symbol 716 ButtonUses:711 712 713 714 715Used by:Timeline
Symbol 717 EditableTextUses:78Used by:721
Symbol 718 EditableTextUses:78Used by:721
Symbol 719 EditableTextUses:78Used by:721
Symbol 720 EditableTextUses:78Used by:721
Symbol 721 ButtonUses:717 718 719 720 709Used by:Timeline
Symbol 722 GraphicUsed by:723
Symbol 723 MovieClipUses:722Used by:Timeline
Symbol 724 EditableTextUses:78Used by:Timeline
Symbol 725 EditableTextUses:78Used by:Timeline
Symbol 726 EditableTextUses:78Used by:Timeline
Symbol 727 EditableTextUses:78Used by:Timeline
Symbol 728 EditableTextUses:78Used by:Timeline
Symbol 729 EditableTextUses:78Used by:733
Symbol 730 EditableTextUses:78Used by:733
Symbol 731 EditableTextUses:78Used by:733
Symbol 732 GraphicUsed by:733
Symbol 733 ButtonUses:729 730 731 732Used by:Timeline
Symbol 734 EditableTextUses:78Used by:Timeline
Symbol 735 GraphicUsed by:736
Symbol 736 MovieClipUses:735Used by:Timeline
Symbol 737 EditableTextUses:78Used by:Timeline
Symbol 738 GraphicUsed by:739
Symbol 739 MovieClipUses:738Used by:Timeline
Symbol 740 BitmapUsed by:742
Symbol 741 BitmapUsed by:742
Symbol 742 GraphicUses:740 741Used by:Timeline
Symbol 743 EditableTextUses:78Used by:Timeline
Symbol 744 EditableTextUses:78Used by:Timeline
Symbol 745 GraphicUsed by:766
Symbol 746 GraphicUsed by:766
Symbol 747 GraphicUsed by:766
Symbol 748 GraphicUsed by:766
Symbol 749 GraphicUsed by:766
Symbol 750 GraphicUsed by:752
Symbol 751 GraphicUsed by:752
Symbol 752 MovieClipUses:750 46 751Used by:766
Symbol 753 GraphicUsed by:766
Symbol 754 GraphicUsed by:757
Symbol 755 GraphicUses:68Used by:757
Symbol 756 GraphicUsed by:757
Symbol 757 MovieClipUses:754 755 756Used by:766
Symbol 758 GraphicUsed by:766
Symbol 759 GraphicUsed by:766
Symbol 760 GraphicUsed by:766
Symbol 761 GraphicUsed by:762
Symbol 762 MovieClipUses:761Used by:766
Symbol 763 GraphicUsed by:766
Symbol 764 GraphicUsed by:766
Symbol 765 GraphicUsed by:766
Symbol 766 MovieClipUses:745 746 205 208 747 748 434 438 381 62 174 190 749 582 588 591 365 367 550 556 94 99 101 115 419 423 61 489 752 240 242 247 255 753 757 75 77 212 215 758 759 503 513 517 532 760 762 129 131 139 142 146 163 170 763 308 310 764 290 765Used by:Timeline
Symbol 767 EditableTextUses:78Used by:Timeline
Symbol 768 GraphicUsed by:770
Symbol 769 EditableTextUses:78Used by:770
Symbol 770 MovieClipUses:768 769Used by:Timeline
Symbol 771 EditableTextUses:78Used by:Timeline
Symbol 772 EditableTextUses:78Used by:774
Symbol 773 EditableTextUses:78Used by:774
Symbol 774 MovieClipUses:772 773Used by:806
Symbol 775 GraphicUsed by:777
Symbol 776 GraphicUsed by:777
Symbol 777 MovieClip {SoundCheck}Uses:775 776Used by:806
Symbol 778 GraphicUsed by:803
Symbol 779 EditableTextUses:78Used by:803
Symbol 780 EditableTextUses:78Used by:785
Symbol 781 EditableTextUses:78Used by:785
Symbol 782 EditableTextUses:78Used by:785
Symbol 783 EditableTextUses:78Used by:785
Symbol 784 GraphicUsed by:785
Symbol 785 ButtonUses:780 781 782 783 784Used by:803
Symbol 786 EditableTextUses:78Used by:791
Symbol 787 EditableTextUses:78Used by:791
Symbol 788 EditableTextUses:78Used by:791
Symbol 789 EditableTextUses:78Used by:791
Symbol 790 GraphicUsed by:791
Symbol 791 ButtonUses:786 787 788 789 790Used by:803
Symbol 792 EditableTextUses:78Used by:796
Symbol 793 EditableTextUses:78Used by:796
Symbol 794 EditableTextUses:78Used by:796
Symbol 795 EditableTextUses:78Used by:796
Symbol 796 ButtonUses:792 793 794 795Used by:803
Symbol 797 EditableTextUses:78Used by:802
Symbol 798 EditableTextUses:78Used by:802
Symbol 799 EditableTextUses:78Used by:802
Symbol 800 EditableTextUses:78Used by:802
Symbol 801 GraphicUsed by:802
Symbol 802 ButtonUses:797 798 799 800 801Used by:803
Symbol 803 MovieClip {movie_fla.PauseSprite_84}Uses:778 779 785 791 796 802Used by:806
Symbol 804 EditableTextUses:78Used by:806
Symbol 805 EditableTextUses:78Used by:806
Symbol 806 MovieClip {Game}Uses:774 777 803 804 87 805Used by:Timeline

Instance Names

"mcLoadLogoBg"Frame 1Symbol 5 MovieClip
"mcKingLoader"Frame 2Symbol 677 MovieClip {com.midasplayer.DragonLoader}
"playButton"Frame 3Symbol 692 Button
"moreGamesButton"Frame 3Symbol 697 Button
"creditsButton"Frame 3Symbol 702 Button
"downloadButton"Frame 3Symbol 710 Button
"walkthroughButton"Frame 3Symbol 716 Button
"kingLogo1"Frame 3Symbol 87 Button {King.com}
"highscoreButton"Frame 3Symbol 721 Button
"EFText"Frame 4Symbol 727 EditableText
"backButton"Frame 4Symbol 733 Button
"EFLogo"Frame 4Symbol 739 MovieClip
"kingLogo"Frame 4Symbol 87 Button {King.com}
"showLevel"Frame 5Symbol 766 MovieClip
"levelText"Frame 5Symbol 767 EditableText
"kingLevelsLabel"Frame 5Symbol 770 MovieClip
"kingLevels"Frame 5Symbol 87 Button {King.com}
"highscoreAvailableText"Frame 5Symbol 771 EditableText
"bar"Symbol 5 MovieClip Frame 1Symbol 4 MovieClip
"killStar"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 26 MovieClip
"backGroundMC"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 38 MovieClip
"box0"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 43 MovieClip
"box1"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 43 MovieClip
"box2"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 43 MovieClip
"steps"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 50 MovieClip
"boxPlatform"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 53 MovieClip
"mainPlatform"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 56 MovieClip
"ceil"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 59 MovieClip
"bigBox"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 66 MovieClip
"rampa"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 71 MovieClip
"roll1"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 75 MovieClip
"roll2"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 75 MovieClip
"goPlat"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 77 MovieClip
"fiveMoreLevelsText"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 80 EditableText
"checkPoint0"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 85 MovieClip
"checkPoint2"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 85 MovieClip
"checkPoint3"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 85 MovieClip
"kingLogo"Symbol 88 MovieClip {Levels.Level_12} Frame 1Symbol 87 Button {King.com}
"backGroundMC"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 38 MovieClip
"firstRampa"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 91 MovieClip
"pol"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 94 MovieClip
"potolok1"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 97 MovieClip
"shipik3"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"shipik2"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"shipik1"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"shipik4"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"shipik5"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"shipik6"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"koleco1"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 99 MovieClip
"koleco2"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 99 MovieClip
"car"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 101 MovieClip
"killSpusk"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 103 MovieClip
"killSpusk2"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 105 MovieClip
"potolok2"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 108 MovieClip
"killer1"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 112 MovieClip
"killer2"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 112 MovieClip
"potolok3"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 108 MovieClip
"killer3"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 112 MovieClip
"potolok4"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 115 MovieClip
"finishPlatform"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 118 MovieClip
"shipik7"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"shipik7"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"shipik8"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"shipik9"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"shipik10"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"shipik11"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 62 MovieClip {Ships10}
"barier"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 124 MovieClip
"checkPoint0"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 126 MovieClip {Levels.Level_8} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 38 MovieClip
"skateWheel11"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 129 MovieClip
"skateWheel12"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 129 MovieClip
"skateBoard1"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 131 MovieClip
"rampa2"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 134 MovieClip
"shopLeftSide"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 139 MovieClip
"shopRightSide"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 142 MovieClip
"step1"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 146 MovieClip
"step2"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 146 MovieClip
"step3"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 146 MovieClip
"redGate"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 150 MovieClip
"redCheck"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 153 MovieClip
"finishPlat"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 156 MovieClip
"barier"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 158 MovieClip
"checkPoint2"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 85 MovieClip
"checkPoint0"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 85 MovieClip
"movePlatform"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 161 MovieClip
"underShop"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 163 MovieClip
"killLine"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 165 MovieClip
"luk"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 167 MovieClip
"checkPoint1"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 85 MovieClip
"money"Symbol 171 MovieClip {Levels.Level_15} Frame 1Symbol 170 MovieClip
"backGroundMC"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 33 MovieClip {BackGround}
"mainPlatform"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 174 MovieClip
"firstFloor"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 177 MovieClip
"secondFloor1"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 180 MovieClip
"killBoom1"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 185 MovieClip
"killBoom2"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 185 MovieClip
"secondFloor2"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 180 MovieClip
"killBoom3"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 185 MovieClip
"secondFloor3"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 180 MovieClip
"step"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 188 MovieClip
"axePlatform"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 174 MovieClip
"axe1"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 190 MovieClip
"axe2"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 190 MovieClip
"levelAim"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 38 MovieClip
"dropPlatform"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 193 MovieClip
"checkPoint1"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 85 MovieClip
"checkPoint0"Symbol 197 MovieClip {Levels.Level_4} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 209 MovieClip {Levels.Level_1} Frame 1Symbol 33 MovieClip {BackGround}
"startPlatform"Symbol 209 MovieClip {Levels.Level_1} Frame 1Symbol 203 MovieClip
"barier"Symbol 209 MovieClip {Levels.Level_1} Frame 1Symbol 205 MovieClip
"exitPlatform"Symbol 209 MovieClip {Levels.Level_1} Frame 1Symbol 208 MovieClip
"levelAim"Symbol 209 MovieClip {Levels.Level_1} Frame 1Symbol 38 MovieClip
"checkPoint0"Symbol 209 MovieClip {Levels.Level_1} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 38 MovieClip
"checkPoint0"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 85 MovieClip
"kingStar1"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 212 MovieClip
"mainPlat"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 215 MovieClip
"skyLeft"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 219 MovieClip
"movePlat1"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 222 MovieClip
"checkPoint1"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 85 MovieClip
"greenCheck"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 225 MovieClip
"greenBarier"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 228 MovieClip
"movePlat2"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 222 MovieClip
"checkPoint2"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 85 MovieClip
"pereval"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 231 MovieClip
"pereval2"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 231 MovieClip
"killStar1"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 233 MovieClip
"killStar2"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 233 MovieClip
"skyRight"Symbol 238 MovieClip {Levels.Level_13} Frame 1Symbol 237 MovieClip
"backGroundMC"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 33 MovieClip {BackGround}
"vagon11"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 240 MovieClip
"koleso_11_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_11_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"vagon10"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 240 MovieClip
"koleso_10_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_10_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"vagon9"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 245 MovieClip
"koleso_9_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_9_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"vagon8"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 240 MovieClip
"koleso_8_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_8_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"vagon7"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 240 MovieClip
"koleso_7_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_7_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"vagon6"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 240 MovieClip
"koleso_6_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_6_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"vagon5"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 245 MovieClip
"koleso_5_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_5_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"vagon4"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 245 MovieClip
"koleso_4_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_4_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"vagon3"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 245 MovieClip
"koleso_3_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_3_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"vagon2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 240 MovieClip
"koleso_2_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_2_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"vagon1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 240 MovieClip
"koleso_1_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"koleso_1_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"kolesoTrain2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"kolesoTrain1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 242 MovieClip
"train"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 247 MovieClip
"platform"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 250 MovieClip
"ceil1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 253 MovieClip
"killCeil1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 255 MovieClip
"ceil2_1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 258 MovieClip
"ceil2_2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 258 MovieClip
"killRotate"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 260 MovieClip
"killStar1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 263 MovieClip
"killStar2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 263 MovieClip
"killStar0"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 263 MovieClip
"levelAim"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 38 MovieClip
"killBrevno0"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 265 MovieClip
"killBrevno1"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 265 MovieClip
"killBrevno2"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 265 MovieClip
"killBrevno3"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 265 MovieClip
"triangle"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 268 MovieClip
"upCeil"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 271 MovieClip
"checkPoint0"Symbol 274 MovieClip {Levels.Level_11} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 38 MovieClip
"checkPoint0"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 85 MovieClip
"kingCrown1"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 277 MovieClip
"kingCrown2"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 279 MovieClip
"jumpPlatform1"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 284 MovieClip
"killStarPart"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 286 MovieClip
"star"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 288 MovieClip
"checkPoint1"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 85 MovieClip
"movePlatform1"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 290 MovieClip
"movePlatform2"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 290 MovieClip
"kingLogo"Symbol 293 MovieClip {Levels.Level_17} Frame 1Symbol 87 Button {King.com}
"backGroundMC"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 38 MovieClip
"firstPlat"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 297 MovieClip
"plat1"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 300 MovieClip
"plat2"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 303 MovieClip
"movePlatform1"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 306 MovieClip
"movePlatform2"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 306 MovieClip
"dangerPlato"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 308 MovieClip
"killRollBall1"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 310 MovieClip
"bluePlato"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 313 MovieClip
"jumpPlatform1"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 318 MovieClip
"blueCheck1"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 321 MovieClip
"blueCheck2"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 321 MovieClip
"blueCheck3"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 321 MovieClip
"killRollBall2"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 310 MovieClip
"dropPlatform"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 324 MovieClip
"axe1"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 327 MovieClip
"finishPlato"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 330 MovieClip
"wrongWay"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 333 MovieClip
"checkPoint0"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 85 MovieClip
"checkPoint2"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 85 MovieClip
"strelka"Symbol 337 MovieClip {Levels.Level_16} Frame 1Symbol 336 MovieClip
"backGroundMC"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 33 MovieClip {BackGround}
"rampa"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 340 MovieClip
"levelAim"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 38 MovieClip
"drop1"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 343 MovieClip
"drop2"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 343 MovieClip
"drop3"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 343 MovieClip
"afterJump"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 346 MovieClip
"spin"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 350 MovieClip
"voronkaLeft"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 354 MovieClip
"voronkaRight"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 358 MovieClip
"rampa2"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 361 MovieClip
"backBall1"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 365 MovieClip
"backBall2"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 365 MovieClip
"backBall3"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 365 MovieClip
"finishPlatform"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 367 MovieClip
"beforeBackBalls"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 346 MovieClip
"checkPoint0"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 370 MovieClip {Levels.Level_6} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 38 MovieClip
"firstPlatform"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 373 MovieClip
"shipPlatform1"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 376 MovieClip
"shipPlatform2"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 376 MovieClip
"movePlatform1"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 379 MovieClip
"movePlatform2"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 379 MovieClip
"exitPlatform"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 381 MovieClip
"ship1"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 62 MovieClip {Ships10}
"ship3"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 62 MovieClip {Ships10}
"ship2"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 62 MovieClip {Ships10}
"checkPoint0"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 384 MovieClip {Levels.Level_3} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 38 MovieClip
"firstCrank"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 388 MovieClip
"secondCrank"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 392 MovieClip
"boomCrank"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 394 MovieClip
"firstBigPlatform"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 397 MovieClip
"greenCheck1"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 225 MovieClip
"greenCheck2"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 225 MovieClip
"greenCheck3"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 225 MovieClip
"greenPlatform"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 400 MovieClip
"lowPlatform"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 403 MovieClip
"upPlatform"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 406 MovieClip
"middlePlatform"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 409 MovieClip
"jumpBall1"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 413 MovieClip
"jumpBall2"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 413 MovieClip
"jumpBall3"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 413 MovieClip
"finishPlatform"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 416 MovieClip
"bridgeElement1"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 419 MovieClip
"bridgeElement2"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 419 MovieClip
"bridgeElement3"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 419 MovieClip
"bridgeElement4"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 419 MovieClip
"bridgeElement5"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 419 MovieClip
"bridgeElement6"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 419 MovieClip
"bridgeElement7"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 419 MovieClip
"bridgeElement8"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 419 MovieClip
"bridgeElement9"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 419 MovieClip
"bridgeElement10"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 419 MovieClip
"low2Platform"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 422 MovieClip
"killRollBall"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 423 MovieClip
"checkPoint0"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 85 MovieClip
"checkPoint2"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 85 MovieClip
"checkPoint3"Symbol 425 MovieClip {Levels.Level_9} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 38 MovieClip
"firstPlatform"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 427 MovieClip
"triangleBarier"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 429 MovieClip
"platformTriangle"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 432 MovieClip
"ballPlatform"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 434 MovieClip
"kickBall"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 438 MovieClip
"jump1"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 441 MovieClip
"movePlatform"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 444 MovieClip
"exitPlatform"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 447 MovieClip
"checkPoint1"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 85 MovieClip
"checkPoint0"Symbol 452 MovieClip {Levels.Level_2} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 38 MovieClip
"firstPlatform"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 455 MovieClip
"barierPlatform"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 458 MovieClip
"firstBarier"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 461 MovieClip
"secondBarier"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 464 MovieClip
"thirdBarier"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 467 MovieClip
"jumpPlatform1"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 472 MovieClip
"jumpPlatform2"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 472 MovieClip
"jumpPlatform3"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 472 MovieClip
"forthBarier"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 475 MovieClip
"afterJump"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 478 MovieClip
"cube1"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 482 MovieClip
"cube2"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 482 MovieClip
"cube3"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 482 MovieClip
"mainRampa"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 485 MovieClip
"goBall"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 489 MovieClip
"roundBlock"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 491 MovieClip
"checkPoint0"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 85 MovieClip
"checkPoint2"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 85 MovieClip
"checkPoint3"Symbol 493 MovieClip {Levels.Level_10} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 38 MovieClip
"checkPoint0"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 85 MovieClip
"firstPlatform"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 497 MovieClip
"movePlatform1"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 500 MovieClip
"catapultPlat"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 503 MovieClip
"floor"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 506 MovieClip
"bluePlat"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 509 MovieClip
"catapult"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 513 MovieClip
"catapultOpora"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 517 MovieClip
"checkPoint1"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 85 MovieClip
"checkPlat"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 520 MovieClip
"dropPlat"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 523 MovieClip
"killRollBall"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 525 MovieClip
"finishPlat"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 528 MovieClip
"blueCheck"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 321 MovieClip
"ball40"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 532 MovieClip
"barier"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 534 MovieClip
"backGroundMC"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 33 MovieClip {BackGround}
"levelAim"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 38 MovieClip
"firstPlatform"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 539 MovieClip
"jumpPlatform1"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 544 MovieClip
"bigPlatform"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 547 MovieClip
"potolok"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 550 MovieClip
"movePlatform1"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 553 MovieClip
"movePlatform2"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 553 MovieClip
"redCheck"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 153 MovieClip
"box1"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box2"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box3"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box4"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box5"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box6"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box7"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box8"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box9"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box10"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box11"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box12"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box13"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box14"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box15"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box16"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box17"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"box18"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 556 MovieClip
"redWall"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 559 MovieClip
"endPlatform"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 539 MovieClip
"jumpPlatform2"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 544 MovieClip
"triangle"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 562 MovieClip
"vanna"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 565 MovieClip
"bigMovePlatform"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 553 MovieClip
"kill1"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 62 MovieClip {Ships10}
"kill2"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 62 MovieClip {Ships10}
"kill3"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 62 MovieClip {Ships10}
"kill4"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 62 MovieClip {Ships10}
"bluePlatform"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 568 MovieClip
"blueCheck"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 321 MovieClip
"shipik1"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 62 MovieClip {Ships10}
"shipik2"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 62 MovieClip {Ships10}
"star"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 570 MovieClip
"shipik3"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 62 MovieClip {Ships10}
"shipik4"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 62 MovieClip {Ships10}
"shipik5"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 62 MovieClip {Ships10}
"checkPoint0"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 85 MovieClip
"checkPoint2"Symbol 572 MovieClip {Levels.Level_7} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 33 MovieClip {BackGround}
"greenPlatform"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 575 MovieClip
"blueCheck"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 321 MovieClip
"greenCheck"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 225 MovieClip
"levelAim"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 38 MovieClip
"blueBarier"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 579 MovieClip
"mainPlatform"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 582 MovieClip
"rightBarier"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 585 MovieClip
"littleBall"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 588 MovieClip
"jumpPlatform"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 591 MovieClip
"bigBall"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 595 MovieClip
"firstPlatform"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 598 MovieClip
"checkPoint0"Symbol 601 MovieClip {Levels.Level_5} Frame 1Symbol 85 MovieClip
"bg"Symbol 669 MovieClip Frame 1Symbol 666 MovieClip
"fireLogoHolder"Symbol 677 MovieClip {com.midasplayer.DragonLoader} Frame 1Symbol 664 MovieClip {movie_fla.mcFireLogo_4}
"bannedSign"Symbol 677 MovieClip {com.midasplayer.DragonLoader} Frame 1Symbol 669 MovieClip
"mcPlayBtn"Symbol 677 MovieClip {com.midasplayer.DragonLoader} Frame 1Symbol 676 MovieClip {movie_fla.mcPlayBtn_7}
"barier"Symbol 766 MovieClip Frame 1Symbol 205 MovieClip
"exitPlatform"Symbol 766 MovieClip Frame 1Symbol 208 MovieClip
"ballPlatform"Symbol 766 MovieClip Frame 2Symbol 434 MovieClip
"kickBall"Symbol 766 MovieClip Frame 2Symbol 438 MovieClip
"exitPlatform"Symbol 766 MovieClip Frame 3Symbol 381 MovieClip
"ship3"Symbol 766 MovieClip Frame 3Symbol 62 MovieClip {Ships10}
"axePlatform"Symbol 766 MovieClip Frame 4Symbol 174 MovieClip
"axe1"Symbol 766 MovieClip Frame 4Symbol 190 MovieClip
"mainPlatform"Symbol 766 MovieClip Frame 5Symbol 582 MovieClip
"littleBall"Symbol 766 MovieClip Frame 5Symbol 588 MovieClip
"jumpPlatform"Symbol 766 MovieClip Frame 5Symbol 591 MovieClip
"backBall2"Symbol 766 MovieClip Frame 6Symbol 365 MovieClip
"backBall3"Symbol 766 MovieClip Frame 6Symbol 365 MovieClip
"finishPlatform"Symbol 766 MovieClip Frame 6Symbol 367 MovieClip
"potolok"Symbol 766 MovieClip Frame 7Symbol 550 MovieClip
"box1"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box2"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box3"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box4"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box5"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box6"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box7"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box8"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box9"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box10"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box11"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box12"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box13"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box14"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box15"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box16"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box17"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"box18"Symbol 766 MovieClip Frame 7Symbol 556 MovieClip
"shipik4"Symbol 766 MovieClip Frame 7Symbol 62 MovieClip {Ships10}
"shipik5"Symbol 766 MovieClip Frame 7Symbol 62 MovieClip {Ships10}
"shipik4"Symbol 766 MovieClip Frame 7Symbol 62 MovieClip {Ships10}
"pol"Symbol 766 MovieClip Frame 8Symbol 94 MovieClip
"koleco1"Symbol 766 MovieClip Frame 8Symbol 99 MovieClip
"koleco2"Symbol 766 MovieClip Frame 8Symbol 99 MovieClip
"car"Symbol 766 MovieClip Frame 8Symbol 101 MovieClip
"potolok4"Symbol 766 MovieClip Frame 8Symbol 115 MovieClip
"bridgeElement3"Symbol 766 MovieClip Frame 9Symbol 419 MovieClip
"bridgeElement4"Symbol 766 MovieClip Frame 9Symbol 419 MovieClip
"bridgeElement5"Symbol 766 MovieClip Frame 9Symbol 419 MovieClip
"bridgeElement6"Symbol 766 MovieClip Frame 9Symbol 419 MovieClip
"bridgeElement7"Symbol 766 MovieClip Frame 9Symbol 419 MovieClip
"bridgeElement8"Symbol 766 MovieClip Frame 9Symbol 419 MovieClip
"killRollBall"Symbol 766 MovieClip Frame 9Symbol 423 MovieClip
"goBall"Symbol 766 MovieClip Frame 10Symbol 489 MovieClip
"vagon2"Symbol 766 MovieClip Frame 11Symbol 240 MovieClip
"koleso_2_2"Symbol 766 MovieClip Frame 11Symbol 242 MovieClip
"koleso_2_1"Symbol 766 MovieClip Frame 11Symbol 242 MovieClip
"vagon1"Symbol 766 MovieClip Frame 11Symbol 240 MovieClip
"koleso_1_2"Symbol 766 MovieClip Frame 11Symbol 242 MovieClip
"koleso_1_1"Symbol 766 MovieClip Frame 11Symbol 242 MovieClip
"kolesoTrain2"Symbol 766 MovieClip Frame 11Symbol 242 MovieClip
"kolesoTrain1"Symbol 766 MovieClip Frame 11Symbol 242 MovieClip
"train"Symbol 766 MovieClip Frame 11Symbol 247 MovieClip
"killCeil1"Symbol 766 MovieClip Frame 11Symbol 255 MovieClip
"rampa"Symbol 766 MovieClip Frame 12Symbol 757 MovieClip
"roll1"Symbol 766 MovieClip Frame 12Symbol 75 MovieClip
"roll2"Symbol 766 MovieClip Frame 12Symbol 75 MovieClip
"goPlat"Symbol 766 MovieClip Frame 12Symbol 77 MovieClip
"kingStar1"Symbol 766 MovieClip Frame 13Symbol 212 MovieClip
"mainPlat"Symbol 766 MovieClip Frame 13Symbol 215 MovieClip
"catapultPlat"Symbol 766 MovieClip Frame 14Symbol 503 MovieClip
"catapult"Symbol 766 MovieClip Frame 14Symbol 513 MovieClip
"catapultOpora"Symbol 766 MovieClip Frame 14Symbol 517 MovieClip
"ball40"Symbol 766 MovieClip Frame 14Symbol 532 MovieClip
"skateWheel11"Symbol 766 MovieClip Frame 15Symbol 129 MovieClip
"skateWheel12"Symbol 766 MovieClip Frame 15Symbol 129 MovieClip
"skateBoard1"Symbol 766 MovieClip Frame 15Symbol 131 MovieClip
"shopLeftSide"Symbol 766 MovieClip Frame 15Symbol 139 MovieClip
"shopRightSide"Symbol 766 MovieClip Frame 15Symbol 142 MovieClip
"step1"Symbol 766 MovieClip Frame 15Symbol 146 MovieClip
"step2"Symbol 766 MovieClip Frame 15Symbol 146 MovieClip
"underShop"Symbol 766 MovieClip Frame 15Symbol 163 MovieClip
"money"Symbol 766 MovieClip Frame 15Symbol 170 MovieClip
"dangerPlato"Symbol 766 MovieClip Frame 16Symbol 308 MovieClip
"killRollBall1"Symbol 766 MovieClip Frame 16Symbol 310 MovieClip
"pauseText"Symbol 803 MovieClip {movie_fla.PauseSprite_84} Frame 1Symbol 779 EditableText
"returnButton"Symbol 803 MovieClip {movie_fla.PauseSprite_84} Frame 1Symbol 785 Button
"backToMenuButton"Symbol 803 MovieClip {movie_fla.PauseSprite_84} Frame 1Symbol 791 Button
"walkButton"Symbol 803 MovieClip {movie_fla.PauseSprite_84} Frame 1Symbol 796 Button
"kingGamesButton"Symbol 803 MovieClip {movie_fla.PauseSprite_84} Frame 1Symbol 802 Button
"quitText"Symbol 806 MovieClip {Game} Frame 1Symbol 774 MovieClip
"soundCheck"Symbol 806 MovieClip {Game} Frame 1Symbol 777 MovieClip {SoundCheck}
"pauseSprite"Symbol 806 MovieClip {Game} Frame 1Symbol 803 MovieClip {movie_fla.PauseSprite_84}
"scoreText"Symbol 806 MovieClip {Game} Frame 1Symbol 804 EditableText
"kingGameButton"Symbol 806 MovieClip {Game} Frame 1Symbol 87 Button {King.com}
"menuButton"Symbol 806 MovieClip {Game} Frame 1Symbol 805 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata not present, AS3.

Labels

"menu_main"Frame 3
"credits"Frame 4
"menu_select_level"Frame 5
"game"Frame 6
"loop"Symbol 653 MovieClip {spark} Frame 10
"idle"Symbol 676 MovieClip {movie_fla.mcPlayBtn_7} Frame 1
"over"Symbol 676 MovieClip {movie_fla.mcPlayBtn_7} Frame 2
"down"Symbol 676 MovieClip {movie_fla.mcPlayBtn_7} Frame 3




http://swfchan.com/42/207578/info.shtml
Created: 9/10 -2018 10:52:25 Last modified: 9/10 -2018 10:52:25 Server time: 21/10 -2018 21:12:09