6. ball.x += vel.x;
ball.y += vel.y;
//ball.rotation += vel.x;
}
//this will make sure the ball doesnt dissappear off stage
if (ball.x > stage.stageWidth || ball.x < 0 || ball.y < -500 ||
ball.y > stage.stageHeight + 100)
{
resetPlay();
}
//below draw elastic string
elastic.graphics.clear();
elastic.graphics.lineStyle(0.5, 0x9999999);
if (ball.y > point1.y && ball.x < point2.x)
7. {// the ball falls within range of bending the string
forced = true;
var x1:Number = ball.x - point1.x;
var y1:Number = ball.y - point1.y;
var x2:Number = point2.x - ball.x;
var y2:Number = point2.y - ball.y;
var distance1:Number = Math.sqrt(x1*x1+y1*y1);
var distance2:Number = Math.sqrt(x2*x2+y2*y2);
angle1 = Math.atan2(y1,x1);
angle2 = Math.atan2(y2,x2);
var xOffset:Number =
Math.cos(angle1+Math.PI/2)*radius;
var yOffset:Number =
Math.sin(angle1+Math.PI/2)*radius;
var xOffset2:Number =
Math.cos(angle2+Math.PI/2)*radius;
var yOffset2:Number =
Math.sin(angle2+Math.PI/2)*radius;
8. angle1 += Math.sin(radius/distance1);
angle2 += Math.sin(radius/distance2)*-1;
elastic.graphics.moveTo(point1.x, point1.y);
elastic.graphics.lineTo(ball.x+xOffset,
ball.y+yOffset);
elastic.graphics.moveTo(point2.x, point2.y);
elastic.graphics.lineTo(ball.x+xOffset2,
ball.y+yOffset2);
}
else
{
// the ball falls out of range of bending the string;
forced = false;
elastic.graphics.moveTo(point1.x, point1.y);
elastic.graphics.lineTo(point2.x, point2.y);
10. }
//prevent you from moving can over the target
if (released == false && ball.x >point2.x) {
ball.stopDrag();
released = true;
resetPlay();
}
//calling collision functions
detectCollisions();
}
SlingShot/initials.as
import flash.display.MovieClip;
import flash.events.Event;
11. import flash.sensors.Accelerometer;
import flash.events.AccelerometerEvent;
stop();
var blockStarting:Object = {x:block.x , y:block.y};
var ballStarting:Object = {x:ball.x , y:ball.y};
trace (ballStarting.x, ballStarting.y);
var stick1Starting:Object = {x:stick1.x, y:stick1.y};
var stick2Starting:Object = {x:stick2.x, y:stick2.y};
var point1Starting:Object = {x:point1.x, y:point1.y};
var point2Starting:Object = {x:point2.x, y:point2.y};
12. var boxStarting:Object ={x:box.x, y:box.y};
//trace (boxStarting.x, boxStarting.y);
var theTargetStarting:Object = {x:theTarget.x, y:theTarget.y};
//trace (theTargetStarting.x, theTargetStarting.y);
var gravity = 0.15;
var angle1:Number = 0;
var angle2:Number = 0;
var radius:Number = 1;
var elasticCoefficient:Number = 0.0045;
var released:Boolean = true;
var forced:Boolean = false; //whether or not it is being pulled
down between the sticks
var acc:Object = {x:0, y:0};
var vel:Object = {x:0, y:0};
var hitOutline:Boolean = false;
13. var hitblockOutline:Boolean = false;
var hittheTarget:Boolean = false;
var elastic:MovieClip = new MovieClip();
addChild (elastic);
SlingShot/mouseEvents.as
import flash.events.MouseEvent;
ball.addEventListener (MouseEvent.MOUSE_DOWN,
ballDown);
function ballDown(event:MouseEvent)
{
resetPlay();
ball.x = mouseX;
ball.y = mouseY;
ball.startDrag();
released = false;//gravity will not affect ball when false
}
stage.addEventListener (MouseEvent.MOUSE_UP, ballUp);
function ballUp(event:MouseEvent)
{
ball.stopDrag();
released = true;// gravity will affect can
}