GetRelativePos

Parameter

(_target,_distance,_angle)

Name Typ Beschreibung
_target Number, String EntityID oder EntityName des Ziels
_distance Number Entfernung zun Ziel
_angle Number Winkel zum Ziel

Functionscode

Kopiere diese Funktion in die Skriptumgebung, in der sie benutzt werden soll.

function GetRelativePos(_target,_distance,_angle)
    if not IsExisting(_target)then
        return
    end
    if not _angle then
        _angle = 0;
    end
    local eID = GetID(_target);
    local pos2 = GetPosition(eID);
    local ori = Logic.GetEntityOrientation(eID)+_angle;
    if Logic.IsBuilding(eID) == 1 then
        x, y = Logic.GetBuildingApproachPosition(eID);
        pos2 = {X= x, Y= y};
        ori = ori -90;
    end
    local pos1 = { X= pos2.X+_distance * math.cos(math.rad(ori)),
                   Y= pos2.Y+_distance * math.sin(math.rad(ori))};
    return pos1;
end

Table: Relative Position nach den Angaben.

Bla Bla

Beschreibung

Berechnet eine Relative Position zu einer Entity in angegebener Entfernung und Winkel.

Mit dieser Funktion kann man sehr einfach Entities in einer Schleife in einem Ring aufstellen.

global ✔

lokal ✔

by totalwarANGEL

Beispiel

Es werden 8 Laternen im Kreis um den Marktplatz aufgestellt.

for i=45,360,40 do
      local pos = GetRelativePos("market1", 1500, i)
      Logic.CreateEntity( Entities.D_X_Lantern pos.X, pos.Y, 0, 0)
end

Demo-Map

<nicht vorhanden>

Zurück zu Funktionssammlungen | Drucken | Tags
Sofern nicht anders angegeben, steht der Inhalt dieser Seite unter Lizenz Creative Commons Attribution-ShareAlike 3.0 License