Probleme mit Modulo
Übersicht

McThyzerBetreff: Probleme mit Modulo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo!
Ich möchte eine "Weltkugel" machen, also wenn man links angekommen ist, soll man rechts wieder rein kommen. Das hab ich schon mehrmals gemacht, jedoch habe ich momentan das problem, dass der Wert von -3233 zu 3232 springen soll und von 3233 zu -3232. Modulo geht aber nur von 0 bis WertX. Ich hab versucht es so zu umgehen: (CenterX - width/2) sowie (CenterY - height/2) sind die Werte die "springen" müssen. Aber das Programm springt hin und her wie es lustig ist. :S Weiß jemand wie ich das vernünftig mache? Mit +6464 und nachher -3232 wieder abziehen hab ich es auch nicht hinbekommen. Code: [AUSKLAPPEN] Local blncrX = 1
Local blncrY = 1 If (CenterX - width/2) < 0 Then CenterX = Abs(CenterX) blncrX = -1 EndIf If (CenterY - height/2) < 0 Then CenterY = Abs(CenterY) blncrY = -1 EndIf CenterX = (((CenterX - width/2 + 3232) Mod 3232) + width/2) * blncrX CenterY = (((CenterY - height/2 + 3232) Mod 3232) + height/2) * blncrY |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn eine Formel mit normalen Operatoren zu kompliziert ist oder man einem gerade keine einfache einfällt sind meistens Vergleichsoperatoren die beste (Übergangs-)Lösung:
Code: [AUSKLAPPEN] i=i-6464*(i>3232)+6464*(i<-3232)
Aber ich hätte wahrscheinlich eine Variable durch den Wertebereich 0 - 6463 begrenzen: Code: [AUSKLAPPEN] i=i Mod 6464
und immer wenn ich den Wert brauche, (i-3232) angegeben. Je nachdem, ob jetzt 3232 auf -3232 oder -3231 springen soll, müsstest du das anpassen. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
BlitzMoritz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, dies hier macht das, was du willst: Läuft zweimal von -29 bis 17. Mit deinen eigenen Werten ist es nicht anders. Vereinfache deine Terme einfach in kleine Schritte und verwurstel nicht zuviel auf einmal.
BlitzMax: [AUSKLAPPEN] Const i_Minimum% = -29 'tatsaechliches negatives Minimum |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group