| Name | Typ | Von |
|---|---|---|
| alignObj("c", "t") | Definition | AFRLme |
Mit dieser kleinen Funktion kannst du schnell einen Charakter an einem Objekt ausrichten.
| Zusätzliche Informationen |
|---|
| Die Ausrichtung basiert auf der Zeichenmitte, die normalerweise in der Nähe der Füße liegt. |
| Es gibt keine einfache Methode zum Ermitteln der oberen (y) Pixelkoordinate der aktuell aktiven Charakteranimation. |
| Die Ausrichtung am Objekt basiert auf der Interaktionsposition des Objekts. Möglicherweise ändere ich dies in Zukunft in die Position des Objektversatzes. |
Anweisungen
1. Füge das Hauptskript im Skripteditor von Visionaire Studio hinzu und lege es als Definitionsskript fest.
2a. Den aktuellen Charakter an einem Objekt ausrichten ...
alignObj(nil, "Rock")
2b. Um ein bestimmtes Zeichen an einem Objekt auszurichten ...
alignObj("Tom", "Rock")
Hauptskript
function alignObj(c, t)
if c == nil then c = game.CurrentCharacter else c = Characters[c] end -- store character or current character
t = game.CurrentScene.Objects[t] -- store target object
-- + --
local p1 = c.Position -- store character position
local p2 = t.Position -- store object position
-- + --
local ax, ay
ax = p2.x - p1.x -- calculate x destination coordinate
ay = p1.y - p2.y -- calculate y destination coordinate
-- + --
local angle = math.deg( math.atan(ay, ax) ) -- calculate angle
if angle < 0 then angle = 360 + angle end -- some fallback? I don't remember why I wrote it
-- + --
c.Direction = angle -- update specified characters direction
end
Syntaxaufschlüsselung
| Name | Typ | Beschreibung |
|---|---|---|
| c | „string“ oder null | Ein „String“-Wert mit dem Namen des Charakters, der ausgerichtet werden soll, oder nil für den aktuellen Charakter. |
| t | „Zeichenfolge“ | Ein „String“-Wert mit dem Namen des Objekts, an dem du ausrichten möchtest. |