[GELÖST] Irritation bei LoadAnimImage/DrawImage
Übersicht

CO2ehemals "SirMO"Betreff: [GELÖST] Irritation bei LoadAnimImage/DrawImage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
für ein momentanes Projekt habe ich einen Type THelicopter geschrieben BlitzMax: [AUSKLAPPEN] Type THelicopter Dieser enthält erstmal nur alle wichtigen Sachen, um den Helicopter zu malen, etc. Methoden: - ChangeFrame(NewFrame:Int): Ändert den Momentan anzuzeigenden Frame - Controls(): Diese Methode fängt die Tastendrücke zur Steuerung des Helis ab. Die Methode funktioniert soweit einwandfrei, nur der Teil zwischen Rem und EndRem nicht so ganz, und das ist auch die Frage (s.u.) - Draw(): Diese Methode Malt einfach den Helikopter - Update(): Diese Methode führt die Methoden Controls() und Draw() aus. Eine Debugausgabe In den Methoden ChangeFrame() und Draw() führt zu folgendem Ergebnis (Ausschnitt) Code: [AUSKLAPPEN] DebugLog:ChangeFrame: MomFrame = 1, NewFrame = 1
DebugLog:ChangeFrame: MomFrame = 2, NewFrame = 2 DebugLog:Draw: MomFrame = 2 DebugLog:ChangeFrame: MomFrame = 0, NewFrame = 0 DebugLog:ChangeFrame: MomFrame = 2, NewFrame = 2 DebugLog:Draw: MomFrame = 2 DebugLog:ChangeFrame: MomFrame = 0, NewFrame = 0 DebugLog:ChangeFrame: MomFrame = 2, NewFrame = 2 DebugLog:Draw: MomFrame = 2 DebugLog:ChangeFrame: MomFrame = 0, NewFrame = 0 DebugLog:ChangeFrame: MomFrame = 2, NewFrame = 2 DebugLog:Draw: MomFrame = 2 DebugLog:ChangeFrame: MomFrame = 0, NewFrame = 0 DebugLog:ChangeFrame: MomFrame = 2, NewFrame = 2 DebugLog:Draw: MomFrame = 2 DebugLog:ChangeFrame: MomFrame = 0, NewFrame = 0 DebugLog:ChangeFrame: MomFrame = 2, NewFrame = 2 DebugLog:Draw: MomFrame = 2 DebugLog:ChangeFrame: MomFrame = 0, NewFrame = 0 DebugLog:ChangeFrame: MomFrame = 2, NewFrame = 2 DebugLog:Draw: MomFrame = 2 DebugLog:ChangeFrame: MomFrame = 0, NewFrame = 0 DebugLog:ChangeFrame: MomFrame = 2, NewFrame = 2 DebugLog:Draw: MomFrame = 2 (Der Helikopter wurde in der Zeit bewegt) Im Main-Code wird der Helikopter wie folgt erzeugt BlitzMax: [AUSKLAPPEN] Include ".bmx\fcn\heli.bmx" Meine Frage wäre jetzt: Im Debuglog sieht man, dass ChangeFrame() öfter als erwartet ausgeführt wird. Allerdings stehe ich momentan total auf dem Schlauch, ich bin den gesamten Code schon insgesamt 3 Mal durchgegangen, mir fällt aber kein Fehler auf... |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
- Zuletzt bearbeitet von CO2 am So, März 03, 2013 21:02, insgesamt 2-mal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bitte entferne entweder die endlosen # Reihen oder füge Leerzeichen ein, damit du nicht das ganze Forenlayout zerstörst - danke. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
So wie Dein Code momentan aussieht, ist ja der Aufruf der Methode ChangeFrame völlig wegkommentiert. Was soll das?
Was ich so erraten kann aus dem Code: Es handelt sich um 3 Helikopter? Es gibt nur 4 Frames? Die sollen aber nicht der Reihe nach aufgerufen werden? Also 0-1-2-3? Nein? Irgendwie gibt es zwei Abfolgen 0-1-0-1-... und 2-3-2-3-...? Mögliche Ursache: BlitzMax: [AUSKLAPPEN] ### FRAMEWECHSEL LINKS (ROTOR) ### Im auskommentierten Teil rufst Du bei FRAMEWECHSEL ... (ROTOR) in zwei Varianten ChangeFrame nacheinander für die Möglichkeiten 0 und 2 auf. Allerdings kommt es nie zu deinem 2.Codeteil, denn wenn Self.MomFrame=2 ist oder Self.MomFrame=3 ist, wird es bereits im ersten Abschnitt auf 0 gesetzt!!! |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ Xeres: Ist geändert.
@ Midimaster: Zitat: Irgendwie gibt es zwei Abfolgen 0-1-0-1-... und 2-3-2-3-...?
- Das liegt daran, dass ein Helikopter-Modell wie folgt aussieht: Und sich aus den Aufrufen 0-1-0-1-... Eine "Rotor-Animation" nach rechts ergibt, aus den Aufrufen 2-3-2-3-... eine Animation nach links. Zitat: ... denn wenn Self.MomFrame=2 ist oder Self.MomFrame=3 ist, wird es bereits im ersten Abschnitt auf 0 gesetzt
- Daran hat es gelegen, der geänderte Code sieht wie folgt aus BlitzMax: [AUSKLAPPEN] '(...) Vielen Dank für die Hilfe! |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist es geschickt, aus dem .bmx Verzeichnis zu inkludieren? Ich hätte angst, dem Compiler dazwischen zu funken oder den ganzen Ordner zu verlieren, da nur temporäre Daten darin vermutet werden. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group