Für ein Flash-Spielprojekt, an dem ich arbeite, möchte ich eine Kamera erstellen, die mithilfe von Strahlverfolgung einen Spieler erkennen kann. Die Kamera sollte unterschiedliche Blickwinkel haben können (z. B. 45 Grad oder 90 Grad), und je nach diesen Blickwinkeln sollte sich die Strahlverfolgung ändern. Das Erstellen der tatsächlichen Blickwinkel mithilfe der Strahlverfolgung stellt kein Problem dar, jedoch sind aus irgendeinem Grund die Winkel, in denen sich diese Blickwinkel befinden, falsch positioniert.
Dies ist der Code, den ich verwende:
for (var i:Number = 0; i < this._viewAngle; i++)
{
var pointX:Number = (this._viewRange) * Math.cos(this._viewAngle + (i * Math.PI / 180));
var pointY:Number = (this._viewRange) * Math.sin(this._viewAngle + (i * Math.PI / 180));
this._rayHolder.graphics.lineTo(pointX, pointY);
this._rayHolder.graphics.moveTo(0, 0);
}
Und das ist das Ergebnis:
(90 Grad)
(45 Grad)
Ich hoffe, was ich geschrieben habe, war verständlich genug, da ich nicht weiß, wie ich es klarer erklären soll. Wenn jemand etwas Licht darauf werfen könnte, was ich hier falsch mache, wäre das großartig.
EDIT:
Ändern von Math.cos(this._viewAngle + (i * Math.PI / 180));
zu Math.cos((this._viewAngle + i) * Math.PI / 180);
führt zu folgendem Ergebnis:
(90 Grad)
(45 Grad)