Benutzer-Werkzeuge

Webseiten-Werkzeuge


scripting:reference:standard_library:math:ceil

math.ceil

math.ceil(_a) rundet eine Zahl _a zur nächstgrößeren ganzen Zahl auf. Ist _a bereits eine ganze Zahl, bleibt sie unverändert.

print(math.ceil(3.4)) -- 4
print(math.ceil(3.0001)) -- 4
print(math.ceil(3)) -- 3
print(math.ceil(-3.4)) -- -3

Beispiel Anwendungsfall

math.ceil rundet stur auf - man kann damit aber auch eine Funktion schreiben, die wie gewohnt ab .5 aufrundet, sonst abrundet:

function Round(_a)
    return math.ceil(_a - 0.5)
end
 
print(Round(3.6)) -- 4
print(Round(3.0001)) -- 3
print(Round(3)) -- 3
print(Round(-3.4)) -- -3

Die Funktion Logic.SetTerrainNodeHeight setzt die Terrainhöhe an dem gegebenen Gitterpunkt auf der Karte auf eine bestimmte Höhe, womit sich vom Skript aus die Landschaft editieren lässt. Die Funktion arbeitet allerdings nicht mit den gewohnten Koordinaten (in Siedler-cm), sondern mit den Koordinaten der Gitterpunkte (in Siedler-m). Deshalb muss eine Koordinate durch 100 geteilt und auf eine ganze Zahl gerundet werden, um verwendet werden zu können. Angenommen auf der Karte befindet sich eine XD_ScriptEntity mit dem Namen „ChangeHeight“:

local PositionChangeHeight = GetPosition("ChangeHeight")
Logic.SetTerrainNodeHeight(Round( PositionChangeHeight.X/100 ), Round( PositionChangeHeight.Y/100 ), 1337)
scripting/reference/standard_library/math/ceil.txt · Zuletzt geändert: 2023/11/03 16:03 von fritz_98