29/01/2008

Daily Jam

No movie clips today. Just some code.


package {
import Math;

public class JamBounce {

public function JamBounce () {
var welcomeMessage = "JamBounce Class written by Joshua Russell-Hobson.\nVersion 0.1\n";
trace(welcomeMessage);
}

public function calcAdj( angle:int, distance:int ):Number {
return ( Math.sin( angle / (180 / Math.PI) ) * distance );
}

public function calcOpp( distance:int, adj:Number ):Number {
return Math.sqrt(Math.pow(distance,2) - Math.pow(adj, 2));
}

// Angle Math
public function angleMath( myX:int, myY:int, angle:int, distance:int ):GridLocation {

var newX:Number;
var newY:Number;
var opp:Number;
var adj:Number;


/* I think that Opp and Adj might be the wrong way round.
*/
if ( angle <= 90 ) { adj = calcAdj( angle, distance ); opp = calcOpp( distance, adj ); newX = myX + adj; newY = myY - opp; } else if ( angle <= 180 ) { adj = calcAdj( angle - 90, distance ); opp = calcOpp( distance, adj ); newX = myX + opp; newY = myY + adj; } else if ( angle <= 270 ) { adj = calcAdj( angle - 90, distance ); opp = calcOpp( distance, adj ); newX = myX - opp; newY = myY + adj; } else { adj = calcAdj( angle - 90, distance ); opp = calcOpp( distance, adj ); newX = myX - opp; newY = myY + adj; } return new GridLocation( newX, newY ) ; } } }

No comments: