Ich habe mich schon ganz oft beim GM gefragt, warum manche Sachen einfach nicht wollen. Da hat eine Instance z.B. einen speed von 0.2 und und bei einem erreichten speed von 12 soll sie stehen bleiben. if speed = 12 hat aber komischweise nie funktioniert. Das war schon zu GM 5 Zeiten...
Deshalb habe ich selber immer mit >= gearbeitet, ohne mich mehr damit zu beschäftigen.
Gestern aber biss ich mir die Zähne an der Tollig-Engine aus. 5 mod 1 war laut GM = 1 (mod ist der Rest einer ganzzahligen Division, es müsste also 0 sein, da die 1 glatt 5mal reinpasst). Mit show_message(string(variable)) und show_debug_message(string(variable)) versuchte ich weiterzukommen, die gaben aber immer korrekte Werte zurück.
Ich kam auf die Idee, im Debug-Modus mir die Variable anzeigen zu lassen. und was seh ich da? 1.2 + 0.2 sind nicht 1.4, sondern 1,3999980 oder ähnlicher Mist. Man beachte, dass per Komma und nicht der Punkt getrennt wurde. Deshalb vermute ich, dass es am Betriebsystem liegt. Da bei string() nur die ersten zwei Nachkommastellen wiedergegeben werden, ist es nicht verwunderlich, dass niemand diesen Bug bisher gefunden hat - Ich behaupte, dass er schon seit dem GM5 drin ist.
Bitte prüft es selber nach:
Erstellt eine GM6, einen Raum, ein object mit einfachen Namen. Im Create Event setzt ihr eine Variable = 0. In einem Key-Press(!)-Event schreib ihr Variable += 0.2. Nun startet ihr das Spiel im Debug-Modus und beobachtet object0.Variable. Drückt nun die entsprechende Taste (Nicht vergessen, das Spielfenster wieder anzuwählen), und beobachtet das Debug-Fenster.
Achtung: Sagt bitte eure Ergebnisse, und welche Sprache euer Betriebssystem hat. Wie ich bereits sagte, tritt dieser Fehler vielleicht nur in Sprachen mit Kommata als Trennzeichen auf!
Deshalb habe ich selber immer mit >= gearbeitet, ohne mich mehr damit zu beschäftigen.
Gestern aber biss ich mir die Zähne an der Tollig-Engine aus. 5 mod 1 war laut GM = 1 (mod ist der Rest einer ganzzahligen Division, es müsste also 0 sein, da die 1 glatt 5mal reinpasst). Mit show_message(string(variable)) und show_debug_message(string(variable)) versuchte ich weiterzukommen, die gaben aber immer korrekte Werte zurück.
Ich kam auf die Idee, im Debug-Modus mir die Variable anzeigen zu lassen. und was seh ich da? 1.2 + 0.2 sind nicht 1.4, sondern 1,3999980 oder ähnlicher Mist. Man beachte, dass per Komma und nicht der Punkt getrennt wurde. Deshalb vermute ich, dass es am Betriebsystem liegt. Da bei string() nur die ersten zwei Nachkommastellen wiedergegeben werden, ist es nicht verwunderlich, dass niemand diesen Bug bisher gefunden hat - Ich behaupte, dass er schon seit dem GM5 drin ist.
Bitte prüft es selber nach:
Erstellt eine GM6, einen Raum, ein object mit einfachen Namen. Im Create Event setzt ihr eine Variable = 0. In einem Key-Press(!)-Event schreib ihr Variable += 0.2. Nun startet ihr das Spiel im Debug-Modus und beobachtet object0.Variable. Drückt nun die entsprechende Taste (Nicht vergessen, das Spielfenster wieder anzuwählen), und beobachtet das Debug-Fenster.
Achtung: Sagt bitte eure Ergebnisse, und welche Sprache euer Betriebssystem hat. Wie ich bereits sagte, tritt dieser Fehler vielleicht nur in Sprachen mit Kommata als Trennzeichen auf!