Zitat:
Hast Du versucht, das zu compilieren?
Das geht so nicht, da man Pos_End nichts zuweisen kann, da das eine Konstante ist.
Habe daraus eine Variable gemacht.
Es funktioniert nun einwandfrei, egal bei welcher Starthöhe. Es geht wird immer auf Minimum und Maximum gesetzt. Dafür sieht das auch etwas anders aus jetzt
Delphi-Quellcode:
if Height >= iMaxHeight then
begin
iNegative := -1;
// > ÄNDERUNG
iTmp := iMinHeight;
iMaxHeight := iMaxHeight - iTmp - (iMaxHeight - Height);
iTmp := Height;
end
else // if Height <= iMinHeight then
begin
iNegative := 1;
// > ÄNDERUNG
iTmp := Height;
iMaxHeight := iMaxHeight - iTmp;
end;
while (D < 3000) do
begin
iTmpRes := iTmp + (Round(iMaxHeight * QuintEasing(D, 3000)) * iNegative);
// mache was mit iTmpRes
end;
Funktioniert so bestens.
Zitat:
(Ich bin aber mathematisch leider eine Niete und tue mich schwer mit so etwas.)
geht mir genau so. Ich habe an diesen 4 Zeilen stunden lang gesessen und bestimmt 50x kompiliert und getestet
Berechnet habe ich da nix, da ich nicht weiß wie. Ich habe einfach alle Variablen genommen, zusammengemixt und geguckt wann das Resultat bei allen Szenarien richtig ist.