- Adobe Flash cs4 rotation math
- var angle:Number = Math.atan2(foodTarget.y - y, foodTarget.x - x);
- foodLocationDegrees =Math.floor((angle * 180 / Math.PI));
- public function moveToFood():void
- {
- var dx:Number = x - _destinationX;
- var dy:Number = y - _destinationY;
- trace("Food location degree relative to fish mouth "+foodLocationDegrees);
- var targetRotation:Number = 0;
- if (foodLocationDegrees > 0 && foodLocationDegrees < 90)
- {
- trace("food is on 1st quadrant of the fish mount");
- this.x -= dx / 18;
- this.y -= dy / 18;
- }else if (foodLocationDegrees > 90 && foodLocationDegrees < 180)
- {
- trace("food is on 2nd quadrant of the fish mount");
- this.x -= dx / 18;
- this.y -= dy / 18;
- }else if (foodLocationDegrees > -180 && foodLocationDegrees < -90)
- {
- trace("food is on 3nd quadrant of the fish mount");
- this.x -= dx / 18;
- this.y -= dy / 18;
- }else if (foodLocationDegrees < 0 && foodLocationDegrees > -90)
- {
- trace("food is on 4nd quadrant of the fish mount");
- this.x -= dx / 18;
- this.y -= dy / 18;
- }
- trace("Before adding Rotation " + rotation);
- var number:Number = (foodLocationDegrees - (rotation - 90)) * .1;
- trace("rotation to add "+number);
- rotation += (foodLocationDegrees - (rotation - 90)) * .2;
- trace("After adding Rotation " + rotation);
- //removing food when both hit boxes hit
- if (hit.hitTestObject(foodTarget.hit))
- {
- foodInPond--;
- foodTarget.removeSelf();
- }
- }
- public function moveToFood(food:Food):void
- {
- var speed:Number = 6.5;
- var a:Number = food.x - x;
- var b:Number = food.y - y;
- var ang:Number = Math.atan2(b, a);
- rotation = ang * 180 / Math.PI;
- x += Math.cos(ang) * speed;
- y += Math.sin(ang) * speed;
- }