|
@@ -21,7 +21,7 @@
|
|
//-----------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
function TruckToy::create( %this )
|
|
function TruckToy::create( %this )
|
|
-{
|
|
|
|
|
|
+{
|
|
TruckToy.ObstacleFriction = 1.5;
|
|
TruckToy.ObstacleFriction = 1.5;
|
|
TruckToy.CameraWidth = 20;
|
|
TruckToy.CameraWidth = 20;
|
|
TruckToy.CameraHeight = 15;
|
|
TruckToy.CameraHeight = 15;
|
|
@@ -35,7 +35,7 @@ function TruckToy::create( %this )
|
|
TruckToy.GroundDomain = 18;
|
|
TruckToy.GroundDomain = 18;
|
|
TruckToy.ObstacleDomain = 15;
|
|
TruckToy.ObstacleDomain = 15;
|
|
TruckToy.ProjectileDomain = 16;
|
|
TruckToy.ProjectileDomain = 16;
|
|
- TruckToy.ForegroundDomain = 10;
|
|
|
|
|
|
+ TruckToy.ForegroundDomain = 10;
|
|
|
|
|
|
TruckToy.WheelSpeed = 400;
|
|
TruckToy.WheelSpeed = 400;
|
|
TruckToy.WheelFriction = 1;
|
|
TruckToy.WheelFriction = 1;
|
|
@@ -45,9 +45,9 @@ function TruckToy::create( %this )
|
|
TruckToy.RearWheelDrive = true;
|
|
TruckToy.RearWheelDrive = true;
|
|
TruckToy.ProjectileRate = 3000;
|
|
TruckToy.ProjectileRate = 3000;
|
|
TruckToy.ExplosionScale = 1;
|
|
TruckToy.ExplosionScale = 1;
|
|
-
|
|
|
|
|
|
+
|
|
TruckToy.RotateCamera = true;
|
|
TruckToy.RotateCamera = true;
|
|
-
|
|
|
|
|
|
+
|
|
// Add the custom controls.
|
|
// Add the custom controls.
|
|
addNumericOption( "Wheel Speed", 100, 1000, 50, "setWheelSpeed", TruckToy.WheelSpeed, false, "Sets the rotational speed of the wheel when it is put into drive." );
|
|
addNumericOption( "Wheel Speed", 100, 1000, 50, "setWheelSpeed", TruckToy.WheelSpeed, false, "Sets the rotational speed of the wheel when it is put into drive." );
|
|
addNumericOption( "Wheel Friction", 0, 10, 1, "setWheelFriction", TruckToy.WheelFriction, true, "Sets the friction for the surface of each wheel." );
|
|
addNumericOption( "Wheel Friction", 0, 10, 1, "setWheelFriction", TruckToy.WheelFriction, true, "Sets the friction for the surface of each wheel." );
|
|
@@ -63,7 +63,7 @@ function TruckToy::create( %this )
|
|
|
|
|
|
// Reset the toy.
|
|
// Reset the toy.
|
|
%this.reset();
|
|
%this.reset();
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------
|
|
@@ -77,12 +77,12 @@ function TruckToy::destroy( %this )
|
|
//-----------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
function TruckToy::reset( %this )
|
|
function TruckToy::reset( %this )
|
|
-{
|
|
|
|
|
|
+{
|
|
// Clear the scene.
|
|
// Clear the scene.
|
|
- SandboxScene.clear();
|
|
|
|
-
|
|
|
|
|
|
+ SandboxScene.clear();
|
|
|
|
+
|
|
// Set a typical Earth gravity.
|
|
// Set a typical Earth gravity.
|
|
- SandboxScene.setGravity( 0, -9.8 );
|
|
|
|
|
|
+ SandboxScene.setGravity( 0, -9.8 );
|
|
|
|
|
|
// Camera Configuration
|
|
// Camera Configuration
|
|
SandboxWindow.setCameraPosition( TruckToy.WorldLeft + (TruckToy.CameraWidth/2) - 10, 0 );
|
|
SandboxWindow.setCameraPosition( TruckToy.WorldLeft + (TruckToy.CameraWidth/2) - 10, 0 );
|
|
@@ -90,27 +90,27 @@ function TruckToy::reset( %this )
|
|
SandboxWindow.setCameraSize( TruckToy.CameraWidth, TruckToy.CameraHeight );
|
|
SandboxWindow.setCameraSize( TruckToy.CameraWidth, TruckToy.CameraHeight );
|
|
SandboxWindow.setViewLimitOn( TruckToy.WorldLeft, TruckToy.CameraHeight/-2, TruckToy.WorldRight, TruckToy.CameraHeight/2 );
|
|
SandboxWindow.setViewLimitOn( TruckToy.WorldLeft, TruckToy.CameraHeight/-2, TruckToy.WorldRight, TruckToy.CameraHeight/2 );
|
|
|
|
|
|
- // Create the scene contents in a roughly left to right order.
|
|
|
|
|
|
+ // Create the scene contents in a roughly left to right order.
|
|
|
|
|
|
// Background.
|
|
// Background.
|
|
%this.createBackground();
|
|
%this.createBackground();
|
|
|
|
|
|
// Floor.
|
|
// Floor.
|
|
%this.createFloor();
|
|
%this.createFloor();
|
|
-
|
|
|
|
|
|
+
|
|
// Wrecked cars at start.
|
|
// Wrecked cars at start.
|
|
%this.createWreckedCar( 1, -90, TruckToy.FloorLevel + 0.75, 0, true );
|
|
%this.createWreckedCar( 1, -90, TruckToy.FloorLevel + 0.75, 0, true );
|
|
%this.createWreckedCar( 2, -85, TruckToy.FloorLevel + 0.75, 0, true );
|
|
%this.createWreckedCar( 2, -85, TruckToy.FloorLevel + 0.75, 0, true );
|
|
%this.createWreckedCar( 3, -82, TruckToy.FloorLevel + 0.75, 0, true );
|
|
%this.createWreckedCar( 3, -82, TruckToy.FloorLevel + 0.75, 0, true );
|
|
%this.createWreckedCar( 1, -87.123, -2.478, 2.537, true );
|
|
%this.createWreckedCar( 1, -87.123, -2.478, 2.537, true );
|
|
- %this.createBrick( 3, -87.5, TruckToy.FloorLevel + 0.25, true );
|
|
|
|
- %this.createBrick( 4, -87.5, TruckToy.FloorLevel + 0.75, true );
|
|
|
|
- %this.createBrick( 2, -79, TruckToy.FloorLevel + 0.25, true );
|
|
|
|
|
|
+ %this.createBrick( 3, -87.5, TruckToy.FloorLevel + 0.25, true );
|
|
|
|
+ %this.createBrick( 4, -87.5, TruckToy.FloorLevel + 0.75, true );
|
|
|
|
+ %this.createBrick( 2, -79, TruckToy.FloorLevel + 0.25, true );
|
|
%this.createBonfire( -91.5, TruckToy.FloorLevel + 0.5, 1, TruckToy.BackgroundDomain-1 );
|
|
%this.createBonfire( -91.5, TruckToy.FloorLevel + 0.5, 1, TruckToy.BackgroundDomain-1 );
|
|
|
|
|
|
- // Building with chains.
|
|
|
|
- %this.createForegroundWall( 2, -99, -5 );
|
|
|
|
- %this.createForegroundWall( 1, -75.5, -6.5 );
|
|
|
|
|
|
+ // Building with chains.
|
|
|
|
+ %this.createForegroundWall( 2, -99, -5 );
|
|
|
|
+ %this.createForegroundWall( 1, -75.5, -6.5 );
|
|
%this.createBrokenCementWall( -78, -1.5 );
|
|
%this.createBrokenCementWall( -78, -1.5 );
|
|
%this.createWreckedBuilding( -71.5, -1 );
|
|
%this.createWreckedBuilding( -71.5, -1 );
|
|
%this.createWoodPile( -65, -2.5 );
|
|
%this.createWoodPile( -65, -2.5 );
|
|
@@ -118,7 +118,7 @@ function TruckToy::reset( %this )
|
|
%this.createForegroundBrickWall( 1, -61, -6 );
|
|
%this.createForegroundBrickWall( 1, -61, -6 );
|
|
%this.createBonfire( -82, TruckToy.FloorLevel + 0.5, 1.5, TruckToy.ObstacleDomain+1 );
|
|
%this.createBonfire( -82, TruckToy.FloorLevel + 0.5, 1.5, TruckToy.ObstacleDomain+1 );
|
|
|
|
|
|
- // Start of bridge.
|
|
|
|
|
|
+ // Start of bridge.
|
|
%this.createPlank( 1, -53, TruckToy.FloorLevel + 0.5, 0, true );
|
|
%this.createPlank( 1, -53, TruckToy.FloorLevel + 0.5, 0, true );
|
|
%this.createPlank( 1, -50.1522, -2.3, 21.267, true );
|
|
%this.createPlank( 1, -50.1522, -2.3, 21.267, true );
|
|
%this.createWreckedCar( 2, -47, TruckToy.FloorLevel + 1.9, -100, true );
|
|
%this.createWreckedCar( 2, -47, TruckToy.FloorLevel + 1.9, -100, true );
|
|
@@ -126,14 +126,14 @@ function TruckToy::reset( %this )
|
|
%this.createPlank( 2, -44, TruckToy.FloorLevel + 2, -90, true );
|
|
%this.createPlank( 2, -44, TruckToy.FloorLevel + 2, -90, true );
|
|
%this.createPlank( 1, -43, TruckToy.FloorLevel + 2, -90, true );
|
|
%this.createPlank( 1, -43, TruckToy.FloorLevel + 2, -90, true );
|
|
%this.createPlank( 2, -42, TruckToy.FloorLevel + 2, -90, true );
|
|
%this.createPlank( 2, -42, TruckToy.FloorLevel + 2, -90, true );
|
|
- %this.createPlank( 1, -41, TruckToy.FloorLevel + 2, -90, true );
|
|
|
|
- %this.createForegroundWall( 2, -42, -4.5 );
|
|
|
|
|
|
+ %this.createPlank( 1, -41, TruckToy.FloorLevel + 2, -90, true );
|
|
|
|
+ %this.createForegroundWall( 2, -42, -4.5 );
|
|
%this.createBridge( -41, TruckToy.FloorLevel + 4, 40 );
|
|
%this.createBridge( -41, TruckToy.FloorLevel + 4, 40 );
|
|
for ( %n = 0; %n < 10; %n++ )
|
|
for ( %n = 0; %n < 10; %n++ )
|
|
{
|
|
{
|
|
- %brick = %this.createBrickStack( getRandom(1,5), -39 + getRandomF(0,16), TruckToy.FloorLevel + 5, false );
|
|
|
|
|
|
+ %brick = %this.createBrickStack( getRandom(1,5), -39 + getRandomF(0,16), TruckToy.FloorLevel + 5, false );
|
|
%brick.setAwake(true);
|
|
%brick.setAwake(true);
|
|
- }
|
|
|
|
|
|
+ }
|
|
%this.createPlank( 1, -20.5, TruckToy.FloorLevel + 1.5, -90, true );
|
|
%this.createPlank( 1, -20.5, TruckToy.FloorLevel + 1.5, -90, true );
|
|
%this.createPlank( 3, -19, TruckToy.FloorLevel + 4, 0, true );
|
|
%this.createPlank( 3, -19, TruckToy.FloorLevel + 4, 0, true );
|
|
%this.createPlank( 1, -16.5, TruckToy.FloorLevel + 1.5, -90, true );
|
|
%this.createPlank( 1, -16.5, TruckToy.FloorLevel + 1.5, -90, true );
|
|
@@ -146,25 +146,25 @@ function TruckToy::reset( %this )
|
|
%this.createWreckedCar( 2, -7, TruckToy.FloorLevel + 0.75, 0, true );
|
|
%this.createWreckedCar( 2, -7, TruckToy.FloorLevel + 0.75, 0, true );
|
|
%this.createWreckedCar( 3, -4, TruckToy.FloorLevel + 0.75, 0, true );
|
|
%this.createWreckedCar( 3, -4, TruckToy.FloorLevel + 0.75, 0, true );
|
|
%this.createBonfire( -5, TruckToy.FloorLevel + 0.5, 1, TruckToy.BackgroundDomain-1 );
|
|
%this.createBonfire( -5, TruckToy.FloorLevel + 0.5, 1, TruckToy.BackgroundDomain-1 );
|
|
-
|
|
|
|
-
|
|
|
|
- // ************************************************************************
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // ************************************************************************
|
|
// Start of pyramid.
|
|
// Start of pyramid.
|
|
- // ************************************************************************
|
|
|
|
- %this.createPyramid( 2, TruckToy.FloorLevel + 0.25, 19, true );
|
|
|
|
|
|
+ // ************************************************************************
|
|
|
|
+ %this.createPyramid( 2, TruckToy.FloorLevel + 0.25, 19, true );
|
|
%this.createForegroundWall( 1, 9, -6 );
|
|
%this.createForegroundWall( 1, 9, -6 );
|
|
%this.createPyramid( 2+21, TruckToy.FloorLevel + 0.25, 13, true );
|
|
%this.createPyramid( 2+21, TruckToy.FloorLevel + 0.25, 13, true );
|
|
%this.createForegroundBrickWall( 1, 9, -7 );
|
|
%this.createForegroundBrickWall( 1, 9, -7 );
|
|
%this.createBonfire( 21, TruckToy.FloorLevel, 3, TruckToy.BackgroundDomain-1 );
|
|
%this.createBonfire( 21, TruckToy.FloorLevel, 3, TruckToy.BackgroundDomain-1 );
|
|
|
|
|
|
|
|
|
|
- // ************************************************************************
|
|
|
|
|
|
+ // ************************************************************************
|
|
// Start of brick stacks.
|
|
// Start of brick stacks.
|
|
- // ************************************************************************
|
|
|
|
|
|
+ // ************************************************************************
|
|
%this.createBrickStack( 45, TruckToy.FloorLevel + 0.25, 10, false );
|
|
%this.createBrickStack( 45, TruckToy.FloorLevel + 0.25, 10, false );
|
|
%this.createBrickStack( 47, TruckToy.FloorLevel + 0.25, 1, true );
|
|
%this.createBrickStack( 47, TruckToy.FloorLevel + 0.25, 1, true );
|
|
%this.createBrickStack( 49, TruckToy.FloorLevel + 0.25, 10, false );
|
|
%this.createBrickStack( 49, TruckToy.FloorLevel + 0.25, 10, false );
|
|
-
|
|
|
|
|
|
+
|
|
%this.createBrickStack( 72, TruckToy.FloorLevel + 0.25, 1, true );
|
|
%this.createBrickStack( 72, TruckToy.FloorLevel + 0.25, 1, true );
|
|
%this.createBrickStack( 74, TruckToy.FloorLevel + 0.25, 10, false );
|
|
%this.createBrickStack( 74, TruckToy.FloorLevel + 0.25, 10, false );
|
|
%this.createBrickStack( 76, TruckToy.FloorLevel + 0.25, 1, true );
|
|
%this.createBrickStack( 76, TruckToy.FloorLevel + 0.25, 1, true );
|
|
@@ -175,9 +175,9 @@ function TruckToy::reset( %this )
|
|
|
|
|
|
// Truck.
|
|
// Truck.
|
|
%truckStartX = TruckToy.WorldLeft + (TruckToy.CameraWidth/6);
|
|
%truckStartX = TruckToy.WorldLeft + (TruckToy.CameraWidth/6);
|
|
- %truckStartY = 3;
|
|
|
|
- %this.createTruck( %truckStartX, %truckStartY );
|
|
|
|
-
|
|
|
|
|
|
+ %truckStartY = 3;
|
|
|
|
+ %this.createTruck( %truckStartX, %truckStartY );
|
|
|
|
+
|
|
// Start the timer.
|
|
// Start the timer.
|
|
TruckToy.startTimer( "createProjectile", TruckToy.ProjectileRate );
|
|
TruckToy.startTimer( "createProjectile", TruckToy.ProjectileRate );
|
|
}
|
|
}
|
|
@@ -185,7 +185,7 @@ function TruckToy::reset( %this )
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
function TruckToy::createBackground(%this)
|
|
function TruckToy::createBackground(%this)
|
|
-{
|
|
|
|
|
|
+{
|
|
// Atmosphere
|
|
// Atmosphere
|
|
%obj = new Sprite();
|
|
%obj = new Sprite();
|
|
%obj.setBodyType( "static" );
|
|
%obj.setBodyType( "static" );
|
|
@@ -197,7 +197,7 @@ function TruckToy::createBackground(%this)
|
|
%obj.setCollisionSuppress();
|
|
%obj.setCollisionSuppress();
|
|
%obj.setAwake( false );
|
|
%obj.setAwake( false );
|
|
%obj.setActive( false );
|
|
%obj.setActive( false );
|
|
- SandboxScene.add( %obj );
|
|
|
|
|
|
+ SandboxScene.add( %obj );
|
|
|
|
|
|
|
|
|
|
// Industrial Background
|
|
// Industrial Background
|
|
@@ -206,26 +206,26 @@ function TruckToy::createBackground(%this)
|
|
%obj.setImage( "TruckToy:industrial_02" );
|
|
%obj.setImage( "TruckToy:industrial_02" );
|
|
%obj.setPosition( 0, -1 );
|
|
%obj.setPosition( 0, -1 );
|
|
%obj.setSize( TruckToy.WorldWidth, 8 );
|
|
%obj.setSize( TruckToy.WorldWidth, 8 );
|
|
- %obj.setRepeatX( TruckToy.WorldWidth / 8 );
|
|
|
|
|
|
+ %obj.setRepeatX( TruckToy.WorldWidth / 8 );
|
|
%obj.setSceneLayer( TruckToy.BackgroundDomain);
|
|
%obj.setSceneLayer( TruckToy.BackgroundDomain);
|
|
%obj.setSceneGroup( TruckToy.BackgroundDomain);
|
|
%obj.setSceneGroup( TruckToy.BackgroundDomain);
|
|
%obj.setCollisionSuppress();
|
|
%obj.setCollisionSuppress();
|
|
%obj.setAwake( false );
|
|
%obj.setAwake( false );
|
|
%obj.setActive( false );
|
|
%obj.setActive( false );
|
|
- SandboxScene.add( %obj );
|
|
|
|
|
|
+ SandboxScene.add( %obj );
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
function TruckToy::createFloor(%this)
|
|
function TruckToy::createFloor(%this)
|
|
{
|
|
{
|
|
- // Ground
|
|
|
|
|
|
+ // Ground
|
|
%obj = new Scroller();
|
|
%obj = new Scroller();
|
|
%obj.setBodyType( "static" );
|
|
%obj.setBodyType( "static" );
|
|
%obj.setImage( "ToyAssets:woodGround" );
|
|
%obj.setImage( "ToyAssets:woodGround" );
|
|
%obj.setSize( TruckToy.WorldWidth, 3 );
|
|
%obj.setSize( TruckToy.WorldWidth, 3 );
|
|
%obj.setPosition( 0, TruckToy.FloorLevel - (%obj.getSizeY()/2) );
|
|
%obj.setPosition( 0, TruckToy.FloorLevel - (%obj.getSizeY()/2) );
|
|
- %obj.setRepeatX( TruckToy.WorldWidth / 12 );
|
|
|
|
|
|
+ %obj.setRepeatX( TruckToy.WorldWidth / 12 );
|
|
%obj.setSceneLayer( TruckToy.ObstacleDomain );
|
|
%obj.setSceneLayer( TruckToy.ObstacleDomain );
|
|
%obj.setSceneGroup( TruckToy.GroundDomain );
|
|
%obj.setSceneGroup( TruckToy.GroundDomain );
|
|
%obj.setDefaultFriction( TruckToy.ObstacleFriction );
|
|
%obj.setDefaultFriction( TruckToy.ObstacleFriction );
|
|
@@ -235,14 +235,14 @@ function TruckToy::createFloor(%this)
|
|
%obj.createEdgeCollisionShape( TruckToy.WorldWidth/2, 3, TruckToy.WorldWidth/2, 50 );
|
|
%obj.createEdgeCollisionShape( TruckToy.WorldWidth/2, 3, TruckToy.WorldWidth/2, 50 );
|
|
%obj.CollisionCallback = true;
|
|
%obj.CollisionCallback = true;
|
|
%obj.setAwake( false );
|
|
%obj.setAwake( false );
|
|
- SandboxScene.add( %obj );
|
|
|
|
|
|
+ SandboxScene.add( %obj );
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
function TruckToy::createBrokenCementWall( %this, %posX, %posY )
|
|
function TruckToy::createBrokenCementWall( %this, %posX, %posY )
|
|
{
|
|
{
|
|
- %obj = new Sprite();
|
|
|
|
|
|
+ %obj = new Sprite();
|
|
%obj.setBodyType( "static" );
|
|
%obj.setBodyType( "static" );
|
|
%obj.setImage( "TruckToy:brokenCementWall" );
|
|
%obj.setImage( "TruckToy:brokenCementWall" );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setPosition( %posX, %posY );
|
|
@@ -254,14 +254,14 @@ function TruckToy::createBrokenCementWall( %this, %posX, %posY )
|
|
%obj.setActive( false );
|
|
%obj.setActive( false );
|
|
SandboxScene.add( %obj );
|
|
SandboxScene.add( %obj );
|
|
|
|
|
|
- return %obj;
|
|
|
|
|
|
+ return %obj;
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
function TruckToy::createWoodPile( %this, %posX, %posY )
|
|
function TruckToy::createWoodPile( %this, %posX, %posY )
|
|
{
|
|
{
|
|
- %obj = new Sprite();
|
|
|
|
|
|
+ %obj = new Sprite();
|
|
%obj.setBodyType( "static" );
|
|
%obj.setBodyType( "static" );
|
|
%obj.setImage( "TruckToy:woodPile" );
|
|
%obj.setImage( "TruckToy:woodPile" );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setPosition( %posX, %posY );
|
|
@@ -273,7 +273,7 @@ function TruckToy::createWoodPile( %this, %posX, %posY )
|
|
%obj.setActive( false );
|
|
%obj.setActive( false );
|
|
SandboxScene.add( %obj );
|
|
SandboxScene.add( %obj );
|
|
|
|
|
|
- return %obj;
|
|
|
|
|
|
+ return %obj;
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -282,8 +282,8 @@ function TruckToy::createBrickStack( %this, %posX, %posY, %brickCount, %static )
|
|
{
|
|
{
|
|
for ( %n = 0; %n < %brickCount; %n++ )
|
|
for ( %n = 0; %n < %brickCount; %n++ )
|
|
{
|
|
{
|
|
- %this.createBrick( getRandom(1,5), %posX, %posY + (%n*0.5), %static );
|
|
|
|
- }
|
|
|
|
|
|
+ %this.createBrick( getRandom(1,5), %posX, %posY + (%n*0.5), %static );
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -312,11 +312,11 @@ function TruckToy::createPyramid( %this, %posX, %posY, %brickBaseCount, %static
|
|
|
|
|
|
function TruckToy::createBridge( %this, %posX, %posY, %linkCount )
|
|
function TruckToy::createBridge( %this, %posX, %posY, %linkCount )
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+
|
|
%linkWidth = 0.5;
|
|
%linkWidth = 0.5;
|
|
%linkHeight = %linkWidth * 0.5;
|
|
%linkHeight = %linkWidth * 0.5;
|
|
%halfLinkWidth = %linkWidth * 0.5;
|
|
%halfLinkWidth = %linkWidth * 0.5;
|
|
-
|
|
|
|
|
|
+
|
|
%rootObj = new Sprite();
|
|
%rootObj = new Sprite();
|
|
%rootObj.setBodyType( "static" );
|
|
%rootObj.setBodyType( "static" );
|
|
%rootObj.setImage( "ToyAssets:cable" );
|
|
%rootObj.setImage( "ToyAssets:cable" );
|
|
@@ -328,24 +328,24 @@ function TruckToy::createBridge( %this, %posX, %posY, %linkCount )
|
|
SandboxScene.add( %rootObj );
|
|
SandboxScene.add( %rootObj );
|
|
|
|
|
|
%lastLinkObj = %rootObj;
|
|
%lastLinkObj = %rootObj;
|
|
-
|
|
|
|
|
|
+
|
|
for ( %n = 1; %n <= %linkCount; %n++ )
|
|
for ( %n = 1; %n <= %linkCount; %n++ )
|
|
{
|
|
{
|
|
%obj = new Sprite();
|
|
%obj = new Sprite();
|
|
-
|
|
|
|
|
|
+
|
|
%obj.setImage( "ToyAssets:cable" );
|
|
%obj.setImage( "ToyAssets:cable" );
|
|
%obj.setPosition( %posX + (%n*%linkWidth), %posY );
|
|
%obj.setPosition( %posX + (%n*%linkWidth), %posY );
|
|
%obj.setSize( %linkWidth, %linkHeight );
|
|
%obj.setSize( %linkWidth, %linkHeight );
|
|
%obj.setSceneLayer( TruckToy.BackgroundDomain-3 );
|
|
%obj.setSceneLayer( TruckToy.BackgroundDomain-3 );
|
|
%obj.setSceneGroup( TruckToy.ObstacleDomain );
|
|
%obj.setSceneGroup( TruckToy.ObstacleDomain );
|
|
-
|
|
|
|
|
|
+
|
|
if ( %n == %linkCount )
|
|
if ( %n == %linkCount )
|
|
{
|
|
{
|
|
%obj.setBodyType( "static" );
|
|
%obj.setBodyType( "static" );
|
|
%obj.setCollisionSuppress();
|
|
%obj.setCollisionSuppress();
|
|
}
|
|
}
|
|
else
|
|
else
|
|
- {
|
|
|
|
|
|
+ {
|
|
%obj.setCollisionGroups( none );
|
|
%obj.setCollisionGroups( none );
|
|
%obj.setDefaultDensity( 1 );
|
|
%obj.setDefaultDensity( 1 );
|
|
%obj.setDefaultFriction( TruckToy.ObstacleFriction );
|
|
%obj.setDefaultFriction( TruckToy.ObstacleFriction );
|
|
@@ -354,19 +354,19 @@ function TruckToy::createBridge( %this, %posX, %posY, %linkCount )
|
|
%obj.setLinearDamping( 1.0 );
|
|
%obj.setLinearDamping( 1.0 );
|
|
}
|
|
}
|
|
//%obj.setDebugOn( 5 );
|
|
//%obj.setDebugOn( 5 );
|
|
- SandboxScene.add( %obj );
|
|
|
|
-
|
|
|
|
|
|
+ SandboxScene.add( %obj );
|
|
|
|
+
|
|
SandboxScene.createRevoluteJoint( %lastLinkObj, %obj, %halfLinkWidth, 0, -%halfLinkWidth, 0 );
|
|
SandboxScene.createRevoluteJoint( %lastLinkObj, %obj, %halfLinkWidth, 0, -%halfLinkWidth, 0 );
|
|
%joint = SandboxScene.createMotorJoint( %lastLinkObj, %obj );
|
|
%joint = SandboxScene.createMotorJoint( %lastLinkObj, %obj );
|
|
SandboxScene.setMotorJointMaxForce( %joint, 1000 );
|
|
SandboxScene.setMotorJointMaxForce( %joint, 1000 );
|
|
%obj.setAwake( false );
|
|
%obj.setAwake( false );
|
|
%lastLinkObj.setAwake( false );
|
|
%lastLinkObj.setAwake( false );
|
|
//%obj.setDebugOn( 5 );
|
|
//%obj.setDebugOn( 5 );
|
|
-
|
|
|
|
|
|
+
|
|
%lastLinkObj = %obj;
|
|
%lastLinkObj = %obj;
|
|
}
|
|
}
|
|
-
|
|
|
|
- return %lastLinkObj;
|
|
|
|
|
|
+
|
|
|
|
+ return %lastLinkObj;
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -395,16 +395,16 @@ function TruckToy::createChain( %this, %posX, %posY, %linkCount )
|
|
{
|
|
{
|
|
%obj = new Sprite();
|
|
%obj = new Sprite();
|
|
%obj.setImage( "ToyAssets:chain" );
|
|
%obj.setImage( "ToyAssets:chain" );
|
|
- %obj.setPosition( %posX, %posY - (%n*%linkHeight) );
|
|
|
|
|
|
+ %obj.setPosition( %posX, %posY - (%n*%linkHeight) );
|
|
%obj.setSize( %linkWidth, %linkHeight );
|
|
%obj.setSize( %linkWidth, %linkHeight );
|
|
- SandboxScene.add( %obj );
|
|
|
|
|
|
+ SandboxScene.add( %obj );
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- %obj = %this.createBonfire( %posX, %posY - (%n*%linkHeight), 0.5, TruckToy.BackgroundDomain-1 );
|
|
|
|
|
|
+ %obj = %this.createBonfire( %posX, %posY - (%n*%linkHeight), 0.5, TruckToy.BackgroundDomain-1 );
|
|
%obj.BodyType = dynamic;
|
|
%obj.BodyType = dynamic;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
%obj.setSceneLayer( TruckToy.BackgroundDomain-1 );
|
|
%obj.setSceneLayer( TruckToy.BackgroundDomain-1 );
|
|
%obj.setSceneGroup( TruckToy.ObstacleDomain );
|
|
%obj.setSceneGroup( TruckToy.ObstacleDomain );
|
|
%obj.setCollisionGroups( none );
|
|
%obj.setCollisionGroups( none );
|
|
@@ -421,14 +421,14 @@ function TruckToy::createChain( %this, %posX, %posY, %linkCount )
|
|
|
|
|
|
%lastLinkObj.setAwake(false);
|
|
%lastLinkObj.setAwake(false);
|
|
|
|
|
|
- return %lastLinkObj;
|
|
|
|
|
|
+ return %lastLinkObj;
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
function TruckToy::createWreckedBuilding( %this, %posX, %posY )
|
|
function TruckToy::createWreckedBuilding( %this, %posX, %posY )
|
|
{
|
|
{
|
|
- %obj = new Sprite();
|
|
|
|
|
|
+ %obj = new Sprite();
|
|
%obj.setBodyType( "static" );
|
|
%obj.setBodyType( "static" );
|
|
%obj.setImage( "TruckToy:wreckedBuilding" );
|
|
%obj.setImage( "TruckToy:wreckedBuilding" );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setPosition( %posX, %posY );
|
|
@@ -440,10 +440,10 @@ function TruckToy::createWreckedBuilding( %this, %posX, %posY )
|
|
%obj.setActive( false );
|
|
%obj.setActive( false );
|
|
SandboxScene.add( %obj );
|
|
SandboxScene.add( %obj );
|
|
|
|
|
|
- %this.createChain( %posX - 3, %posY + 3.4, 10 );
|
|
|
|
- %this.createChain( %posX - 1, %posY + 3.2, 10 );
|
|
|
|
- %this.createChain( %posX + 1, %posY + 3.0, 10 );
|
|
|
|
- %this.createChain( %posX + 3, %posY + 2.8, 10 );
|
|
|
|
|
|
+ %this.createChain( %posX - 3, %posY + 3.4, 10 );
|
|
|
|
+ %this.createChain( %posX - 1, %posY + 3.2, 10 );
|
|
|
|
+ %this.createChain( %posX + 1, %posY + 3.0, 10 );
|
|
|
|
+ %this.createChain( %posX + 3, %posY + 2.8, 10 );
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -457,10 +457,10 @@ function TruckToy::createForegroundBrickWall( %this, %wallNumber, %posX, %posY )
|
|
}
|
|
}
|
|
|
|
|
|
%image = "TruckToy:brickWall_0" @ %wallNumber;
|
|
%image = "TruckToy:brickWall_0" @ %wallNumber;
|
|
-
|
|
|
|
- %obj = new Sprite();
|
|
|
|
|
|
+
|
|
|
|
+ %obj = new Sprite();
|
|
%obj.setBodyType( "static" );
|
|
%obj.setBodyType( "static" );
|
|
-
|
|
|
|
|
|
+
|
|
%obj.setImage( %image );
|
|
%obj.setImage( %image );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setSize( 10, 5 );
|
|
%obj.setSize( 10, 5 );
|
|
@@ -470,9 +470,9 @@ function TruckToy::createForegroundBrickWall( %this, %wallNumber, %posX, %posY )
|
|
%obj.setAwake( false );
|
|
%obj.setAwake( false );
|
|
%obj.setActive( false );
|
|
%obj.setActive( false );
|
|
SandboxScene.add( %obj );
|
|
SandboxScene.add( %obj );
|
|
-
|
|
|
|
|
|
|
|
- return %obj;
|
|
|
|
|
|
+
|
|
|
|
+ return %obj;
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -486,10 +486,10 @@ function TruckToy::createForegroundWall( %this, %wallNumber, %posX, %posY )
|
|
}
|
|
}
|
|
|
|
|
|
%image = "TruckToy:foregroundWall_0" @ %wallNumber;
|
|
%image = "TruckToy:foregroundWall_0" @ %wallNumber;
|
|
-
|
|
|
|
- %obj = new Sprite();
|
|
|
|
|
|
+
|
|
|
|
+ %obj = new Sprite();
|
|
%obj.setBodyType( "static" );
|
|
%obj.setBodyType( "static" );
|
|
-
|
|
|
|
|
|
+
|
|
%obj.setImage( %image );
|
|
%obj.setImage( %image );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setSize( 6, 6 );
|
|
%obj.setSize( 6, 6 );
|
|
@@ -500,7 +500,7 @@ function TruckToy::createForegroundWall( %this, %wallNumber, %posX, %posY )
|
|
%obj.setActive( false );
|
|
%obj.setActive( false );
|
|
SandboxScene.add( %obj );
|
|
SandboxScene.add( %obj );
|
|
|
|
|
|
- return %obj;
|
|
|
|
|
|
+ return %obj;
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -515,7 +515,7 @@ function TruckToy::createBrick( %this, %brickNumber, %posX, %posY, %static )
|
|
|
|
|
|
%image = "ToyAssets:brick_0" @ %brickNumber;
|
|
%image = "ToyAssets:brick_0" @ %brickNumber;
|
|
|
|
|
|
- %obj = new Sprite();
|
|
|
|
|
|
+ %obj = new Sprite();
|
|
if ( %static ) %obj.setBodyType( "static" );
|
|
if ( %static ) %obj.setBodyType( "static" );
|
|
%obj.setImage( %image );
|
|
%obj.setImage( %image );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setPosition( %posX, %posY );
|
|
@@ -535,7 +535,7 @@ function TruckToy::createBrick( %this, %brickNumber, %posX, %posY, %static )
|
|
|
|
|
|
function TruckToy::createBrickPile( %this, %posX, %posY )
|
|
function TruckToy::createBrickPile( %this, %posX, %posY )
|
|
{
|
|
{
|
|
- %obj = new Sprite();
|
|
|
|
|
|
+ %obj = new Sprite();
|
|
%obj.setBodyType( "static" );
|
|
%obj.setBodyType( "static" );
|
|
%obj.setImage( "TruckToy:brickPile" );
|
|
%obj.setImage( "TruckToy:brickPile" );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setPosition( %posX, %posY );
|
|
@@ -545,7 +545,7 @@ function TruckToy::createBrickPile( %this, %posX, %posY )
|
|
%obj.setCollisionSuppress();
|
|
%obj.setCollisionSuppress();
|
|
%obj.setAwake( false );
|
|
%obj.setAwake( false );
|
|
%obj.setActive( false );
|
|
%obj.setActive( false );
|
|
- SandboxScene.add( %obj );
|
|
|
|
|
|
+ SandboxScene.add( %obj );
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -560,12 +560,12 @@ function TruckToy::createPlank( %this, %plankNumber, %posX, %posY, %angle, %stat
|
|
|
|
|
|
%image = "TruckToy:plank_0" @ %plankNumber;
|
|
%image = "TruckToy:plank_0" @ %plankNumber;
|
|
|
|
|
|
- %obj = new Sprite();
|
|
|
|
|
|
+ %obj = new Sprite();
|
|
if ( %static ) %obj.setBodyType( "static" );
|
|
if ( %static ) %obj.setBodyType( "static" );
|
|
%obj.setImage( %image );
|
|
%obj.setImage( %image );
|
|
%obj.setAngle( %angle );
|
|
%obj.setAngle( %angle );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setPosition( %posX, %posY );
|
|
- %obj.setSize( 5, 1 );
|
|
|
|
|
|
+ %obj.setSize( 5, 1 );
|
|
%obj.setSceneLayer( TruckToy.ObstacleDomain );
|
|
%obj.setSceneLayer( TruckToy.ObstacleDomain );
|
|
%obj.setSceneGroup( TruckToy.ObstacleDomain );
|
|
%obj.setSceneGroup( TruckToy.ObstacleDomain );
|
|
%obj.setDefaultFriction( TruckToy.ObstacleFriction );
|
|
%obj.setDefaultFriction( TruckToy.ObstacleFriction );
|
|
@@ -574,8 +574,8 @@ function TruckToy::createPlank( %this, %plankNumber, %posX, %posY, %angle, %stat
|
|
%obj.setDefaultFriction( 1.0 );
|
|
%obj.setDefaultFriction( 1.0 );
|
|
|
|
|
|
switch$( %plankNumber )
|
|
switch$( %plankNumber )
|
|
- {
|
|
|
|
- case 1:
|
|
|
|
|
|
+ {
|
|
|
|
+ case 1:
|
|
%obj.createPolygonCollisionShape( "-2.5 -0.5 2.5 -0.5 2.5 -0.2 2.0 0.5 -2.5 -0.2" );
|
|
%obj.createPolygonCollisionShape( "-2.5 -0.5 2.5 -0.5 2.5 -0.2 2.0 0.5 -2.5 -0.2" );
|
|
case 2:
|
|
case 2:
|
|
%obj.createPolygonCollisionShape( "-2.5 -0.4 2.4 -0.5 2.4 0.5 0 0.5 -2.1 0.1 -2.5 -0.2" );
|
|
%obj.createPolygonCollisionShape( "-2.5 -0.4 2.4 -0.5 2.4 0.5 0 0.5 -2.1 0.1 -2.5 -0.2" );
|
|
@@ -585,7 +585,7 @@ function TruckToy::createPlank( %this, %plankNumber, %posX, %posY, %angle, %stat
|
|
|
|
|
|
SandboxScene.add( %obj );
|
|
SandboxScene.add( %obj );
|
|
|
|
|
|
- return %obj;
|
|
|
|
|
|
+ return %obj;
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -600,12 +600,12 @@ function TruckToy::createWreckedCar( %this, %carNumber, %posX, %posY, %angle, %s
|
|
|
|
|
|
%image = "TruckToy:wreckedCar_0" @ %carNumber;
|
|
%image = "TruckToy:wreckedCar_0" @ %carNumber;
|
|
|
|
|
|
- %obj = new Sprite();
|
|
|
|
|
|
+ %obj = new Sprite();
|
|
if ( %static ) %obj.setBodyType( "static" );
|
|
if ( %static ) %obj.setBodyType( "static" );
|
|
%obj.setImage( %image );
|
|
%obj.setImage( %image );
|
|
%obj.setAngle( %angle );
|
|
%obj.setAngle( %angle );
|
|
%obj.setPosition( %posX, %posY );
|
|
%obj.setPosition( %posX, %posY );
|
|
- %obj.setSize( 4, 1.5 );
|
|
|
|
|
|
+ %obj.setSize( 4, 1.5 );
|
|
%obj.setSceneLayer( TruckToy.ObstacleDomain );
|
|
%obj.setSceneLayer( TruckToy.ObstacleDomain );
|
|
%obj.setSceneGroup( TruckToy.ObstacleDomain );
|
|
%obj.setSceneGroup( TruckToy.ObstacleDomain );
|
|
%obj.setCollisionGroups( TruckToy.GroundDomain, TruckToy.ObstacleDomain );
|
|
%obj.setCollisionGroups( TruckToy.GroundDomain, TruckToy.ObstacleDomain );
|
|
@@ -613,8 +613,8 @@ function TruckToy::createWreckedCar( %this, %carNumber, %posX, %posY, %angle, %s
|
|
%obj.setDefaultFriction( TruckToy.ObstacleFriction );
|
|
%obj.setDefaultFriction( TruckToy.ObstacleFriction );
|
|
|
|
|
|
switch$( %carNumber )
|
|
switch$( %carNumber )
|
|
- {
|
|
|
|
- case 1:
|
|
|
|
|
|
+ {
|
|
|
|
+ case 1:
|
|
%obj.createPolygonCollisionShape( "-2 -0.65 0.5 -0.75 2 -0.45 1.9 0.2 0.5 0.65 -0.5 0.6 -2 -0.3" );
|
|
%obj.createPolygonCollisionShape( "-2 -0.65 0.5 -0.75 2 -0.45 1.9 0.2 0.5 0.65 -0.5 0.6 -2 -0.3" );
|
|
case 2:
|
|
case 2:
|
|
%obj.createPolygonCollisionShape( "-2 -0.75 2 -0.75 2 -0.2 0.4 0.65 -0.9 0.7 -2 0.0" );
|
|
%obj.createPolygonCollisionShape( "-2 -0.75 2 -0.75 2 -0.2 0.4 0.65 -0.9 0.7 -2 0.0" );
|
|
@@ -640,9 +640,9 @@ function TruckToy::createBonfire(%this, %x, %y, %scale, %layer)
|
|
%particlePlayer.Particle = "ToyAssets:bonfire";
|
|
%particlePlayer.Particle = "ToyAssets:bonfire";
|
|
%particlePlayer.SizeScale = %scale;
|
|
%particlePlayer.SizeScale = %scale;
|
|
%particlePlayer.CameraIdleDistance = TruckToy.CameraWidth * 0.8;
|
|
%particlePlayer.CameraIdleDistance = TruckToy.CameraWidth * 0.8;
|
|
- SandboxScene.add( %particlePlayer );
|
|
|
|
|
|
+ SandboxScene.add( %particlePlayer );
|
|
return %particlePlayer;
|
|
return %particlePlayer;
|
|
-
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -651,7 +651,7 @@ function TruckToy::createProjectile(%this)
|
|
{
|
|
{
|
|
// Fetch the truck position.
|
|
// Fetch the truck position.
|
|
%truckPositionX = TruckToy.TruckBody.Position.x;
|
|
%truckPositionX = TruckToy.TruckBody.Position.x;
|
|
-
|
|
|
|
|
|
+
|
|
%projectile = new Sprite() { class = "TruckProjectile"; };
|
|
%projectile = new Sprite() { class = "TruckProjectile"; };
|
|
%projectile.Animation = "ToyAssets:Projectile_FireballAnim";
|
|
%projectile.Animation = "ToyAssets:Projectile_FireballAnim";
|
|
%projectile.setPosition( getRandom( %truckPositionX - (TruckToy.CameraWidth * 0.2), %truckPositionX + (TruckToy.CameraWidth * 0.5) ), 12 );
|
|
%projectile.setPosition( getRandom( %truckPositionX - (TruckToy.CameraWidth * 0.2), %truckPositionX + (TruckToy.CameraWidth * 0.5) ), 12 );
|
|
@@ -660,32 +660,32 @@ function TruckToy::createProjectile(%this)
|
|
%projectile.FlipY = true;
|
|
%projectile.FlipY = true;
|
|
%projectile.Size = getRandom(0.5, 2);
|
|
%projectile.Size = getRandom(0.5, 2);
|
|
%projectile.Lifetime = 2.5;
|
|
%projectile.Lifetime = 2.5;
|
|
- %projectile.createCircleCollisionShape( 0.2 );
|
|
|
|
|
|
+ %projectile.createCircleCollisionShape( 0.2 );
|
|
%projectile.setCollisionGroups( TruckToy.GroundDomain );
|
|
%projectile.setCollisionGroups( TruckToy.GroundDomain );
|
|
%projectile.CollisionCallback = true;
|
|
%projectile.CollisionCallback = true;
|
|
- SandboxScene.add( %projectile );
|
|
|
|
|
|
+ SandboxScene.add( %projectile );
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
function TruckProjectile::onCollision(%this, %object, %collisionDetails)
|
|
function TruckProjectile::onCollision(%this, %object, %collisionDetails)
|
|
-{
|
|
|
|
|
|
+{
|
|
// Create an impact explosion at the projectiles position.
|
|
// Create an impact explosion at the projectiles position.
|
|
%particlePlayer = new ParticlePlayer();
|
|
%particlePlayer = new ParticlePlayer();
|
|
%particlePlayer.BodyType = Static;
|
|
%particlePlayer.BodyType = Static;
|
|
- %particlePlayer.Position = %this.Position;
|
|
|
|
|
|
+ %particlePlayer.Position = %this.Position;
|
|
%particlePlayer.Size = 10;
|
|
%particlePlayer.Size = 10;
|
|
%particlePlayer.SceneLayer = TruckToy.BackgroundDomain-1;
|
|
%particlePlayer.SceneLayer = TruckToy.BackgroundDomain-1;
|
|
%particlePlayer.ParticleInterpolation = true;
|
|
%particlePlayer.ParticleInterpolation = true;
|
|
%particlePlayer.Particle = "ToyAssets:ImpactExplosion";
|
|
%particlePlayer.Particle = "ToyAssets:ImpactExplosion";
|
|
%particlePlayer.SizeScale = getRandom(TruckToy.ExplosionScale, TruckToy.ExplosionScale * 1.5);
|
|
%particlePlayer.SizeScale = getRandom(TruckToy.ExplosionScale, TruckToy.ExplosionScale * 1.5);
|
|
- SandboxScene.add( %particlePlayer );
|
|
|
|
-
|
|
|
|
|
|
+ SandboxScene.add( %particlePlayer );
|
|
|
|
+
|
|
// Start the camera shaking.
|
|
// Start the camera shaking.
|
|
SandboxWindow.startCameraShake( 10 + (3 * TruckToy.ExplosionScale), 1 );
|
|
SandboxWindow.startCameraShake( 10 + (3 * TruckToy.ExplosionScale), 1 );
|
|
-
|
|
|
|
|
|
+
|
|
// Delete the projectile.
|
|
// Delete the projectile.
|
|
- %this.safeDelete();
|
|
|
|
|
|
+ %this.safeDelete();
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -711,11 +711,11 @@ function TruckToy::createTruck( %this, %posX, %posY )
|
|
TruckToy.TruckBody.setSceneLayer( TruckToy.TruckDomain );
|
|
TruckToy.TruckBody.setSceneLayer( TruckToy.TruckDomain );
|
|
TruckToy.TruckBody.setSceneGroup( TruckToy.ObstacleDomain);
|
|
TruckToy.TruckBody.setSceneGroup( TruckToy.ObstacleDomain);
|
|
TruckToy.TruckBody.setCollisionGroups( TruckToy.ObstacleDomain, TruckToy.ObstacleDomain-1, TruckToy.GroundDomain );
|
|
TruckToy.TruckBody.setCollisionGroups( TruckToy.ObstacleDomain, TruckToy.ObstacleDomain-1, TruckToy.GroundDomain );
|
|
- TruckToy.TruckBody.createPolygonCollisionShape( "-2 0.2 -2 -0.5 0 -.95 2 -0.5 2 0.0 0 0.7 -1.5 0.7" );
|
|
|
|
|
|
+ TruckToy.TruckBody.createPolygonCollisionShape( "-2 0.2 -2 -0.5 0 -.95 2 -0.5 2 0.0 0 0.7 -1.5 0.7" );
|
|
//TruckToy.TruckBody.setDebugOn( 5 );
|
|
//TruckToy.TruckBody.setDebugOn( 5 );
|
|
SandboxScene.add( TruckToy.TruckBody );
|
|
SandboxScene.add( TruckToy.TruckBody );
|
|
|
|
|
|
- // Attach the exhaust output to the truck body.
|
|
|
|
|
|
+ // Attach the exhaust output to the truck body.
|
|
%joint = SandboxScene.createRevoluteJoint( TruckToy.TruckBody, TruckToy.TruckExhaust, "-2.3 -0.6", "0 0" );
|
|
%joint = SandboxScene.createRevoluteJoint( TruckToy.TruckBody, TruckToy.TruckExhaust, "-2.3 -0.6", "0 0" );
|
|
SandboxScene.setRevoluteJointLimit( %joint, 0, 0 );
|
|
SandboxScene.setRevoluteJointLimit( %joint, 0, 0 );
|
|
|
|
|
|
@@ -724,9 +724,9 @@ function TruckToy::createTruck( %this, %posX, %posY )
|
|
SandboxWindow.mount( TruckToy.TruckBody, "0 0", 3, true, TruckToy.RotateCamera );
|
|
SandboxWindow.mount( TruckToy.TruckBody, "0 0", 3, true, TruckToy.RotateCamera );
|
|
|
|
|
|
// Tires.
|
|
// Tires.
|
|
- // Suspension = -1.0 : -1.5
|
|
|
|
|
|
+ // Suspension = -1.0 : -1.5
|
|
|
|
|
|
- // Rear tire.
|
|
|
|
|
|
+ // Rear tire.
|
|
%tireRear = new Sprite();
|
|
%tireRear = new Sprite();
|
|
%tireRear.setPosition( %posX-1.4, %posY-1.0 );
|
|
%tireRear.setPosition( %posX-1.4, %posY-1.0 );
|
|
%tireRear.setImage( "ToyAssets:tires" );
|
|
%tireRear.setImage( "ToyAssets:tires" );
|
|
@@ -736,10 +736,10 @@ function TruckToy::createTruck( %this, %posX, %posY )
|
|
%tireRear.setCollisionGroups( TruckToy.ObstacleDomain, TruckToy.GroundDomain );
|
|
%tireRear.setCollisionGroups( TruckToy.ObstacleDomain, TruckToy.GroundDomain );
|
|
%tireRear.setDefaultFriction( TruckToy.WheelFriction );
|
|
%tireRear.setDefaultFriction( TruckToy.WheelFriction );
|
|
%tireRear.setDefaultDensity( TruckToy.RearWheelDensity );
|
|
%tireRear.setDefaultDensity( TruckToy.RearWheelDensity );
|
|
- %tireRear.createCircleCollisionShape( 0.8 );
|
|
|
|
|
|
+ %tireRear.createCircleCollisionShape( 0.8 );
|
|
SandboxScene.add( %tireRear );
|
|
SandboxScene.add( %tireRear );
|
|
TruckToy.RearWheel = %tireRear;
|
|
TruckToy.RearWheel = %tireRear;
|
|
-
|
|
|
|
|
|
+
|
|
// Front tire.
|
|
// Front tire.
|
|
%tireFront = new Sprite();
|
|
%tireFront = new Sprite();
|
|
%tireFront.setPosition( %posX+1.7, %posY-1.0 );
|
|
%tireFront.setPosition( %posX+1.7, %posY-1.0 );
|
|
@@ -750,13 +750,13 @@ function TruckToy::createTruck( %this, %posX, %posY )
|
|
%tireFront.setCollisionGroups( TruckToy.ObstacleDomain, TruckToy.GroundDomain );
|
|
%tireFront.setCollisionGroups( TruckToy.ObstacleDomain, TruckToy.GroundDomain );
|
|
%tireFront.setDefaultFriction( TruckToy.WheelFriction );
|
|
%tireFront.setDefaultFriction( TruckToy.WheelFriction );
|
|
%tireFront.setDefaultDensity( TruckToy.FrontWheelDensity );
|
|
%tireFront.setDefaultDensity( TruckToy.FrontWheelDensity );
|
|
- %tireFront.createCircleCollisionShape( 0.8 );
|
|
|
|
- SandboxScene.add( %tireFront );
|
|
|
|
|
|
+ %tireFront.createCircleCollisionShape( 0.8 );
|
|
|
|
+ SandboxScene.add( %tireFront );
|
|
TruckToy.FrontWheel = %tireFront;
|
|
TruckToy.FrontWheel = %tireFront;
|
|
|
|
|
|
// Suspension joints.
|
|
// Suspension joints.
|
|
TruckToy.RearMotorJoint = SandboxScene.createWheelJoint( TruckToy.TruckBody, %tireRear, "-1.4 -1.25", "0 0", "0 1" );
|
|
TruckToy.RearMotorJoint = SandboxScene.createWheelJoint( TruckToy.TruckBody, %tireRear, "-1.4 -1.25", "0 0", "0 1" );
|
|
- TruckToy.FrontMotorJoint = SandboxScene.createWheelJoint( TruckToy.TruckBody, %tireFront, "1.7 -1.25", "0 0", "0 1" );
|
|
|
|
|
|
+ TruckToy.FrontMotorJoint = SandboxScene.createWheelJoint( TruckToy.TruckBody, %tireFront, "1.7 -1.25", "0 0", "0 1" );
|
|
}
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
@@ -764,7 +764,7 @@ function TruckToy::createTruck( %this, %posX, %posY )
|
|
function truckForward(%val)
|
|
function truckForward(%val)
|
|
{
|
|
{
|
|
if(%val)
|
|
if(%val)
|
|
- {
|
|
|
|
|
|
+ {
|
|
if ( !TruckToy.TruckMoving )
|
|
if ( !TruckToy.TruckMoving )
|
|
{
|
|
{
|
|
%driveActive = false;
|
|
%driveActive = false;
|
|
@@ -777,7 +777,7 @@ function truckForward(%val)
|
|
{
|
|
{
|
|
SandboxScene.setWheelJointMotor( TruckToy.FrontMotorJoint, false );
|
|
SandboxScene.setWheelJointMotor( TruckToy.FrontMotorJoint, false );
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
if ( TruckToy.RearWheelDrive )
|
|
if ( TruckToy.RearWheelDrive )
|
|
{
|
|
{
|
|
SandboxScene.setWheelJointMotor( TruckToy.RearMotorJoint, true, -TruckToy.WheelSpeed, 10000 );
|
|
SandboxScene.setWheelJointMotor( TruckToy.RearMotorJoint, true, -TruckToy.WheelSpeed, 10000 );
|
|
@@ -786,15 +786,15 @@ function truckForward(%val)
|
|
else
|
|
else
|
|
{
|
|
{
|
|
SandboxScene.setWheelJointMotor( TruckToy.RearMotorJoint, false );
|
|
SandboxScene.setWheelJointMotor( TruckToy.RearMotorJoint, false );
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
if ( %driveActive )
|
|
if ( %driveActive )
|
|
{
|
|
{
|
|
TruckToy.TruckExhaust.SizeScale *= 4;
|
|
TruckToy.TruckExhaust.SizeScale *= 4;
|
|
TruckToy.TruckExhaust.ForceScale /= 2;
|
|
TruckToy.TruckExhaust.ForceScale /= 2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
TruckToy.TruckMoving = true;
|
|
TruckToy.TruckMoving = true;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
@@ -830,14 +830,14 @@ function truckReverse(%val)
|
|
{
|
|
{
|
|
SandboxScene.setWheelJointMotor( TruckToy.RearMotorJoint, false );
|
|
SandboxScene.setWheelJointMotor( TruckToy.RearMotorJoint, false );
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
if ( %driveActive )
|
|
if ( %driveActive )
|
|
{
|
|
{
|
|
TruckToy.TruckExhaust.SizeScale *= 4;
|
|
TruckToy.TruckExhaust.SizeScale *= 4;
|
|
TruckToy.TruckExhaust.ForceScale /= 2;
|
|
TruckToy.TruckExhaust.ForceScale /= 2;
|
|
- }
|
|
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
TruckToy.TruckMoving = true;
|
|
TruckToy.TruckMoving = true;
|
|
}
|
|
}
|
|
else
|
|
else
|
|
@@ -860,7 +860,7 @@ function TruckToy::truckStop(%this)
|
|
TruckToy.TruckExhaust.SizeScale /= 4;
|
|
TruckToy.TruckExhaust.SizeScale /= 4;
|
|
TruckToy.TruckExhaust.ForceScale *= 2;
|
|
TruckToy.TruckExhaust.ForceScale *= 2;
|
|
|
|
|
|
- // Flag truck as not moving.
|
|
|
|
|
|
+ // Flag truck as not moving.
|
|
TruckToy.TruckMoving = false;
|
|
TruckToy.TruckMoving = false;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -911,7 +911,7 @@ function TruckToy::setRearWheelDrive( %this, %value )
|
|
function TruckToy::setProjectileRate( %this, %value )
|
|
function TruckToy::setProjectileRate( %this, %value )
|
|
{
|
|
{
|
|
%this.ProjectileRate = %value;
|
|
%this.ProjectileRate = %value;
|
|
-
|
|
|
|
|
|
+
|
|
// Start the timer.
|
|
// Start the timer.
|
|
TruckToy.startTimer( "createProjectile", TruckToy.ProjectileRate );
|
|
TruckToy.startTimer( "createProjectile", TruckToy.ProjectileRate );
|
|
}
|
|
}
|
|
@@ -956,4 +956,3 @@ function TruckToy::onTouchUp(%this, %touchID, %worldPosition)
|
|
// Stop the truck.
|
|
// Stop the truck.
|
|
TruckToy.truckStop();
|
|
TruckToy.truckStop();
|
|
}
|
|
}
|
|
-
|
|
|