| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Mit der WinAPI zeichnen im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hi, ich habe mal versucht ein "in game menu" für ein Spiel nur mit der WinAPI zu schreiben. Also ...
![]() |
| | #1 (permalink) |
| Registriert seit: 02.12.07 ![]() Likes: 0 | Anzeige Hi, ich habe mal versucht ein "in game menu" für ein Spiel nur mit der WinAPI zu schreiben. Also ich möchte einfach nur in einem Spiel geometrische Formen und Texte zeichnen. Das Zeichnen an sich klappt schon aber mein Problem ist dass die Zeichnungen flackern weil das Spiel eben zu oft (zu schnell) neu gezeichnet wird. Gibt es vielleicht eine Methode dieses Flackern zu verhindern ? Ich habe schon überlegt einen Hintergrund in das Spiel einzufügen und dann nur in diesem Bereich zu zeichnen aber ich weiss gar nicht ob das möglich ist :/ MfG // Edit Ich programmiere in C++. |
| | |
| | #2 (permalink) |
| Registriert seit: 03.05.07 ![]() ![]() Likes: 50 | Du könnest mithilfe eines Timers den Redraw für, sagen wir mal 20 bis 30ms, sperren. Oder den Redraw nur dann ausführen, wenn wirklich eine Änderung stattgefunden hat. mfg benediktibk
__________________ The essential prerequisite for building an expert system is to have an expert. - Frederick P. Brooks, Junior Und wenn Ihr einen Politiker trefft der das gut findet - trefft ihn bitte ordentlich. - Chromatin |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 02.12.07 ![]() Likes: 0 | Nee das bringt auch nichts weil meine Zeichnung immer vom Spiel gelöscht wird ( Wenn das Spiel neu gezeichnet wird ). Hier mal ein Beispiel: Code:
hWindow = GetForegroundWindow();
hDC = GetDC (hWindow);
TextOut(hDC,10,10,"Hello World",11);
UpdateWindow (hWindow);
ReleaseDC (hWindow,hDC);
Sleep (30); |
| | |
| | #4 (permalink) |
| Senior Member Registriert seit: 03.09.05 ![]() Likes: 0 | http://en.wikipedia.org/wiki/Double_...puter_graphics Du kannst einfach ein neues Bild erzeugen und dessen DC zum Zeichnen verwenden und dieses Bild dann in das Fenster kopieren. Allerdings weiß ich nicht, wie die betroffenen Funktionen in der WinAPI heißen. Das sollte dir helfen: http://www.eggheadcafe.com/software/...ble-buffe.aspx |
| | |
| | #5 (permalink) |
| Registriert seit: 15.01.08 ![]() Likes: 0 | wenn ich das richtig verstanden habe geht es dir nur um das zeichnen des menüs. oder geht es explizit darum die winapi zu benutzen? (die ist nämich echt(unnötig) harter tobak) falls das nicht der fall ist kann ich dir für games und kleine grafik sachen nur SDL empfehlen, damit is son kram deutlich einfacher |
| | |
| | #6 (permalink) |
| Themenstarter Registriert seit: 02.12.07 ![]() Likes: 0 | Danke für die Antworten ich les mich mal durch die Links. |
| | |
| | #7 (permalink) |
| Registriert seit: 02.01.07 ![]() Likes: 0 | Lesco hat im Prinzip eine Lösung gegeben, die auch in SDL gängig ist. Das Flackern entsteht dadurch, dass du den Bildspeicher, der noch angezeigt wird, einfach löscht. Bis ein neues Bild geschrieben wird, dauert es aber. Wie lange das dauert, siehst du am flackern. Darum schreibt man beim Doppel-buffern nicht in den Buffer, der grade benutzt wird. So zeichnet man auf buffer B während A angezeigt wird, wenn B fertig ist werden Pointer getauscht (glaub ich zumindest, theoretisch am schnellsten), B wird angezeigt und auf A wird weiter geschrieben, usw. Keine Grauzone mehr. ![]() K.A. ob es sowas auch für die Winapi gibt, müsste aber. |
| | |
| | #8 (permalink) |
| Registriert seit: 15.01.08 ![]() Likes: 0 | jop so isses im grunde, nur würd eich in dem fall lieber auf sdl ausweichen anstatt in die(meiner mainung nach eh grottige) winapi doublebuffering zu implementieren. SDL is eh besser für alle arten von games und grafiken als die winapi |
| | |
| | #9 (permalink) |
| Registriert seit: 17.04.06 ![]() Likes: 3 | Für 2D Spiele in C/C++ sei auch noch wie immer die Allegro-Library genannt. Sehr einfach zu handhaben gut dokumentiert und man kommt schnell zum Erfolg.
__________________ http://chm0815.blogspot.com |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Linien zeichnen | :::Lük::: | (Web-) Design und webbasierte Sprachen | 5 | 18.02.08 18:19 |
| c++ tabelle als vorlage zeichnen | gelöscht | Code Kitchen | 2 | 16.10.05 21:31 |
| Direkt auf PC zeichnen !? | Caleb | Hardware Probleme | 5 | 01.05.05 01:41 |
| Programm zum zeichnen von Funktionen | matrixII | Linux/UNIX | 6 | 28.09.04 15:15 |
| Graph von Exponentialfunktion zeichnen | JiRd | Off topic-Zone | 1 | 13.06.04 12:40 |