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

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

Red-Ball.swf

This is the info page for
Flash #108179

(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 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>

<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

<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 10: Red ball on the ball</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>

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

Level 16: Short cut

Wrong way!

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 8: Car</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

<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>

Level 15: Shop burglary

<p align="left"><font face="Kronika" size="16" color="#333333" letterSpacing="0.000000" kerning="1">$</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 14: Catapult

1 ton

Use "R" to restart

<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>

<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>

Level 13: Pakman

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.01</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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; 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.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; 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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; 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.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; 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.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Collision.Shapes.*; 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.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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.*; import Box2D.Common.Math.*; import Box2D.Collision.Shapes.*; 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.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; 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.Collision.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Common.Math.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; 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.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; 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); scaleTimer = new Timer(1000, 0); scaleTimer.addEventListener(TimerEvent.TIMER, scaleTimerHandler); 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; 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.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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.*; import Box2D.Dynamics.Joints.*; 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){ 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)) && (KingAPI.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.Collision.*; import Box2D.Dynamics.*; 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.*; import Box2D.Common.Math.*; import Box2D.Dynamics.*; import Box2D.Dynamics.Joints.*; import Box2D.Collision.Shapes.*; 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 stageLoaderInfo:LoaderInfo; public static var stageLink:Stage; public function Preloader(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5); stage.showDefaultContextMenu = false; stageLoaderInfo = loaderInfo; stageLink = stage; mySo = SharedObject.getLocal("RedBall", "/"); if (mySo.data.levelsAvaiable){ levelsAvaiable = mySo.data.levelsAvaiable; if (((!(KingAPI.isHome)) && ((levelsAvaiable > 12)))){ levelsAvaiable = 12; }; } else { levelsAvaiable = 1; }; } 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)) && (KingAPI.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 (((KingAPI.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:25
Symbol 25 MovieClipUses:24Used by:26
Symbol 26 MovieClipUses:25Used by:30 685  Timeline
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClipUses:27Used by:29
Symbol 29 MovieClipUses:28Used by:30 685  Timeline
Symbol 30 MovieClip {BackGround}Uses:26 29Used by:87 125 164 205 248 287 328 355 389 401 434 474 493 536 561 575 601
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClipUses:31Used by:87 766
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClipUses:33Used by:87 766
Symbol 35 GraphicUsed by:37
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:35 36Used by:87
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:87 766
Symbol 40 GraphicUsed by:44
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClipUses:41Used by:44 75 78 103 122 136 139 142 145 167 170 190 197 218 224 227 230 237 244 251 259 262 277 280 283 291 294 297 303 307 321 344 350 358 361 364 375 381 384 404 407 410 425 431 442 459 466 497 503 506 520 528 538 541 544 552 557 564 567 572 581 594 752
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:40 42 43Used by:87
Symbol 45 GraphicUsed by:50
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClipUses:46Used by:48 300 315 464 490 500 509 523
Symbol 48 MovieClipUses:47Used by:50 55 90 100 106 173 176 179 187 221 265 274 347 387 570 588 591
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClipUses:45 48 49Used by:87
Symbol 51 GraphicUsed by:52
Symbol 52 MovieClipUses:51Used by:87 766
Symbol 53 GraphicUsed by:55
Symbol 54 GraphicUsed by:55
Symbol 55 MovieClipUses:53 48 54Used by:87
Symbol 56 GraphicUsed by:57
Symbol 57 MovieClip {Shipik}Uses:56Used by:58 87 164 205 248 474 493 766
Symbol 58 MovieClip {Ships10}Uses:57Used by:87 164 205 248 287 328 389 434 474 536 575 601 766
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClipUses:59Used by:87
Symbol 61 GraphicUsed by:63
Symbol 62 GraphicUsed by:63
Symbol 63 MovieClipUses:61 62Used by:87
Symbol 64 ShapeTweeningUsed by:68
Symbol 65 GraphicUsed by:68
Symbol 66 GraphicUsed by:68
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:64 65 66 67Used by:87 125 164 205 248 287 328 355 389 401 434 474 493 536 561 575 601
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClipUses:69Used by:87
Symbol 71 GraphicUsed by:75
Symbol 72 GraphicUsed by:75
Symbol 73 GraphicUsed by:74
Symbol 74 MovieClipUses:73Used by:75 103 122 136 142 218 244 251 259 277 280 291 294 321 330 335 337 344 350 361 395 400 410 466 503 506 528 538 557 564 567 572 581
Symbol 75 MovieClipUses:71 42 72 74Used by:87
Symbol 76 GraphicUsed by:78
Symbol 77 GraphicUsed by:78
Symbol 78 MovieClipUses:76 42 77Used by:87
Symbol 79 FontUsed by:80 86 97 123 124 160 161 204 247 286 288 323 351 352 353 354 388 390 391 392 398 432 433 435 472 475 491 492 494 531 535 558 559 560 573 574 576 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 80 EditableTextUses:79Used by:87
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:87 125 164 205 248 287 328 355 389 401 434 474 493 536 561 575 601
Symbol 86 EditableTextUses:79Used by:87
Symbol 87 MovieClip {Levels.Level_11}Uses:30 32 34 37 39 44 50 52 55 58 60 63 68 70 75 78 57 80 85 86
Symbol 88 GraphicUsed by:90
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:88 48 89Used by:125
Symbol 91 GraphicUsed by:93
Symbol 92 GraphicUsed by:93
Symbol 93 MovieClipUses:91 92Used by:125 287 328 536
Symbol 94 GraphicUsed by:96
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:94 95Used by:125 248 601
Symbol 97 EditableTextUses:79Used by:125
Symbol 98 GraphicUsed by:100
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClipUses:98 48 99Used by:125
Symbol 101 GraphicUsed by:103
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClipUses:101 42 102 74Used by:125 766
Symbol 104 GraphicUsed by:106
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClipUses:104 48 105Used by:125
Symbol 107 GraphicUsed by:111
Symbol 108 BitmapUsed by:109 113 117 151 155 181 199 207 211 253 309 339 377 412 416 420 427 454 481 515 529 546 583 598 755
Symbol 109 GraphicUses:108Used by:111 452
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:107 109 110Used by:125 766
Symbol 112 GraphicUsed by:115 271 538 572
Symbol 113 GraphicUses:108Used by:115
Symbol 114 GraphicUsed by:115
Symbol 115 MovieClipUses:112 113 114Used by:125 766
Symbol 116 GraphicUsed by:119
Symbol 117 GraphicUses:108Used by:119
Symbol 118 GraphicUsed by:119
Symbol 119 MovieClipUses:116 117 118Used by:125
Symbol 120 GraphicUsed by:122
Symbol 121 GraphicUsed by:122
Symbol 122 MovieClipUses:120 42 121 74Used by:125
Symbol 123 EditableTextUses:79Used by:125
Symbol 124 EditableTextUses:79Used by:125
Symbol 125 MovieClip {Levels.Level_5}Uses:30 90 93 96 68 97 100 103 106 111 115 119 122 123 124 85
Symbol 126 GraphicUsed by:128
Symbol 127 GraphicUsed by:128
Symbol 128 MovieClipUses:126 127Used by:164
Symbol 129 GraphicUsed by:133
Symbol 130 BitmapUsed by:131 147 192 232 239 269 511
Symbol 131 GraphicUses:130Used by:133
Symbol 132 GraphicUsed by:133
Symbol 133 MovieClipUses:129 131 132Used by:164
Symbol 134 GraphicUsed by:136
Symbol 135 GraphicUsed by:136
Symbol 136 MovieClipUses:134 42 135 74Used by:164
Symbol 137 GraphicUsed by:139
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClipUses:137 42 138Used by:164
Symbol 140 GraphicUsed by:142
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClipUses:140 42 141 74Used by:164
Symbol 143 GraphicUsed by:145
Symbol 144 GraphicUsed by:145
Symbol 145 MovieClipUses:143 42 144Used by:164
Symbol 146 GraphicUsed by:149
Symbol 147 GraphicUses:130Used by:149
Symbol 148 GraphicUsed by:149
Symbol 149 MovieClipUses:146 147 148Used by:164
Symbol 150 GraphicUsed by:153
Symbol 151 GraphicUses:108Used by:153
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClipUses:150 151 152Used by:164
Symbol 154 GraphicUsed by:157 532
Symbol 155 GraphicUses:108Used by:157
Symbol 156 GraphicUsed by:157
Symbol 157 MovieClipUses:154 155 156Used by:164 766
Symbol 158 GraphicUsed by:159
Symbol 159 MovieClipUses:158Used by:164 766
Symbol 160 EditableTextUses:79Used by:164
Symbol 161 EditableTextUses:79Used by:164
Symbol 162 GraphicUsed by:163
Symbol 163 Button {King.com}Uses:162Used by:164 493 806  Timeline
Symbol 164 MovieClip {Levels.Level_12}Uses:128 30 68 133 136 139 142 145 58 57 149 153 157 159 160 161 85 163
Symbol 165 GraphicUsed by:167
Symbol 166 GraphicUsed by:167
Symbol 167 MovieClipUses:165 42 166Used by:205
Symbol 168 GraphicUsed by:170
Symbol 169 GraphicUsed by:170
Symbol 170 MovieClipUses:168 42 169Used by:205
Symbol 171 GraphicUsed by:173
Symbol 172 GraphicUsed by:173
Symbol 173 MovieClipUses:171 48 172Used by:205
Symbol 174 GraphicUsed by:176
Symbol 175 GraphicUsed by:176
Symbol 176 MovieClipUses:174 48 175Used by:205
Symbol 177 GraphicUsed by:179
Symbol 178 GraphicUsed by:179
Symbol 179 MovieClipUses:177 48 178Used by:205
Symbol 180 GraphicUsed by:184
Symbol 181 GraphicUses:108Used by:184
Symbol 182 GraphicUsed by:184
Symbol 183 GraphicUsed by:184
Symbol 184 MovieClipUses:180 181 182 183Used by:205
Symbol 185 GraphicUsed by:187
Symbol 186 GraphicUsed by:187
Symbol 187 MovieClipUses:185 48 186Used by:205
Symbol 188 GraphicUsed by:190
Symbol 189 GraphicUsed by:190
Symbol 190 MovieClipUses:188 42 189Used by:205
Symbol 191 GraphicUsed by:194
Symbol 192 GraphicUses:130Used by:194
Symbol 193 GraphicUsed by:194
Symbol 194 MovieClipUses:191 192 193Used by:205
Symbol 195 GraphicUsed by:197
Symbol 196 GraphicUsed by:197
Symbol 197 MovieClipUses:195 42 196Used by:205
Symbol 198 GraphicUsed by:201
Symbol 199 GraphicUses:108Used by:201
Symbol 200 GraphicUsed by:201
Symbol 201 MovieClipUses:198 199 200Used by:205 766
Symbol 202 GraphicUsed by:203
Symbol 203 MovieClipUses:202Used by:205
Symbol 204 EditableTextUses:79Used by:205
Symbol 205 MovieClip {Levels.Level_10}Uses:30 68 167 170 173 176 179 184 187 58 190 194 197 57 201 203 204 85
Symbol 206 GraphicUsed by:209
Symbol 207 GraphicUses:108Used by:209
Symbol 208 GraphicUsed by:209
Symbol 209 MovieClipUses:206 207 208Used by:248
Symbol 210 GraphicUsed by:213
Symbol 211 GraphicUses:108Used by:213
Symbol 212 GraphicUsed by:213
Symbol 213 MovieClipUses:210 211 212Used by:248
Symbol 214 GraphicUsed by:215
Symbol 215 MovieClipUses:214Used by:248
Symbol 216 GraphicUsed by:218
Symbol 217 GraphicUsed by:218
Symbol 218 MovieClipUses:216 42 217 74Used by:248
Symbol 219 GraphicUsed by:221
Symbol 220 GraphicUsed by:221
Symbol 221 MovieClipUses:219 48 220Used by:248
Symbol 222 GraphicUsed by:224
Symbol 223 GraphicUsed by:224
Symbol 224 MovieClipUses:222 42 223Used by:248
Symbol 225 GraphicUsed by:227
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:225 42 226Used by:248
Symbol 228 GraphicUsed by:230
Symbol 229 GraphicUsed by:230
Symbol 230 MovieClipUses:228 42 229Used by:248
Symbol 231 GraphicUsed by:234
Symbol 232 GraphicUses:130Used by:234
Symbol 233 GraphicUsed by:234
Symbol 234 MovieClipUses:231 232 233Used by:248
Symbol 235 GraphicUsed by:237
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:235 42 236Used by:248
Symbol 238 GraphicUsed by:241 381 431
Symbol 239 GraphicUses:130Used by:241
Symbol 240 GraphicUsed by:241
Symbol 241 MovieClipUses:238 239 240Used by:248 766
Symbol 242 GraphicUsed by:244
Symbol 243 GraphicUsed by:244
Symbol 244 MovieClipUses:242 42 243 74Used by:248
Symbol 245 GraphicUsed by:246 304
Symbol 246 MovieClipUses:245Used by:248 766
Symbol 247 EditableTextUses:79Used by:248
Symbol 248 MovieClip {Levels.Level_9}Uses:30 68 209 213 215 218 57 96 221 224 227 230 234 237 241 244 246 58 247 85
Symbol 249 GraphicUsed by:251
Symbol 250 GraphicUsed by:251
Symbol 251 MovieClipUses:249 42 250 74Used by:287
Symbol 252 GraphicUsed by:256
Symbol 253 GraphicUses:108Used by:256
Symbol 254 GraphicUsed by:256
Symbol 255 GraphicUsed by:256
Symbol 256 MovieClipUses:252 253 254 255Used by:287
Symbol 257 GraphicUsed by:259
Symbol 258 GraphicUsed by:259
Symbol 259 MovieClipUses:257 42 258 74Used by:287
Symbol 260 GraphicUsed by:262
Symbol 261 GraphicUsed by:262
Symbol 262 MovieClipUses:260 42 261Used by:287 766
Symbol 263 GraphicUsed by:265
Symbol 264 GraphicUsed by:265
Symbol 265 MovieClipUses:263 48 264Used by:287
Symbol 266 GraphicUsed by:268
Symbol 267 GraphicUsed by:268
Symbol 268 MovieClipUses:266 267Used by:287 474
Symbol 269 GraphicUses:130Used by:271
Symbol 270 GraphicUsed by:271
Symbol 271 MovieClipUses:112 269 270Used by:287 766
Symbol 272 GraphicUsed by:274
Symbol 273 GraphicUsed by:274
Symbol 274 MovieClipUses:272 48 273Used by:287
Symbol 275 GraphicUsed by:277
Symbol 276 GraphicUsed by:277
Symbol 277 MovieClipUses:275 42 276 74Used by:287
Symbol 278 GraphicUsed by:280
Symbol 279 GraphicUsed by:280
Symbol 280 MovieClipUses:278 42 279 74Used by:287
Symbol 281 GraphicUsed by:283
Symbol 282 GraphicUsed by:283
Symbol 283 MovieClipUses:281 42 282Used by:287
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:284Used by:287
Symbol 286 EditableTextUses:79Used by:287
Symbol 287 MovieClip {Levels.Level_7}Uses:30 68 251 256 259 262 265 268 271 274 277 280 58 283 93 285 286 85
Symbol 288 EditableTextUses:79Used by:328
Symbol 289 GraphicUsed by:291
Symbol 290 GraphicUsed by:291
Symbol 291 MovieClipUses:289 42 290 74Used by:328
Symbol 292 GraphicUsed by:294
Symbol 293 GraphicUsed by:294
Symbol 294 MovieClipUses:292 42 293 74Used by:328
Symbol 295 GraphicUsed by:297
Symbol 296 GraphicUsed by:297
Symbol 297 MovieClipUses:295 42 296Used by:328
Symbol 298 GraphicUsed by:300
Symbol 299 GraphicUsed by:300
Symbol 300 MovieClipUses:298 47 299Used by:328
Symbol 301 GraphicUsed by:303 452 466 490
Symbol 302 GraphicUsed by:303
Symbol 303 MovieClipUses:301 42 302Used by:328 766
Symbol 304 MovieClipUses:245Used by:328 766
Symbol 305 GraphicUsed by:307
Symbol 306 GraphicUsed by:307
Symbol 307 MovieClipUses:305 42 306Used by:328
Symbol 308 GraphicUsed by:312
Symbol 309 GraphicUses:108Used by:312
Symbol 310 GraphicUsed by:312
Symbol 311 GraphicUsed by:312
Symbol 312 MovieClipUses:308 309 310 311Used by:328
Symbol 313 GraphicUsed by:315
Symbol 314 GraphicUsed by:315
Symbol 315 MovieClipUses:313 47 314Used by:328
Symbol 316 GraphicUsed by:318
Symbol 317 GraphicUsed by:318
Symbol 318 MovieClipUses:316 317Used by:328
Symbol 319 GraphicUsed by:321
Symbol 320 GraphicUsed by:321
Symbol 321 MovieClipUses:319 42 320 74Used by:328
Symbol 322 GraphicUsed by:324
Symbol 323 EditableTextUses:79Used by:324
Symbol 324 MovieClipUses:322 323Used by:328
Symbol 325 GraphicUsed by:327
Symbol 326 GraphicUsed by:327
Symbol 327 MovieClipUses:325 326Used by:328
Symbol 328 MovieClip {Levels.Level_16}Uses:30 288 68 291 294 297 58 300 303 304 307 312 93 315 318 321 324 85 327
Symbol 329 GraphicUsed by:330
Symbol 330 MovieClipUses:329 74Used by:355
Symbol 331 GraphicUsed by:332
Symbol 332 MovieClipUses:331Used by:355
Symbol 333 GraphicUsed by:335
Symbol 334 GraphicUsed by:335
Symbol 335 MovieClipUses:333 334 74Used by:355
Symbol 336 GraphicUsed by:337
Symbol 337 MovieClipUses:336 74Used by:355 766
Symbol 338 GraphicUsed by:341
Symbol 339 GraphicUses:108Used by:341
Symbol 340 GraphicUsed by:341
Symbol 341 MovieClipUses:338 339 340Used by:355 766
Symbol 342 GraphicUsed by:344
Symbol 343 GraphicUsed by:344
Symbol 344 MovieClipUses:342 42 343 74Used by:355
Symbol 345 GraphicUsed by:347
Symbol 346 GraphicUsed by:347
Symbol 347 MovieClipUses:345 48 346Used by:355
Symbol 348 GraphicUsed by:350
Symbol 349 GraphicUsed by:350
Symbol 350 MovieClipUses:348 42 349 74Used by:355
Symbol 351 EditableTextUses:79Used by:355
Symbol 352 EditableTextUses:79Used by:355
Symbol 353 EditableTextUses:79Used by:355
Symbol 354 EditableTextUses:79Used by:355
Symbol 355 MovieClip {Levels.Level_2}Uses:30 68 330 332 335 337 341 344 347 350 351 352 353 85 354
Symbol 356 GraphicUsed by:358
Symbol 357 GraphicUsed by:358
Symbol 358 MovieClipUses:356 42 357Used by:389
Symbol 359 GraphicUsed by:361
Symbol 360 GraphicUsed by:361
Symbol 361 MovieClipUses:359 42 360 74Used by:389 766
Symbol 362 GraphicUsed by:364
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClipUses:362 42 363Used by:389
Symbol 365 GraphicUsed by:366
Symbol 366 MovieClipUses:365Used by:389 766
Symbol 367 GraphicUsed by:368
Symbol 368 MovieClipUses:367Used by:389 766
Symbol 369 GraphicUsed by:370
Symbol 370 MovieClipUses:369Used by:389
Symbol 371 GraphicUsed by:372
Symbol 372 MovieClipUses:371Used by:389
Symbol 373 GraphicUsed by:375
Symbol 374 GraphicUsed by:375
Symbol 375 MovieClipUses:373 42 374Used by:389
Symbol 376 GraphicUsed by:379
Symbol 377 GraphicUses:108Used by:379
Symbol 378 GraphicUsed by:379
Symbol 379 MovieClipUses:376 377 378Used by:389
Symbol 380 GraphicUsed by:381
Symbol 381 MovieClipUses:238 42 380Used by:389 766
Symbol 382 GraphicUsed by:384
Symbol 383 GraphicUsed by:384
Symbol 384 MovieClipUses:382 42 383Used by:389
Symbol 385 GraphicUsed by:387
Symbol 386 GraphicUsed by:387
Symbol 387 MovieClipUses:385 48 386Used by:389
Symbol 388 EditableTextUses:79Used by:389
Symbol 389 MovieClip {Levels.Level_8}Uses:30 68 358 361 364 58 366 368 370 372 375 379 381 384 387 388 85
Symbol 390 EditableTextUses:79Used by:401
Symbol 391 EditableTextUses:79Used by:401
Symbol 392 EditableTextUses:79Used by:401
Symbol 393 GraphicUsed by:395
Symbol 394 GraphicUsed by:395
Symbol 395 MovieClipUses:393 394 74Used by:401
Symbol 396 GraphicUsed by:397
Symbol 397 MovieClipUses:396Used by:401 766
Symbol 398 EditableTextUses:79Used by:401
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClipUses:399 74Used by:401 766
Symbol 401 MovieClip {Levels.Level_1}Uses:30 390 391 392 395 397 398 400 68 85
Symbol 402 GraphicUsed by:404
Symbol 403 GraphicUsed by:404
Symbol 404 MovieClipUses:402 42 403Used by:434
Symbol 405 GraphicUsed by:407
Symbol 406 GraphicUsed by:407
Symbol 407 MovieClipUses:405 42 406Used by:434
Symbol 408 GraphicUsed by:410
Symbol 409 GraphicUsed by:410
Symbol 410 MovieClipUses:408 42 409 74Used by:434
Symbol 411 GraphicUsed by:414
Symbol 412 GraphicUses:108Used by:414
Symbol 413 GraphicUsed by:414
Symbol 414 MovieClipUses:411 412 413Used by:434
Symbol 415 GraphicUsed by:418
Symbol 416 GraphicUses:108Used by:418
Symbol 417 GraphicUsed by:418
Symbol 418 MovieClipUses:415 416 417Used by:434
Symbol 419 GraphicUsed by:422
Symbol 420 GraphicUses:108Used by:422
Symbol 421 GraphicUsed by:422
Symbol 422 MovieClipUses:419 420 421Used by:434
Symbol 423 GraphicUsed by:425
Symbol 424 GraphicUsed by:425
Symbol 425 MovieClipUses:423 42 424Used by:434
Symbol 426 GraphicUsed by:429
Symbol 427 GraphicUses:108Used by:429
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClipUses:426 427 428Used by:434 766
Symbol 430 GraphicUsed by:431
Symbol 431 MovieClipUses:238 42 430Used by:434 766
Symbol 432 EditableTextUses:79Used by:434
Symbol 433 EditableTextUses:79Used by:434
Symbol 434 MovieClip {Levels.Level_6}Uses:30 404 68 407 410 414 418 422 425 429 431 432 433 58 85
Symbol 435 EditableTextUses:79Used by:474
Symbol 436 GraphicUsed by:437
Symbol 437 MovieClipUses:436Used by:474 766
Symbol 438 GraphicUsed by:439
Symbol 439 MovieClipUses:438Used by:474 766
Symbol 440 GraphicUsed by:442
Symbol 441 GraphicUsed by:442
Symbol 442 MovieClipUses:440 42 441Used by:474
Symbol 443 GraphicUsed by:447
Symbol 444 GraphicUsed by:445
Symbol 445 MovieClipUses:444Used by:447 450
Symbol 446 GraphicUsed by:447
Symbol 447 MovieClipUses:443 445 446Used by:474 766
Symbol 448 GraphicUsed by:450
Symbol 449 GraphicUsed by:450
Symbol 450 MovieClipUses:448 445 449Used by:474 766
Symbol 451 GraphicUsed by:452
Symbol 452 MovieClipUses:301 109 451Used by:474 766
Symbol 453 GraphicUsed by:456
Symbol 454 GraphicUses:108Used by:456
Symbol 455 GraphicUsed by:456
Symbol 456 MovieClipUses:453 454 455Used by:474
Symbol 457 GraphicUsed by:459
Symbol 458 GraphicUsed by:459
Symbol 459 MovieClipUses:457 42 458Used by:474
Symbol 460 GraphicUsed by:461
Symbol 461 MovieClipUses:460Used by:474
Symbol 462 GraphicUsed by:464
Symbol 463 GraphicUsed by:464
Symbol 464 MovieClipUses:462 47 463Used by:474
Symbol 465 GraphicUsed by:466
Symbol 466 MovieClipUses:301 42 465 74Used by:474 766
Symbol 467 GraphicUsed by:468
Symbol 468 MovieClipUses:467Used by:474
Symbol 469 GraphicUsed by:470
Symbol 470 MovieClipUses:469Used by:474
Symbol 471 GraphicUsed by:473
Symbol 472 EditableTextUses:79Used by:473
Symbol 473 MovieClipUses:471 472Used by:474 766
Symbol 474 MovieClip {Levels.Level_15}Uses:30 435 68 437 439 442 447 450 452 456 268 459 461 85 57 58 464 466 468 470 473
Symbol 475 EditableTextUses:79Used by:493
Symbol 476 GraphicUsed by:477
Symbol 477 MovieClipUses:476Used by:493
Symbol 478 GraphicUsed by:479
Symbol 479 MovieClipUses:478Used by:493
Symbol 480 GraphicUsed by:484
Symbol 481 GraphicUses:108Used by:484
Symbol 482 GraphicUsed by:484
Symbol 483 GraphicUsed by:484
Symbol 484 MovieClipUses:480 481 482 483Used by:493
Symbol 485 GraphicUsed by:486
Symbol 486 MovieClipUses:485Used by:493
Symbol 487 GraphicUsed by:488
Symbol 488 MovieClipUses:487Used by:493
Symbol 489 GraphicUsed by:490
Symbol 490 MovieClipUses:301 47 489Used by:493 766
Symbol 491 EditableTextUses:79Used by:493
Symbol 492 EditableTextUses:79Used by:493
Symbol 493 MovieClip {Levels.Level_17}Uses:30 475 68 85 477 479 484 486 488 57 490 491 163 492
Symbol 494 EditableTextUses:79Used by:536
Symbol 495 GraphicUsed by:497
Symbol 496 GraphicUsed by:497
Symbol 497 MovieClipUses:495 42 496Used by:536
Symbol 498 GraphicUsed by:500
Symbol 499 GraphicUsed by:500
Symbol 500 MovieClipUses:498 47 499Used by:536
Symbol 501 GraphicUsed by:503
Symbol 502 GraphicUsed by:503
Symbol 503 MovieClipUses:501 42 502 74Used by:536 766
Symbol 504 GraphicUsed by:506
Symbol 505 GraphicUsed by:506
Symbol 506 MovieClipUses:504 42 505 74Used by:536
Symbol 507 GraphicUsed by:509
Symbol 508 GraphicUsed by:509
Symbol 509 MovieClipUses:507 47 508Used by:536
Symbol 510 GraphicUsed by:513
Symbol 511 GraphicUses:130Used by:513
Symbol 512 GraphicUsed by:513
Symbol 513 MovieClipUses:510 511 512Used by:536 766
Symbol 514 GraphicUsed by:517
Symbol 515 GraphicUses:108Used 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 42 519Used by:536
Symbol 521 GraphicUsed by:523
Symbol 522 GraphicUsed by:523
Symbol 523 MovieClipUses:521 47 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 42 527 74Used by:536
Symbol 529 GraphicUses:108Used by:532
Symbol 530 GraphicUsed by:532
Symbol 531 EditableTextUses:79Used by:532
Symbol 532 MovieClipUses:154 529 530 531Used by:536 766
Symbol 533 GraphicUsed by:534
Symbol 534 MovieClipUses:533Used by:536
Symbol 535 EditableTextUses:79Used by:536
Symbol 536 MovieClip {Levels.Level_14}Uses:30 494 68 85 497 58 500 503 506 509 513 517 520 523 525 528 93 532 534 535
Symbol 537 GraphicUsed by:538
Symbol 538 MovieClipUses:112 42 537 74Used by:561 766
Symbol 539 GraphicUsed by:541
Symbol 540 GraphicUsed by:541
Symbol 541 MovieClipUses:539 42 540Used by:561
Symbol 542 GraphicUsed by:544
Symbol 543 GraphicUsed by:544
Symbol 544 MovieClipUses:542 42 543Used by:561
Symbol 545 GraphicUsed by:549
Symbol 546 GraphicUses:108Used by:549
Symbol 547 GraphicUsed by:549
Symbol 548 GraphicUsed by:549
Symbol 549 MovieClipUses:545 546 547 548Used by:561
Symbol 550 GraphicUsed by:552
Symbol 551 GraphicUsed by:552
Symbol 552 MovieClipUses:550 42 551Used by:561
Symbol 553 GraphicUsed by:554
Symbol 554 MovieClipUses:553Used by:561 766
Symbol 555 GraphicUsed by:557
Symbol 556 GraphicUsed by:557
Symbol 557 MovieClipUses:555 42 556 74Used by:561
Symbol 558 EditableTextUses:79Used by:561
Symbol 559 EditableTextUses:79Used by:561
Symbol 560 EditableTextUses:79Used by:561
Symbol 561 MovieClip {Levels.Level_4}Uses:30 538 541 544 549 552 554 68 557 558 559 560 85
Symbol 562 GraphicUsed by:564
Symbol 563 GraphicUsed by:564
Symbol 564 MovieClipUses:562 42 563 74Used by:575
Symbol 565 GraphicUsed by:567
Symbol 566 GraphicUsed by:567
Symbol 567 MovieClipUses:565 42 566 74Used by:575
Symbol 568 GraphicUsed by:570
Symbol 569 GraphicUsed by:570
Symbol 570 MovieClipUses:568 48 569Used by:575
Symbol 571 GraphicUsed by:572
Symbol 572 MovieClipUses:112 42 571 74Used by:575 766
Symbol 573 EditableTextUses:79Used by:575
Symbol 574 EditableTextUses:79Used by:575
Symbol 575 MovieClip {Levels.Level_3}Uses:30 68 564 567 570 572 573 574 58 85
Symbol 576 EditableTextUses:79Used by:601
Symbol 577 GraphicUsed by:578
Symbol 578 MovieClipUses:577Used by:601 766
Symbol 579 GraphicUsed by:581
Symbol 580 GraphicUsed by:581
Symbol 581 MovieClipUses:579 42 580 74Used by:601 766
Symbol 582 GraphicUsed by:585
Symbol 583 GraphicUses:108Used by:585
Symbol 584 GraphicUsed by:585
Symbol 585 MovieClipUses:582 583 584Used by:601
Symbol 586 GraphicUsed by:588
Symbol 587 GraphicUsed by:588
Symbol 588 MovieClipUses:586 48 587Used by:601
Symbol 589 GraphicUsed by:591
Symbol 590 GraphicUsed by:591
Symbol 591 MovieClipUses:589 48 590Used by:601
Symbol 592 GraphicUsed by:594
Symbol 593 GraphicUsed by:594
Symbol 594 MovieClipUses:592 42 593Used by:601
Symbol 595 GraphicUsed by:596
Symbol 596 MovieClipUses:595Used by:601
Symbol 597 GraphicUsed by:600
Symbol 598 GraphicUses:108Used by:600
Symbol 599 GraphicUsed by:600
Symbol 600 MovieClipUses:597 598 599Used by:601
Symbol 601 MovieClip {Levels.Level_13}Uses:30 576 68 85 578 581 585 588 96 591 594 596 600 58
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 26 29 681 682 684Used by:Timeline
Symbol 686 EditableTextUses:79Used by:Timeline
Symbol 687 EditableTextUses:79Used by:692
Symbol 688 EditableTextUses:79Used by:692
Symbol 689 EditableTextUses:79Used by:692
Symbol 690 EditableTextUses:79Used by:692
Symbol 691 GraphicUsed by:692
Symbol 692 ButtonUses:687 688 689 690 691Used by:Timeline
Symbol 693 EditableTextUses:79Used by:697
Symbol 694 EditableTextUses:79Used by:697
Symbol 695 EditableTextUses:79Used by:697
Symbol 696 GraphicUsed by:697
Symbol 697 ButtonUses:693 694 695 696Used by:Timeline
Symbol 698 EditableTextUses:79Used by:702
Symbol 699 EditableTextUses:79Used by:702
Symbol 700 EditableTextUses:79Used 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:79Used by:710
Symbol 706 EditableTextUses:79Used by:710
Symbol 707 EditableTextUses:79Used by:710
Symbol 708 EditableTextUses:79Used by:710
Symbol 709 GraphicUsed by:710 721
Symbol 710 ButtonUses:705 706 707 708 709Used by:Timeline
Symbol 711 EditableTextUses:79Used by:716
Symbol 712 EditableTextUses:79Used by:716
Symbol 713 EditableTextUses:79Used by:716
Symbol 714 EditableTextUses:79Used by:716
Symbol 715 GraphicUsed by:716
Symbol 716 ButtonUses:711 712 713 714 715Used by:Timeline
Symbol 717 EditableTextUses:79Used by:721
Symbol 718 EditableTextUses:79Used by:721
Symbol 719 EditableTextUses:79Used by:721
Symbol 720 EditableTextUses:79Used 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:79Used by:Timeline
Symbol 725 EditableTextUses:79Used by:Timeline
Symbol 726 EditableTextUses:79Used by:Timeline
Symbol 727 EditableTextUses:79Used by:Timeline
Symbol 728 EditableTextUses:79Used by:Timeline
Symbol 729 EditableTextUses:79Used by:733
Symbol 730 EditableTextUses:79Used by:733
Symbol 731 EditableTextUses:79Used by:733
Symbol 732 GraphicUsed by:733
Symbol 733 ButtonUses:729 730 731 732Used by:Timeline
Symbol 734 EditableTextUses:79Used by:Timeline
Symbol 735 GraphicUsed by:736
Symbol 736 MovieClipUses:735Used by:Timeline
Symbol 737 EditableTextUses:79Used 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:79Used by:Timeline
Symbol 744 EditableTextUses:79Used 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 42 751Used by:766
Symbol 753 GraphicUsed by:766
Symbol 754 GraphicUsed by:757
Symbol 755 GraphicUses:108Used 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 397 400 747 748 337 341 572 58 538 554 749 103 111 115 429 431 262 271 361 366 368 381 241 246 57 201 752 32 34 39 52 753 757 157 159 578 581 758 759 503 513 517 532 760 762 437 439 447 450 452 466 473 763 303 304 764 490 765Used by:Timeline
Symbol 767 EditableTextUses:79Used by:Timeline
Symbol 768 GraphicUsed by:770
Symbol 769 EditableTextUses:79Used by:770
Symbol 770 MovieClipUses:768 769Used by:Timeline
Symbol 771 EditableTextUses:79Used by:Timeline
Symbol 772 EditableTextUses:79Used by:774
Symbol 773 EditableTextUses:79Used 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:79Used by:803
Symbol 780 EditableTextUses:79Used by:785
Symbol 781 EditableTextUses:79Used by:785
Symbol 782 EditableTextUses:79Used by:785
Symbol 783 EditableTextUses:79Used by:785
Symbol 784 GraphicUsed by:785
Symbol 785 ButtonUses:780 781 782 783 784Used by:803
Symbol 786 EditableTextUses:79Used by:791
Symbol 787 EditableTextUses:79Used by:791
Symbol 788 EditableTextUses:79Used by:791
Symbol 789 EditableTextUses:79Used by:791
Symbol 790 GraphicUsed by:791
Symbol 791 ButtonUses:786 787 788 789 790Used by:803
Symbol 792 EditableTextUses:79Used by:796
Symbol 793 EditableTextUses:79Used by:796
Symbol 794 EditableTextUses:79Used by:796
Symbol 795 EditableTextUses:79Used by:796
Symbol 796 ButtonUses:792 793 794 795Used by:803
Symbol 797 EditableTextUses:79Used by:802
Symbol 798 EditableTextUses:79Used by:802
Symbol 799 EditableTextUses:79Used by:802
Symbol 800 EditableTextUses:79Used 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:79Used by:806
Symbol 805 EditableTextUses:79Used by:806
Symbol 806 MovieClip {Game}Uses:774 777 803 804 163 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 163 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 163 Button {King.com}
"showLevel"Frame 5Symbol 766 MovieClip
"levelText"Frame 5Symbol 767 EditableText
"kingLevelsLabel"Frame 5Symbol 770 MovieClip
"kingLevels"Frame 5Symbol 163 Button {King.com}
"highscoreAvailableText"Frame 5Symbol 771 EditableText
"bar"Symbol 5 MovieClip Frame 1Symbol 4 MovieClip
"backGroundMC"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 30 MovieClip {BackGround}
"vagon11"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 32 MovieClip
"koleso_11_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_11_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"vagon10"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 32 MovieClip
"koleso_10_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_10_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"vagon9"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 37 MovieClip
"koleso_9_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_9_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"vagon8"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 32 MovieClip
"koleso_8_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_8_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"vagon7"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 32 MovieClip
"koleso_7_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_7_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"vagon6"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 32 MovieClip
"koleso_6_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_6_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"vagon5"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 37 MovieClip
"koleso_5_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_5_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"vagon4"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 37 MovieClip
"koleso_4_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_4_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"vagon3"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 37 MovieClip
"koleso_3_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_3_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"vagon2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 32 MovieClip
"koleso_2_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_2_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"vagon1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 32 MovieClip
"koleso_1_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"koleso_1_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"kolesoTrain2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"kolesoTrain1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 34 MovieClip
"train"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 39 MovieClip
"platform"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 44 MovieClip
"ceil1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 50 MovieClip
"killCeil1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 52 MovieClip
"ceil2_1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 55 MovieClip
"ceil2_2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 55 MovieClip
"killRotate"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 60 MovieClip
"killStar1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 63 MovieClip
"killStar2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 63 MovieClip
"killStar0"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 63 MovieClip
"levelAim"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 68 MovieClip
"killBrevno0"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 70 MovieClip
"killBrevno1"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 70 MovieClip
"killBrevno2"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 70 MovieClip
"killBrevno3"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 70 MovieClip
"triangle"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 75 MovieClip
"upCeil"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 78 MovieClip
"checkPoint0"Symbol 87 MovieClip {Levels.Level_11} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 30 MovieClip {BackGround}
"greenPlatform"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 90 MovieClip
"blueCheck"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 93 MovieClip
"greenCheck"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 96 MovieClip
"levelAim"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 68 MovieClip
"blueBarier"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 100 MovieClip
"mainPlatform"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 103 MovieClip
"rightBarier"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 106 MovieClip
"littleBall"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 111 MovieClip
"jumpPlatform"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 115 MovieClip
"bigBall"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 119 MovieClip
"firstPlatform"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 122 MovieClip
"checkPoint0"Symbol 125 MovieClip {Levels.Level_5} Frame 1Symbol 85 MovieClip
"killStar"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 128 MovieClip
"backGroundMC"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 68 MovieClip
"box0"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 133 MovieClip
"box1"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 133 MovieClip
"box2"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 133 MovieClip
"steps"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 136 MovieClip
"boxPlatform"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 139 MovieClip
"mainPlatform"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 142 MovieClip
"ceil"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 145 MovieClip
"bigBox"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 149 MovieClip
"rampa"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 153 MovieClip
"roll1"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 157 MovieClip
"roll2"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 157 MovieClip
"goPlat"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 159 MovieClip
"fiveMoreLevelsText"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 161 EditableText
"checkPoint0"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 85 MovieClip
"checkPoint2"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 85 MovieClip
"checkPoint3"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 85 MovieClip
"kingLogo"Symbol 164 MovieClip {Levels.Level_12} Frame 1Symbol 163 Button {King.com}
"backGroundMC"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 68 MovieClip
"firstPlatform"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 167 MovieClip
"barierPlatform"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 170 MovieClip
"firstBarier"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 173 MovieClip
"secondBarier"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 176 MovieClip
"thirdBarier"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 179 MovieClip
"jumpPlatform1"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 184 MovieClip
"jumpPlatform2"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 184 MovieClip
"jumpPlatform3"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 184 MovieClip
"forthBarier"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 187 MovieClip
"afterJump"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 190 MovieClip
"cube1"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 194 MovieClip
"cube2"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 194 MovieClip
"cube3"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 194 MovieClip
"mainRampa"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 197 MovieClip
"goBall"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 201 MovieClip
"roundBlock"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 203 MovieClip
"checkPoint0"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 85 MovieClip
"checkPoint2"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 85 MovieClip
"checkPoint3"Symbol 205 MovieClip {Levels.Level_10} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 68 MovieClip
"firstCrank"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 209 MovieClip
"secondCrank"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 213 MovieClip
"boomCrank"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 215 MovieClip
"firstBigPlatform"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 218 MovieClip
"greenCheck1"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 96 MovieClip
"greenCheck2"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 96 MovieClip
"greenCheck3"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 96 MovieClip
"greenPlatform"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 221 MovieClip
"lowPlatform"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 224 MovieClip
"upPlatform"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 227 MovieClip
"middlePlatform"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 230 MovieClip
"jumpBall1"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 234 MovieClip
"jumpBall2"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 234 MovieClip
"jumpBall3"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 234 MovieClip
"finishPlatform"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 237 MovieClip
"bridgeElement1"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 241 MovieClip
"bridgeElement2"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 241 MovieClip
"bridgeElement3"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 241 MovieClip
"bridgeElement4"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 241 MovieClip
"bridgeElement5"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 241 MovieClip
"bridgeElement6"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 241 MovieClip
"bridgeElement7"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 241 MovieClip
"bridgeElement8"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 241 MovieClip
"bridgeElement9"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 241 MovieClip
"bridgeElement10"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 241 MovieClip
"low2Platform"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 244 MovieClip
"killRollBall"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 246 MovieClip
"checkPoint0"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 85 MovieClip
"checkPoint2"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 85 MovieClip
"checkPoint3"Symbol 248 MovieClip {Levels.Level_9} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 68 MovieClip
"firstPlatform"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 251 MovieClip
"jumpPlatform1"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 256 MovieClip
"bigPlatform"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 259 MovieClip
"potolok"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 262 MovieClip
"movePlatform1"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 265 MovieClip
"movePlatform2"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 265 MovieClip
"redCheck"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 268 MovieClip
"box1"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box2"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box3"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box4"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box5"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box6"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box7"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box8"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box9"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box10"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box11"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box12"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box13"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box14"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box15"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box16"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box17"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"box18"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 271 MovieClip
"redWall"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 274 MovieClip
"endPlatform"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 251 MovieClip
"jumpPlatform2"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 256 MovieClip
"triangle"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 277 MovieClip
"vanna"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 280 MovieClip
"bigMovePlatform"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 265 MovieClip
"kill1"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 58 MovieClip {Ships10}
"kill2"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 58 MovieClip {Ships10}
"kill3"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 58 MovieClip {Ships10}
"kill4"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 58 MovieClip {Ships10}
"bluePlatform"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 283 MovieClip
"blueCheck"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 93 MovieClip
"shipik1"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 58 MovieClip {Ships10}
"shipik2"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 58 MovieClip {Ships10}
"star"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 285 MovieClip
"shipik3"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 58 MovieClip {Ships10}
"shipik4"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 58 MovieClip {Ships10}
"shipik5"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 58 MovieClip {Ships10}
"checkPoint0"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 85 MovieClip
"checkPoint2"Symbol 287 MovieClip {Levels.Level_7} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 68 MovieClip
"firstPlat"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 291 MovieClip
"plat1"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 294 MovieClip
"plat2"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 297 MovieClip
"movePlatform1"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 300 MovieClip
"movePlatform2"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 300 MovieClip
"dangerPlato"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 303 MovieClip
"killRollBall1"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 304 MovieClip
"bluePlato"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 307 MovieClip
"jumpPlatform1"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 312 MovieClip
"blueCheck1"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 93 MovieClip
"blueCheck2"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 93 MovieClip
"blueCheck3"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 93 MovieClip
"killRollBall2"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 304 MovieClip
"dropPlatform"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 315 MovieClip
"axe1"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 318 MovieClip
"finishPlato"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 321 MovieClip
"wrongWay"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 324 MovieClip
"checkPoint0"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 85 MovieClip
"checkPoint2"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 85 MovieClip
"strelka"Symbol 328 MovieClip {Levels.Level_16} Frame 1Symbol 327 MovieClip
"backGroundMC"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 68 MovieClip
"firstPlatform"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 330 MovieClip
"triangleBarier"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 332 MovieClip
"platformTriangle"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 335 MovieClip
"ballPlatform"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 337 MovieClip
"kickBall"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 341 MovieClip
"jump1"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 344 MovieClip
"movePlatform"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 347 MovieClip
"exitPlatform"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 350 MovieClip
"checkPoint1"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 85 MovieClip
"checkPoint0"Symbol 355 MovieClip {Levels.Level_2} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 68 MovieClip
"firstRampa"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 358 MovieClip
"pol"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 361 MovieClip
"potolok1"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 364 MovieClip
"shipik3"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"shipik2"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"shipik1"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"shipik4"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"shipik5"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"shipik6"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"koleco1"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 366 MovieClip
"koleco2"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 366 MovieClip
"car"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 368 MovieClip
"killSpusk"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 370 MovieClip
"killSpusk2"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 372 MovieClip
"potolok2"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 375 MovieClip
"killer1"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 379 MovieClip
"killer2"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 379 MovieClip
"potolok3"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 375 MovieClip
"killer3"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 379 MovieClip
"potolok4"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 381 MovieClip
"finishPlatform"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 384 MovieClip
"shipik7"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"shipik7"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"shipik8"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"shipik9"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"shipik10"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"shipik11"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 58 MovieClip {Ships10}
"barier"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 387 MovieClip
"checkPoint0"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 389 MovieClip {Levels.Level_8} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 401 MovieClip {Levels.Level_1} Frame 1Symbol 30 MovieClip {BackGround}
"startPlatform"Symbol 401 MovieClip {Levels.Level_1} Frame 1Symbol 395 MovieClip
"barier"Symbol 401 MovieClip {Levels.Level_1} Frame 1Symbol 397 MovieClip
"exitPlatform"Symbol 401 MovieClip {Levels.Level_1} Frame 1Symbol 400 MovieClip
"levelAim"Symbol 401 MovieClip {Levels.Level_1} Frame 1Symbol 68 MovieClip
"checkPoint0"Symbol 401 MovieClip {Levels.Level_1} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 30 MovieClip {BackGround}
"rampa"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 404 MovieClip
"levelAim"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 68 MovieClip
"drop1"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 407 MovieClip
"drop2"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 407 MovieClip
"drop3"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 407 MovieClip
"afterJump"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 410 MovieClip
"spin"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 414 MovieClip
"voronkaLeft"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 418 MovieClip
"voronkaRight"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 422 MovieClip
"rampa2"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 425 MovieClip
"backBall1"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 429 MovieClip
"backBall2"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 429 MovieClip
"backBall3"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 429 MovieClip
"finishPlatform"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 431 MovieClip
"beforeBackBalls"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 410 MovieClip
"checkPoint0"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 434 MovieClip {Levels.Level_6} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 68 MovieClip
"skateWheel11"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 437 MovieClip
"skateWheel12"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 437 MovieClip
"skateBoard1"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 439 MovieClip
"rampa2"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 442 MovieClip
"shopLeftSide"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 447 MovieClip
"shopRightSide"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 450 MovieClip
"step1"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 452 MovieClip
"step2"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 452 MovieClip
"step3"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 452 MovieClip
"redGate"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 456 MovieClip
"redCheck"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 268 MovieClip
"finishPlat"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 459 MovieClip
"barier"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 461 MovieClip
"checkPoint2"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 85 MovieClip
"checkPoint0"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 85 MovieClip
"movePlatform"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 464 MovieClip
"underShop"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 466 MovieClip
"killLine"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 468 MovieClip
"luk"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 470 MovieClip
"checkPoint1"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 85 MovieClip
"money"Symbol 474 MovieClip {Levels.Level_15} Frame 1Symbol 473 MovieClip
"backGroundMC"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 68 MovieClip
"checkPoint0"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 85 MovieClip
"kingCrown1"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 477 MovieClip
"kingCrown2"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 479 MovieClip
"jumpPlatform1"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 484 MovieClip
"killStarPart"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 486 MovieClip
"star"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 488 MovieClip
"checkPoint1"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 85 MovieClip
"movePlatform1"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 490 MovieClip
"movePlatform2"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 490 MovieClip
"kingLogo"Symbol 493 MovieClip {Levels.Level_17} Frame 1Symbol 163 Button {King.com}
"backGroundMC"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 536 MovieClip {Levels.Level_14} Frame 1Symbol 68 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 93 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 561 MovieClip {Levels.Level_4} Frame 1Symbol 30 MovieClip {BackGround}
"mainPlatform"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 538 MovieClip
"firstFloor"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 541 MovieClip
"secondFloor1"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 544 MovieClip
"killBoom1"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 549 MovieClip
"killBoom2"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 549 MovieClip
"secondFloor2"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 544 MovieClip
"killBoom3"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 549 MovieClip
"secondFloor3"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 544 MovieClip
"step"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 552 MovieClip
"axePlatform"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 538 MovieClip
"axe1"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 554 MovieClip
"axe2"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 554 MovieClip
"levelAim"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 68 MovieClip
"dropPlatform"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 557 MovieClip
"checkPoint1"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 85 MovieClip
"checkPoint0"Symbol 561 MovieClip {Levels.Level_4} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 68 MovieClip
"firstPlatform"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 564 MovieClip
"shipPlatform1"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 567 MovieClip
"shipPlatform2"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 567 MovieClip
"movePlatform1"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 570 MovieClip
"movePlatform2"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 570 MovieClip
"exitPlatform"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 572 MovieClip
"ship1"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 58 MovieClip {Ships10}
"ship3"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 58 MovieClip {Ships10}
"ship2"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 58 MovieClip {Ships10}
"checkPoint0"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 85 MovieClip
"checkPoint1"Symbol 575 MovieClip {Levels.Level_3} Frame 1Symbol 85 MovieClip
"backGroundMC"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 30 MovieClip {BackGround}
"levelAim"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 68 MovieClip
"checkPoint0"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 85 MovieClip
"kingStar1"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 578 MovieClip
"mainPlat"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 581 MovieClip
"skyLeft"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 585 MovieClip
"movePlat1"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 588 MovieClip
"checkPoint1"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 85 MovieClip
"greenCheck"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 96 MovieClip
"greenBarier"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 591 MovieClip
"movePlat2"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 588 MovieClip
"checkPoint2"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 85 MovieClip
"pereval"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 594 MovieClip
"pereval2"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 594 MovieClip
"killStar1"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 596 MovieClip
"killStar2"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 596 MovieClip
"skyRight"Symbol 601 MovieClip {Levels.Level_13} Frame 1Symbol 600 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 397 MovieClip
"exitPlatform"Symbol 766 MovieClip Frame 1Symbol 400 MovieClip
"ballPlatform"Symbol 766 MovieClip Frame 2Symbol 337 MovieClip
"kickBall"Symbol 766 MovieClip Frame 2Symbol 341 MovieClip
"exitPlatform"Symbol 766 MovieClip Frame 3Symbol 572 MovieClip
"ship3"Symbol 766 MovieClip Frame 3Symbol 58 MovieClip {Ships10}
"axePlatform"Symbol 766 MovieClip Frame 4Symbol 538 MovieClip
"axe1"Symbol 766 MovieClip Frame 4Symbol 554 MovieClip
"mainPlatform"Symbol 766 MovieClip Frame 5Symbol 103 MovieClip
"littleBall"Symbol 766 MovieClip Frame 5Symbol 111 MovieClip
"jumpPlatform"Symbol 766 MovieClip Frame 5Symbol 115 MovieClip
"backBall2"Symbol 766 MovieClip Frame 6Symbol 429 MovieClip
"backBall3"Symbol 766 MovieClip Frame 6Symbol 429 MovieClip
"finishPlatform"Symbol 766 MovieClip Frame 6Symbol 431 MovieClip
"potolok"Symbol 766 MovieClip Frame 7Symbol 262 MovieClip
"box1"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box2"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box3"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box4"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box5"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box6"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box7"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box8"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box9"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box10"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box11"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box12"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box13"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box14"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box15"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box16"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box17"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"box18"Symbol 766 MovieClip Frame 7Symbol 271 MovieClip
"shipik4"Symbol 766 MovieClip Frame 7Symbol 58 MovieClip {Ships10}
"shipik5"Symbol 766 MovieClip Frame 7Symbol 58 MovieClip {Ships10}
"shipik4"Symbol 766 MovieClip Frame 7Symbol 58 MovieClip {Ships10}
"pol"Symbol 766 MovieClip Frame 8Symbol 361 MovieClip
"koleco1"Symbol 766 MovieClip Frame 8Symbol 366 MovieClip
"koleco2"Symbol 766 MovieClip Frame 8Symbol 366 MovieClip
"car"Symbol 766 MovieClip Frame 8Symbol 368 MovieClip
"potolok4"Symbol 766 MovieClip Frame 8Symbol 381 MovieClip
"bridgeElement3"Symbol 766 MovieClip Frame 9Symbol 241 MovieClip
"bridgeElement4"Symbol 766 MovieClip Frame 9Symbol 241 MovieClip
"bridgeElement5"Symbol 766 MovieClip Frame 9Symbol 241 MovieClip
"bridgeElement6"Symbol 766 MovieClip Frame 9Symbol 241 MovieClip
"bridgeElement7"Symbol 766 MovieClip Frame 9Symbol 241 MovieClip
"bridgeElement8"Symbol 766 MovieClip Frame 9Symbol 241 MovieClip
"killRollBall"Symbol 766 MovieClip Frame 9Symbol 246 MovieClip
"goBall"Symbol 766 MovieClip Frame 10Symbol 201 MovieClip
"vagon2"Symbol 766 MovieClip Frame 11Symbol 32 MovieClip
"koleso_2_2"Symbol 766 MovieClip Frame 11Symbol 34 MovieClip
"koleso_2_1"Symbol 766 MovieClip Frame 11Symbol 34 MovieClip
"vagon1"Symbol 766 MovieClip Frame 11Symbol 32 MovieClip
"koleso_1_2"Symbol 766 MovieClip Frame 11Symbol 34 MovieClip
"koleso_1_1"Symbol 766 MovieClip Frame 11Symbol 34 MovieClip
"kolesoTrain2"Symbol 766 MovieClip Frame 11Symbol 34 MovieClip
"kolesoTrain1"Symbol 766 MovieClip Frame 11Symbol 34 MovieClip
"train"Symbol 766 MovieClip Frame 11Symbol 39 MovieClip
"killCeil1"Symbol 766 MovieClip Frame 11Symbol 52 MovieClip
"rampa"Symbol 766 MovieClip Frame 12Symbol 757 MovieClip
"roll1"Symbol 766 MovieClip Frame 12Symbol 157 MovieClip
"roll2"Symbol 766 MovieClip Frame 12Symbol 157 MovieClip
"goPlat"Symbol 766 MovieClip Frame 12Symbol 159 MovieClip
"kingStar1"Symbol 766 MovieClip Frame 13Symbol 578 MovieClip
"mainPlat"Symbol 766 MovieClip Frame 13Symbol 581 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 437 MovieClip
"skateWheel12"Symbol 766 MovieClip Frame 15Symbol 437 MovieClip
"skateBoard1"Symbol 766 MovieClip Frame 15Symbol 439 MovieClip
"shopLeftSide"Symbol 766 MovieClip Frame 15Symbol 447 MovieClip
"shopRightSide"Symbol 766 MovieClip Frame 15Symbol 450 MovieClip
"step1"Symbol 766 MovieClip Frame 15Symbol 452 MovieClip
"step2"Symbol 766 MovieClip Frame 15Symbol 452 MovieClip
"underShop"Symbol 766 MovieClip Frame 15Symbol 466 MovieClip
"money"Symbol 766 MovieClip Frame 15Symbol 473 MovieClip
"dangerPlato"Symbol 766 MovieClip Frame 16Symbol 303 MovieClip
"killRollBall1"Symbol 766 MovieClip Frame 16Symbol 304 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 163 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/22/108179/info.shtml
Created: 15/3 -2019 18:38:05 Last modified: 15/3 -2019 18:38:05 Server time: 22/12 -2024 19:39:33