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

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

Red-Ball.swf

This is the info page for
Flash #127370

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

Level 14: Catapult

1 ton

Use "R" to restart

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="#333333" letterSpacing="0.000000" kerning="1">Level 8: Car</font></p>

Level 16: Short cut

Wrong way!

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

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

Level 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 9: Ninja on the bridge</font></p>

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

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

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

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

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

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 15: Shop burglary

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

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

Level 13: Pakman

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Are you want to quit?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ActionScript [AS3]

Section 1
//b2CircleDef (Box2D.Collision.Shapes.b2CircleDef) package Box2D.Collision.Shapes { import Box2D.Common.Math.*; public class b2CircleDef extends b2ShapeDef { public var radius:Number; public var localPosition:b2Vec2; public function b2CircleDef(){ localPosition = new b2Vec2(0, 0); super(); type = b2Shape.e_circleShape; radius = 1; } } }//package Box2D.Collision.Shapes
Section 2
//b2CircleShape (Box2D.Collision.Shapes.b2CircleShape) package Box2D.Collision.Shapes { import Box2D.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); 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){ m_currLevel.OutControl(); removeChild(m_currLevel); }; m_currId = _arg1; if (Game.scoreAvailable){ scoreText.text = ("Death: " + Game.scoreKills.toString()); } else { scoreText.text = ""; }; switch (m_currId){ case 1: m_currLevel = new Level_1(); break; case 2: m_currLevel = new Level_2(); break; case 3: m_currLevel = new Level_3(); break; case 4: m_currLevel = new Level_4(); break; case 5: m_currLevel = new Level_5(); break; case 6: m_currLevel = new Level_6(); break; case 7: m_currLevel = new Level_7(); break; case 8: m_currLevel = new Level_8(); break; case 9: m_currLevel = new Level_9(); break; case 10: m_currLevel = new Level_10(); break; case 11: m_currLevel = new Level_11(); break; case 12: m_currLevel = new Level_12(); break; case 13: m_currLevel = new Level_13(); break; case 14: m_currLevel = new Level_14(); break; case 15: m_currLevel = new Level_15(); break; case 16: m_currLevel = new Level_16(); break; case 17: m_currLevel = new Level_17(); break; }; addChildAt(m_currLevel, 0); } public function PressEsc():void{ if (!pause){ if (!quitSprite.visible){ m_currLevel.OutControl(); removeEventListener(Event.ENTER_FRAME, Update); m_currLevel.alpha = 0.5; this.setChildIndex(quitSprite, (this.numChildren - 1)); quitSprite.visible = true; } else { m_currLevel.SetControl(); addEventListener(Event.ENTER_FRAME, Update); m_currLevel.alpha = 1; quitSprite.visible = false; }; }; } public function PressP():void{ if (!quitSprite.visible){ pause = !(pause); SetPause(pause); }; } public function ExitGame():void{ if (m_currLevel){ removeChild(m_currLevel); }; if (gameLoop1Channel){ gameLoop1Channel.stop(); }; Level.lastCheckNum = 0; Level_7.redCheckLevel = false; Level_13.greenCheckLevel = false; Level_16.isStrelka = false; removeEventListener(Event.DEACTIVATE, deactivateHandler); removeEventListener(Event.ACTIVATE, activateHandler); removeEventListener(Event.ENTER_FRAME, Update); Preloader.stageLink.removeEventListener(KeyboardEvent.KEY_DOWN, KeyDownHandler); (this.parent as MovieClip).gotoAndStop("menu_main"); soundIs = true; } private function deactivateHandler(_arg1:Event):void{ if (!quitSprite.visible){ if (!pause){ SetPause(true); } else { wasInPause = true; }; }; } private function kingClickHandler(_arg1:MouseEvent):void{ KingAPI.openSignLink(); } private function SetPause(_arg1:Boolean):void{ pause = _arg1; if (pause){ m_currLevel.OutControl(); removeEventListener(Event.ENTER_FRAME, Update); m_currLevel.alpha = 0.5; this.setChildIndex(pauseSprite, (this.numChildren - 1)); pauseSprite.visible = true; beforePauseSoundIs = soundIs; SetSound(false); } else { m_currLevel.SetControl(); addEventListener(Event.ENTER_FRAME, Update); m_currLevel.alpha = 1; this.setChildIndex(pauseSprite, (this.numChildren - 1)); pauseSprite.visible = false; SetSound(beforePauseSoundIs); wasInPause = false; }; } private function activateHandler(_arg1:Event):void{ if (!quitSprite.visible){ if (!wasInPause){ SetPause(false); }; }; } private function Update(_arg1:Event):void{ m_currLevel.Update(_arg1); if (m_currLevel.Win()){ m_currId++; Level.lastCheckNum = 0; if ((((m_currId < 13)) || ((((m_currId < 18)) && (Preloader.isHome))))){ if (((!(Preloader.mySo.data.levelsAvaiable)) || ((Preloader.mySo.data.levelsAvaiable < m_currId)))){ Preloader.mySo.data.levelsAvaiable = m_currId; Preloader.mySo.flush(100); Preloader.levelsAvaiable = m_currId; }; SetLevel(m_currId); } else { if ((((m_currId == 18)) && (Game.scoreAvailable))){ KingAPI.submitScore(Game.scoreKills); }; ExitGame(); }; }; if (m_currLevel.Lose()){ if (Game.scoreAvailable){ Game.scoreKills++; scoreText.text = ("Death: " + Game.scoreKills.toString()); }; SetLevel(m_currId); }; } private function onMenuButtonHandler(_arg1:MouseEvent):void{ PressP(); } private function SetSound(_arg1:Boolean):void{ soundIs = _arg1; if (soundIs){ soundCheck.gotoAndStop(1); gameLoop1Channel = gameLoop1.play(loopPosition, int.MAX_VALUE, transformGameLoop1); } else { soundCheck.gotoAndStop(2); if (gameLoop1Channel){ loopPosition = gameLoop1Channel.position; gameLoop1Channel.stop(); }; }; } } }//package
Section 122
//GameLoop1 (GameLoop1) package { import flash.media.*; public dynamic class GameLoop1 extends Sound { } }//package
Section 123
//JumpPlatformSound (JumpPlatformSound) package { import flash.media.*; public dynamic class JumpPlatformSound extends Sound { } }//package
Section 124
//LevelButton (LevelButton) package { import flash.display.*; import flash.text.*; public class LevelButton extends MovieClip { private var levelNum:int; public var avaliable:Boolean; private var textNum:TextField; public function LevelButton(_arg1:int):void{ levelNum = _arg1; if (levelNum <= Preloader.levelsAvaiable){ avaliable = true; gotoAndStop(1); } else { avaliable = false; gotoAndStop(4); }; textNum = new TextField(); textNum.x = 1; textNum.y = 1; textNum.width = 25; textNum.height = 25; textNum.embedFonts = true; textNum.selectable = false; var _local2:TextFormat = new TextFormat("Kronika", 14, 0); _local2.align = TextFormatAlign.CENTER; textNum.defaultTextFormat = _local2; textNum.text = num.toString(); this.mouseChildren = false; addChild(textNum); } public function get num():int{ return (levelNum); } } }//package
Section 125
//LevelSound (LevelSound) package { import flash.media.*; public dynamic class LevelSound extends Sound { } }//package
Section 126
//libGlow (libGlow) package { import flash.display.*; public dynamic class libGlow extends MovieClip { } }//package
Section 127
//mcDragon (mcDragon) package { import flash.display.*; public dynamic class mcDragon extends MovieClip { } }//package
Section 128
//mcGlimmer (mcGlimmer) package { import flash.display.*; public dynamic class mcGlimmer extends MovieClip { } }//package
Section 129
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 130
//MyContactListener (MyContactListener) package { import flash.events.*; import Box2D.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 isHome:Boolean; public static var stageLink:Stage; public static var stageLoaderInfo:LoaderInfo; public function Preloader(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5); stage.showDefaultContextMenu = false; stageLoaderInfo = loaderInfo; stageLink = stage; if (isUrl(["king.com", "mygame.com", "king.de", "midasplayer.com"])){ Preloader.isHome = true; } else { Preloader.isHome = false; }; mySo = SharedObject.getLocal("RedBall", "/"); if (mySo.data.levelsAvaiable != undefined){ levelsAvaiable = mySo.data.levelsAvaiable; } else { levelsAvaiable = 1; }; if (((!(Preloader.isHome)) && ((levelsAvaiable > 12)))){ levelsAvaiable = 12; }; if (Preloader.isHome){ levelsAvaiable = 12; }; } public function highscoreClickHandler(_arg1:MouseEvent):void{ clickButtonSound.play(0, 1); KingAPI.openHighscoresLink(); } public function preload(_arg1:Event):void{ bg = new Sprite(); bg.buttonMode = true; bg.name = "clickBg"; bg.graphics.beginFill(0, 0); bg.graphics.lineTo(stage.stageWidth, 0); bg.graphics.lineTo(stage.stageWidth, stage.stageHeight); bg.graphics.lineTo(0, stage.stageHeight); bg.graphics.lineTo(0, 0); bg.graphics.endFill(); bg.addEventListener(MouseEvent.CLICK, openKingPage); this.addChildAt(bg, this.getChildIndex(mcLoadLogoBg)); mcLoadLogoBg.x = ((stage.stageWidth / 2) - (mcLoadLogoBg.width / 2)); mcLoadLogoBg.y = ((stage.stageHeight / 2) - (mcLoadLogoBg.height / 2)); bar = new Sprite(); bar.graphics.beginFill(0xFFFFFF, 0); bar.x = (mcLoadLogoBg.x + 5); bar.y = (mcLoadLogoBg.y + 34); bar.graphics.drawRect(0, 0, 96, 5); bar.graphics.endFill(); this.addChild(bar); holder = new Sprite(); this.addChild(holder); holder.x = bar.x; holder.y = bar.y; particles = new Main(); particles.setEmitterClip(holder); this.addChild(particles); addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function backButtonHandler(_arg1:MouseEvent):void{ gotoAndStop("menu_main"); clickButtonSound.play(0, 1); } public function boxCheckMoveHandler(_arg1:MouseEvent):void{ overButtonSound.play(0, 1, transformSound); } public function backButtonOverHandler(_arg1:MouseEvent):void{ overButtonSound.play(0, 1, transformSound); } public function onClickHandler(_arg1:MouseEvent):void{ Preloader.startLevelNum = _arg1.target.num; if ((((_arg1.target.num == 1)) && (Preloader.isHome))){ Game.scoreAvailable = true; Game.scoreKills = 0; } else { Game.scoreAvailable = false; }; removeChild(selectSprite); _arg1.target.removeEventListener(MouseEvent.MOUSE_OVER, onOverHandler); _arg1.target.removeEventListener(MouseEvent.MOUSE_DOWN, onDownHandler); _arg1.target.removeEventListener(MouseEvent.MOUSE_OUT, onOutHandler); gotoAndStop("game"); clickButtonSound.play(0, 1); } public function openKingPage(_arg1:Event):void{ KingAPI.openLoaderProgressLink(); } public function onEnterFrame(_arg1:Event):void{ holder.x = (bar.x + bar.width); if (framesLoaded == totalFrames){ particles.kill(); this.removeChild(particles); removeEventListener(Event.ENTER_FRAME, onEnterFrame); bg.removeEventListener(MouseEvent.CLICK, openKingPage); this.removeChild(bar); if (!KingAPI.isHome){ gotoAndStop(2); } else { gotoAndStop(3); }; } else { bar.scaleX = (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal); mcLoadLogoBg.bar.scaleX = (1 - (stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal)); }; } public function moreGamesClickHandler(_arg1:MouseEvent):void{ clickButtonSound.play(0, 1); KingAPI.openOtherGamesLink(); } public function playButtonClickHandler(_arg1:MouseEvent):void{ gotoAndStop("menu_select_level"); clickButtonSound.play(0, 1); } public function downloadClickHandler(_arg1:MouseEvent):void{ clickButtonSound.play(0, 1); KingAPI.openAddToWebsiteLink(); } public function creditsButtonClickHandler(_arg1:MouseEvent):void{ gotoAndStop("credits"); clickButtonSound.play(0, 1); } public function launchGame(_arg1):void{ mcKingLoader.destroy(); gotoAndStop(3); } public function kingClickHandler(_arg1:MouseEvent):void{ KingAPI.openOtherGamesLink(); } function frame1(){ stop(); game_name = "red-ball"; mochi = "193158d9"; _mochiads_game_id = "8836e503bdb21d70"; stage.scaleMode = StageScaleMode.NO_SCALE; KingAPI.addEventListener(KingAPI.INITIALIZED_EVENT, preload); KingAPI.addEventListener(KingAPI.HOST_BANNED_EVENT, preload); KingAPI.init(game_name, root.loaderInfo.url); MochiBot.track(this, mochi); } public function isUrl(_arg1:Array):Boolean{ var _local2:String = this.stage.loaderInfo.loaderURL; var _local3:Number = (_local2.indexOf("://") + 3); var _local4:Number = _local2.indexOf("/", _local3); var _local5:String = _local2.substring(_local3, _local4); var _local6:Number = (_local5.lastIndexOf(".") - 1); var _local7:Number = (_local5.lastIndexOf(".", _local6) + 1); _local5 = _local5.substring(_local7, _local5.length); var _local8:int; while (_local8 < _arg1.length) { if (_local5 == _arg1[_local8]){ return (true); }; _local8++; }; return (false); } public function walkthroughtClickHandler(_arg1:MouseEvent):void{ clickButtonSound.play(0, 1); KingAPI.openSignLink(); } public function onDownHandler(_arg1:MouseEvent):void{ _arg1.target.gotoAndStop(3); } function frame5(){ stop(); showLevel.stop(); selectSprite = new Sprite(); l = 0; levelName = new Array("Select the level you want to play!", "Level 1: Move and jump", "Level 2: Funny ball", "Level 3: Lifts and thorns", "Level 4: Axes", "Level 5: Jump!", "Level 6: Springboards", "Level 7: Box bridge", "Level 8: Car", "Level 9: Ninja on the bridge", "Level 10: Red ball on the ball", "Level 11: Train", "Level 12: Sleep slope", "Level 13: Pacman", "Level 14: Catapult", "Level 15: Shop burglary", "Level 16: Short cut", "Level 17: The King"); levelText.text = levelName[0]; showLevel.gotoAndStop(21); kingLevels.addEventListener(MouseEvent.CLICK, kingClickHandler); if (((Preloader.isHome) || ((Preloader.levelsAvaiable <= 11)))){ kingLevelsLabel.visible = false; highscoreAvailableText.visible = false; kingLevels.visible = false; }; i = 0; while (i < 2) { j = 0; while (j < ((i == 0)) ? 12 : 5) { l++; newLevelNum = l; newLevelButton = new LevelButton(newLevelNum); newLevelButton.x = (((i == 0)) ? 100 : 205 + (30 * j)); newLevelButton.y = (65 + (50 * i)); selectSprite.addChild(newLevelButton); if (newLevelButton.avaliable){ newLevelButton.addEventListener(MouseEvent.CLICK, onClickHandler); newLevelButton.addEventListener(MouseEvent.MOUSE_OVER, onOverHandler); newLevelButton.addEventListener(MouseEvent.MOUSE_DOWN, onDownHandler); newLevelButton.addEventListener(MouseEvent.MOUSE_OUT, onOutHandler); } else { newLevelButton.addEventListener(MouseEvent.MOUSE_OVER, onOverHandler); newLevelButton.addEventListener(MouseEvent.MOUSE_OUT, onOutHandler); }; j++; }; i++; }; addChild(selectSprite); matrix = new Array(); matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]); matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]); matrix = matrix.concat([0.4, 0.4, 0.4, 0, 0]); matrix = matrix.concat([0, 0, 0, 1, 0]); filter = new ColorMatrixFilter(matrix); } function frame2(){ mcKingLoader.addEventListener(DragonLoader.LAUNCH_GAME, launchGame); mcKingLoader.init(game_name, mochi); } function frame3(){ stop(); overButtonSound = new OverButtonSound(); clickButtonSound = new ClickButtonSound(); playButton.addEventListener(MouseEvent.CLICK, playButtonClickHandler); moreGamesButton.addEventListener(MouseEvent.CLICK, moreGamesClickHandler); creditsButton.addEventListener(MouseEvent.CLICK, creditsButtonClickHandler); downloadButton.addEventListener(MouseEvent.CLICK, downloadClickHandler); walkthroughButton.addEventListener(MouseEvent.CLICK, walkthroughtClickHandler); highscoreButton.addEventListener(MouseEvent.CLICK, highscoreClickHandler); transformSound = new SoundTransform(0.5, 0); playButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); moreGamesButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); creditsButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); downloadButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); walkthroughButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); highscoreButton.addEventListener(MouseEvent.MOUSE_OVER, boxCheckMoveHandler); kingLogo1.addEventListener(MouseEvent.CLICK, kingClickHandler); } function frame4(){ backButton.addEventListener(MouseEvent.CLICK, backButtonHandler); backButton.addEventListener(MouseEvent.MOUSE_OVER, backButtonOverHandler); kingLogo.addEventListener(MouseEvent.CLICK, kingClickHandler); } public function onOutHandler(_arg1:MouseEvent):void{ if (_arg1.target.avaliable){ _arg1.target.gotoAndStop(1); }; showLevel.gotoAndStop(21); levelText.text = levelName[0]; } public function onOverHandler(_arg1:MouseEvent):void{ if (_arg1.target.avaliable){ _arg1.target.gotoAndStop(2); showLevel.filters = []; } else { showLevel.filters = [filter]; }; showLevel.gotoAndStop(_arg1.target.num); levelText.text = levelName[_arg1.target.num]; overButtonSound.play(0, 1, transformSound); } } }//package
Section 135
//sfxBell (sfxBell) package { import flash.media.*; public dynamic class sfxBell extends Sound { } }//package
Section 136
//Shipik (Shipik) package { import flash.display.*; public dynamic class Shipik extends MovieClip { } }//package
Section 137
//Ships10 (Ships10) package { import flash.display.*; public dynamic class Ships10 extends MovieClip { } }//package
Section 138
//SoundCheck (SoundCheck) package { import flash.display.*; public dynamic class SoundCheck extends MovieClip { } }//package
Section 139
//spark (spark) package { import flash.display.*; public dynamic class spark extends MovieClip { public function spark(){ addFrameScript(22, frame23); } function frame23(){ gotoAndStop("loop"); } } }//package
Section 140
//TrainSound (TrainSound) package { import flash.media.*; public dynamic class TrainSound extends Sound { } }//package

Library Items

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