Es soll ohne direktx und ohen opengl geschehen, weil es übersichtlich sein soll. Allein die Inizialisierung von opengl schreckt doch nur ab.
Es soll mehr allgemein sein, welche Sachen man dafür verwendet. z.B Image, timer, application event usw.
Darin wird dann geklärt wo man z.b das Zeichnen gewerkstelligen soll. Die open gl Funktionen dafür kann man doch noch nachträglich einfügen, deshalb soll es rein auf Delphi aufgebaut sein.
So ungefähr hätte ich mir das vorgestellt:
- Die Form, man benötigt einen Timer, ein Image,2 buttons und
ein application event. Diese bedeuten...
- Damit es nicht flimmert entweder doupel buffert := true (Bitte nicht auf Rechtschreibfehler achten) oder
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure Tform1.WMEraseBkgnd(var m : TWMEraseBkgnd); begin m.Result := LRESULT(False); end;
//und unter private { Private declarations } procedure WMEraseBkgnd(var m: TWMEraseBkgnd); message WM_ERASEBKGND; |
Dieses bewirkt das die Form nicht mehr nachgezeichnet wird, dann ist sie allerdings durchsichtig und es empiehlt sich ein ganzes großes image drüberzulegen was sie vollkommen abdeckt...
- Ablauf:
-Werte inizialisieren in...
- application event on idle wird auf image ausgeben
(done:=false setzen)...
-in timer wird berechnet
dies geschieht, weil...
- sinnvol : bei vielen Objekten gleicher Art:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| type Tkreuzer=record x:real; y:real; waag:real; senk:real; bes:real; ges:real; p:integer; sx:real; sy:real; such:integer; end; ...
var Kreuzer:array[0..39]of Tkreuzer; ... |
eingenen Klassen deklarien und als Array in scheifen beartbeiten. dabei werden die einzelnen Para so aufgerufen: kreuzer[].x:
- Bitmap mit z.b Paint erzeugen und unter Programmordner
speichern. Abbruf erfolgt durch:
Am Anfang eimal in Variable laden:...
Unter Zeichnen so z.b ausgeben:
Quelltext
1: 2: 3:
| Brush.Bitmap :=Bblausp; draw(round(Sp[0].x)-1,round(Sp[0].y)-1,Bblausp); Brush.Bitmap := nil; |
Am Ende free setzen :...
...
Bitte nicht zu sehr auf Fehlergenauigkeit achten, dass hab ich einfach so runtergeschriebn, es soll nur verdeutlichen, wie ich es gemeint habe.
Dieses Tut soll nicht alle Möglichkeiten sagen, sondern einen Weg, wie man sein eigenes Echtzeitspiel programmiert. z.B:(Snake, 2DGefechte usw.)