Gegner rotiert sehr merkwuerdig [Flash 10]
| Beiträge: 15 Registriert: Jul 2011
| 03.11.2011, 16:39
Hallo Leute,
ich habe hier folgendes Problem: wenn ich mit meinem Player nahe an meinen Feind herankomme rotiert dieser in meine Richtung. Wenn ich aber nun meinen Feind mit meinem Player umkreise (dieser dreht sich entsprechend mit) dann macht er irgendwann ploetzlich eine 360 Grad-Drehung. Das passiert wenn ich ihn umkreise. Momentan weiss ich nicht wo der Fehler ist und komme einfach nicht mehr weiter. Es waere sehr nett, wenn mir da jemand bitte weiterhelfen koennte. Danke.
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
tempEnemy.dX = tempEnemy.x - player.x;
tempEnemy.dY = tempEnemy.y - player.y;
tempEnemy.rotateTo = toDegrees(getRadians(tempEnemy.dX, tempEnemy.dY));
if(tempEnemy.frame < 0) tempEnemy.frame += 360;
if(tempEnemy.frame > 359) tempEnemy.frame -= 360;
tempEnemy.trueRotation = int((tempEnemy.rotateTo - tempEnemy.frame) / tempEnemy.rotateSpeed);
tempEnemy.vX += (player.x - tempEnemy.x) / tempEnemy._speed;
tempEnemy.vY += (player.y - tempEnemy.y) / tempEnemy._speed;
tempEnemy.vX *= tempEnemy.decay;
tempEnemy.vY *= tempEnemy.decay;
private function toDegrees(radians:Number):Number
{
var degrees:Number = Math.floor(radians * 180 / Math.PI);
//trace (degrees);
return degrees;
}
private function getRadians(deltaX:Number, deltaY:Number):Number
{
var radian:Number = Math.atan2(deltaY, deltaX);
if (deltaY < 0)
{
radian += (2 * Math.PI);
}
return(radian);
}
|
| | | Beiträge: 1189 Wohnort: Boston MA Registriert: Feb 2006
| 03.11.2011, 16:55
|
|