-
24.11.11 13:05 #16
Also wenn du nur eine Update und Render Funkion willst mache es doch so:
Ich verstehe irgendwie dein Problem nicht richtig...Code cpp:1 2 3 4 5
while( !bEndGame ) { Update(); Render(); }
In der Update Methode würde ich dann die Nachrichten von deinem Fenster handeln. Und wenn sich im Spiel was bewegen soll musst halt noch 'ne Move() Funktion einbauen
Und ich glaube du weißt wie du die Nachrichten abfängst, oder?
MfG
Fehlermeldung bitte!
Google - Dein Freund und Helfer
-
24.11.11 17:38 #17
- Registriert seit
- Nov 2011
- Beiträge
- 148
Ja das verstehe ich auch aber ich verstehe nicht aber wie die Render Funktion auszusehen hat mit OpenGL...
Geändert von CodeCrafterCpp (24.11.11 um 21:01 Uhr)
-
24.11.11 22:02 #18
Also jetzt verstehe ich das nicht.
Hast du denn überhaupt schon eine renderfunktion geschrieben?
Also wenn nicht dann beschäftige dich nochmal mit den Grundlagen.
Und ich bin ja directx ler aber ich denke mal scene beginnen rendern Scene beenden und bildpuffer sichtbar machen. Aber wenn du wirklich nicht weißt wie man das macht dann lass das erstmal mit der spieleprogrammiereung
Fehlermeldung bitte!
Google - Dein Freund und Helfer
-
25.11.11 23:57 #19
- Registriert seit
- Nov 2011
- Beiträge
- 148
Also ich versteh nicht den Unterschied oder was es macht ist Update() einfach auslesen welche Taste ist gedrückt und Pos in einer Variable reinschreiben und Render() einfach DrawGLScene also Zeichnen oder wie?
-
26.11.11 00:09 #20
Kommt drauf an wie du es möchtest

Mach doch in Update erstmal ein Message Handler rein. in Render machst du nichts anderes außer den Bildschirm zu leeren. Dann vll noch Tastaturabfrage das wenn ESC gedrückt-> Beenden. Move lass erstmal weg. Was hast du denn eigentlich bis jezt schon? Denn wenn du noch nichtmal was anzeigst nützt dir ne Variable auch nicht viel
MfGFehlermeldung bitte!
Google - Dein Freund und Helfer
-
26.11.11 01:10 #21
- Registriert seit
- Nov 2011
- Beiträge
- 148
Wofür eigendlich Message Handler ist es nicht einfach mit Variablem zu Arbieten?
-
30.11.11 18:11 #22
Also das muss ich nicht verstehen. Hast du denn überhaupt ein Fenster!? Hast du das Fenster als Render-target?
Du brauchst eine Nachrichtenfunktion damit du dein Fenster benutzen kannst
Und wie auch immer du das mit Variablen machen willst->weiß ich nicht.
MfGFehlermeldung bitte!
Google - Dein Freund und Helfer
-
01.12.11 20:42 #23
- Registriert seit
- Nov 2011
- Beiträge
- 148
Ja ok wusste nicht so was ein Message Handler ist hab mir mal Win-Api ein bisschen gelernt wusste nicht das ich das brauch soll das in der Update Funktion? Ich hab auf MSDN geschaut ist der Handler jetzt die Callback oder wie?
-
02.12.11 14:32 #24
Also in welche Funktion du das schreibst ist dir überlassen. Von mir aus kannst du die Funktion auch Wurst nennen, wäre aber übersichtshalber nicht empfehlenswert
Also meine Spiele sind eigentlich immer mit der GameLoop ausgestattet. Diese ruft dann erst Update, Move und schließlich noch Render auf
In Update behandle ich die Fenster nachrichten, obwohl ich damit nichts mache(ich arbeite nur mit DirectInput). In Move werde dann alle möglichen Bewegungen ausgeführt, sowie die Physik geupdatet, und in Render wird halt alles gerendert. Daher das ich mir eine Engine schreibe, ist die GameLoop in der Engine und die vergangene Zeit rechnet mein Engine auch noch aus und übergibt sie dann der Move und Render Methode.
Wie genau das funnktioniert möchte ich nicht unbedingt erklären, aber gucke dir mal QueryPerformanceCounter an um die Zeiten zu messen
MfGFehlermeldung bitte!
Google - Dein Freund und Helfer
-
02.12.11 20:15 #25
- Registriert seit
- Nov 2011
- Beiträge
- 148
Ok Danke...
Also mach die Update so WM und so ein kram die Move halt welche taste gedrückt ist und Render macht dann das Bild...Mein Problem war ja eigendlich nur das mit den Springen also das mit den Zählen aber wie Mess ich das mach ich vor den aufrufen von Update die erste Messung und unter Rendern die Zweite? Und wie rechne ich das denn?
-
02.12.11 20:39 #26
Also wie du das misst: Anfang bis Ende
Du ließt die Zeit aus mit der Funktion die ich schon geschrieben habe. Dann machst du Meesage Handler, Move, Render und nimmst wieder die Zeit. Dann hast du 2 Zeiten. Anschließend rechnest du so:
Das war nicht schwer oderCode cpp:1
Zeit = Zeit2 - Zeit1;

Und in move werde Tasten abgefangen ja aber auch Objekte gedreht bewegt usw...
PS In welcher reihfolge die GameLoop alles abfrag ist dir überlassen. Es währe aber ratsam den Message Handler am Anfang aufzurufen.
Also:
MfGCode cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
// Startzeitpunkt messen QueryPerformanceCounter(...); // Nachrichten verarbeiten while( PeekMessage( &Message, NULL, 0, 0, PM_REMOVE ) ) { TranslateMessage( &Message ); DispatchMessage( &Message ); if( Message.message == WM_QUIT ) { // Game Loop verlassen bEndGame = true; } } // Render // Move // und was du sonst noch brauchst QueryPerformanceCounter(...);
EDIT: Wenn du es ganz genau haben willst mit Frame Limiter dann musst du noch geteilt durch die Frequenz nehemen
Fehlermeldung bitte!
Google - Dein Freund und Helfer
Ähnliche Themen
-
Hot Jump
Von Dicrivity im Forum Hall of FameAntworten: 4Letzter Beitrag: 22.06.09, 22:45 -
World Jump Day!
Von Ultraflip im Forum SmalltalkAntworten: 33Letzter Beitrag: 20.07.06, 23:52 -
Unable to jump to row 0?
Von Muffinmampfer im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 22.08.02, 05:49 -
[jump to] links
Von :: c0rt0na :: im Forum HTML-EditorenAntworten: 4Letzter Beitrag: 03.10.01, 14:13 -
jump and run game
Von guigui im Forum Flash PlattformAntworten: 1Letzter Beitrag: 11.09.01, 12:24



8Danke

Zitieren
Login






