 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.03.2003, 13:13 Titel: |
|
|
Hmm...hier bin ich ratlos.
Aber zeig doch mal den Code deiner Renderfunktion. Ich glaub zwar nich, dass der Fehler dort liegt, aber lieber einmal zu viel Bugs suchen als einmal zu wenig. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 30.03.2003, 14:23 Titel: |
|
|
Hier is meine Renderfunktion:
Code: |
void Render(void)
{
char MouseCoords[100];
DDraw.Clear(0);
LPDIRECTDRAWSURFACE7 lpDDSurface;
lpDDSurface = DDraw.CreateSurfaceFromBitmap("entwurf.bmp",60,50);
DDraw.GetBuffer()->BltFast(x, y, lpDDSurface, NULL, DDBLTFAST_WAIT);
thisTime = timeGetTime();
elapsedTime = thisTime - lastTime;
lastTime = thisTime;
FrameCount++;
Time = thisTime - FrameTime;
if(Time > 1000)
{
Frames = (FrameCount * 1000) / Time;
FrameTime = thisTime;
FrameCount = 0;
}
char Frame[30];
sprintf(Frame, "FPS: %-4d", Frames);
SrcText(DDraw.GetBuffer(), 0,0,Frame,CalcColor(0, 255, 255));
sprintf(MouseCoords, "X: %-4d Y:%-4d", MouseX, MouseY);
SrcText(DDraw.GetBuffer(), 650, 0, MouseCoords, CalcColor(0, 255,255));
DDraw.Flip();
}
|
Die Funktion SrcText is von mir und schaut so aus:
Code: |
void SrcText(LPDIRECTDRAWSURFACE7 lpDDSurface, int x, int y, char* text, int color)
{
HDC hDC;
lpDDSurface->GetDC(&hDC);
SetBkMode(hDC, TRANSPARENT);
SetTextColor(hDC, color);
TextOut(hDC, x, y, text, strlen(text));
lpDDSurface->ReleaseDC(hDC);
}
|
An SrcText scheint es aber nicht zu liegen, da ich auch einmal versucht habe das ganze ohne diese Funktion zu machen, und da gings auch. Bei den Frames funktioniert sie übrigens auch. |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.03.2003, 15:37 Titel: |
|
|
Du hast ja eine Funktion geschrieben mit dem Rückgabewert der Mausposition.
Code: | int GetMouseX(void) { return m_iMouseX; } |
In der Renderfunktion deklarierst du ein char Feld (MouseCoords) in das du mit sprintf die Variablen MouseX und MouseY kopierst.
Doch wo weist du diesen beiden Variablen den Rückgabewert der GetMouseX- und GetMouseXfunktion zu
Der aktuelle Wert ist zwar in m_iMouseX und m_iMouseY gespeichert, aber MouseX und MouseY enthalten so immer den gleichen Wert. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 31.03.2003, 13:53 Titel: |
|
|
Klar, hab ich vergessen. Hab eine andere Funktion:
Code: | void DInputEnter(void)
{
MouseX = DInput.GetMouseX(void);
MouseY = DInput.GetMouseY (void);
...
} |
Hab jetzt mal das ganze ohne DInput ausprobiert, also über die Callback. Da hat das ganze auch nicht funktioniert. Ist also auch immer gleich geblieben. |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 31.03.2003, 14:48 Titel: |
|
|
Debugge doch das ganze mal von vorne bis hinten durch(an DirectInput scheints ja nich zu liegen) und prüf mal, welche Variablen wann auf welchen Wert gesetzt werden. Vielleicht kommst du so auf den Fehler.  _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 31.03.2003, 15:14 Titel: |
|
|
Wenn sonst gar nix mehr hilft, schicke es mir einfach. |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 03.04.2003, 16:20 Titel: |
|
|
@Christian:
Vielen Dank fürs durchschauen des Quelltextes.
@allen anderen:
ebenfalls danke. |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 03.04.2003, 17:01 Titel: |
|
|
Habt ihr den Fehler gefunden?
Also mich würds interessieren! _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 04.04.2003, 11:52 Titel: |
|
|
So weit ich das überrissen hab lag der Fehler in der DDrawklasse, aber so ganz weiß ichs auch nich. Was war da der eigentlich Hauptfehler, Christian??? |
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 04.04.2003, 15:45 Titel: |
|
|
Hi,
das Hauptproblem war, dass du den Text zum falschen Zeitpunkt ausgegeben hast. Sowas macht man am besten immer an einer Stelle. Ansonsten kann es passieren, dass man in einen Buffer ausgibt, der gerade nicht mehr aktuell ist/schon nicht mehr angezeigt wird.
Das zweite Problem war, dass du bei jedem Durchlauf ein neues Surface angelegt hast (und das auch nie zerstört hast). In dem Fall hat es gereicht, wenn es einmal erstellt wird, da es ja sowieso immer die gleiche Bitmap war. Das dritte Problem war, dass du die DD-Objekte in der falschen Reihenfolge frei gegeben hast. Dadurch kam es zumindest bei mir zu einem Absturz beim Beenden des Programms.
Christian |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 04.04.2003, 16:06 Titel: |
|
|
Ich dachte auch schon, dass es daran liegen könnte, dass die Koordinaten nicht richtig ausgegeben oder aktualisiert werden. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 04.04.2003, 17:42 Titel: |
|
|
Stimmt. Bei mir ist er auch immer am Programmende abgestürtzt. Zumindestens als ich noch an den Partikelklassen gearbeitet habe, dich ich jetzt aber wegen übersichtlichkeitsproblemen aus dem Projekt verbannt habe. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|