2D Mauskoordinaten ?
-
Hi!
Ich programmiere zurzeit ein 2D Strategiespiel aber es gibt ein Problem...
Objekte(Fahrzeuge und dgl.) können schon geladen werden und es funktioniert alles wunderbar ... bis auf das Scrolling...
Das Scrollen soll so funktionieren dass der Cursor an den Bildrand bewegt wird und sich das Bild dann in die jeweile Richtung verschiebt...Ich hole mir einfach die Koordinaten des Cursors mit GetCursorPos(cursor);
Aber das Problem ist dass ich es nur auf einem Rechner so zum Laufen bringe...
Auf dem rechner hab ich WindowsME
wenn ich das ganze jetzt auf dem anderen mit Windows XP starte, dann hängt sich das Programm auf...(es erschein das typische "Fehlermeldung Senden?")
und das Problem ist eben genau das GetCursorPos(cursor);Ist das bei XP anders als bei ME???
Das Seltsame ist dass ich GetCursorPos aufrufen kann aber sobald ich
cursor->x verwende schmiert das programm ab!!!Auf dem ME-Rechner läuft alles einwandfrei..
Ich habs auch schon auf zwei anderen XP PCs probiert...da funktioniert es auch nicht!Ich verwende DX9, Visual C++ (WINAPI).
Komisch ist dass ich SetCursorPos(x,y); ohne Probleme aufrufen kann.
Ich hoffe ihr könnt mir helfen!
-
vermutlich ein bug in deinem code, möglicherweise zugriff auf einen nicht mehr existierenden speicher.. winme ist da ein wenig tolleranter. poste einfach das stückchen code bei dem es wegfliegt.
rapso->greets();
-
Ganz oben im Programm:
LPPOINT cursor;dann im while(game_is_not_over):
GetCursorPos(cursor); //funktioniert nochund ein wenig später:
sprintf(anzeige3,"Pos: x: %d y: %d",cursor->x,cursor->y); // hier passiert der mist Direct3D.DrawText(anzeige3,600,10,D3DCOLOR_XRGB(0,0,255));natürlich schreibt er auch :
warning C4700: Lokale Variable 'cursor' wurde ohne Initialisierung verwendetaber auf dem ME Rechner hat das keinerlei Probleme verursacht...
egal in welchem zusammenhang ich das cursor->x verwende...ob mit sprintf oder einfahc eine variable mit dem cursor->x gleichsetzen....
jedes mal schmeists ihn da auf
-
warning C4700: Lokale Variable 'cursor' wurde ohne Initialisierung verwendet
da stehts doch

LPPOINT cursor ist das selbe wie
POINT* cursor;fällt ir dabei was auf?
cursor zeigt irgendwo hin
besser is so:
POINT cursor;
GetCursorPos(&cursor);
-
Hi!
Das Prob hatte ich auch mal. Du musst abfragen, ob GetCursorPos auch erfolgreich einen Wert zurückgibt. Das tut es nämlich nicht immer!
-
Super Danke!...Jetzt funktionierts!
Seltsam is nur dass das ME irgendwie egal war...
-
Maxi schrieb:
warning C4700: Lokale Variable 'cursor' wurde ohne Initialisierung verwendet
da stehts doch

Muss man halt lesen, ist nicht so einfach...

Bye, TGGC (Fakten)