Rev 7 | Rev 14 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7 | Rev 11 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | unit GamMain; |
1 | unit GamMain; |
2 | 2 | ||
- | 3 | // TODO: 2024 Quellcode optimieren und klassen-namen überdenken |
|
- | 4 | // TODO: 2024 Form Screen center anstelle Desktop Center => OK! |
|
- | 5 | // TODO: 2024 Vollbild entf. |
|
- | 6 | // TODO: 2024 DPlayX.dll auskommentieren => OK! |
|
- | 7 | // TODO: 2024 Software-Update routine prüfen |
|
- | 8 | // TODO: 2024 EV CodeSign |
|
- | 9 | // TODO: 2024 Spielstände usw. "Spiele" Ordner speichern, Config in Registry sichern, etc. |
|
- | 10 | // TODO: 2024 Neue Einheiten => Medikit, Ufo das im Kreis fliegt und nicht weggeht |
|
- | 11 | // TODO: 2024 Bei Pause => Entweder alles grau werden lassen, oder irgendwo "Pause" hinschreiben (nur Not in die Form Caption) |
|
- | 12 | // TODO: 2024 Alle Notizen durchschauen |
|
- | 13 | // TODO: 2024 Boss schwieriger machen: Er soll auch nach links und rechts gehen? |
|
- | 14 | // TODO: 2024 Cooldown für Laser? |
|
- | 15 | // TODO: 2024 Musik und Sounds optimieren |
|
- | 16 | // TODO: 2024 Pausiertes Spiel: Fenster bewegen lässt das Spiel wieder starten |
|
- | 17 | // TODO: 2024 Zwei Fenster in Taskleiste |
|
- | 18 | // TODO: 2024 "Doku" in Hilfemenü einbinden, ggf. auch den Leveleditor ins Menü machen |
|
- | 19 | // TODO: 2024 Highscore Liste |
|
- | 20 | ||
3 | interface |
21 | interface |
4 | 22 | ||
5 | uses |
23 | uses |
6 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, MMSystem, Dialogs, |
24 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, MMSystem, Dialogs, |
7 | StdCtrls, ExtCtrls, Menus, DIB, DXClass, DXSprite, DXDraws, DXInput, DXSounds, |
25 | StdCtrls, ExtCtrls, Menus, DIB, DXClass, DXSprite, DXDraws, DXInput, DXSounds, |
8 | INIFiles, ShellAPI, wininet{$IF CompilerVersion >= 23.0}, Winapi.DirectDraw, |
26 | INIFiles, ShellAPI, wininet, DirectX; |
9 | System.UITypes{$ELSE}, DirectX{$IFEND}; |
- | |
10 | 27 | ||
11 | type |
28 | type |
12 | TGameScene = ( |
29 | TGameScene = ( |
13 | gsNone, |
30 | gsNone, |
14 | gsTitle, |
31 | gsTitle, |
Line 101... | Line 118... | ||
101 | FMode: Integer; |
118 | FMode: Integer; |
102 | protected |
119 | protected |
103 | procedure HitEnemy(ADead: Boolean); virtual; |
120 | procedure HitEnemy(ADead: Boolean); virtual; |
104 | public |
121 | public |
105 | procedure Hit(AHitStrength: integer = 1); |
122 | procedure Hit(AHitStrength: integer = 1); |
106 | constructor Create(AParent: TSprite; ALifes: integer); virtual; |
123 | constructor Create(AParent: TSprite; ALifes: integer); reintroduce; virtual; |
107 | destructor Destroy; override; |
124 | destructor Destroy; override; |
108 | end; |
125 | end; |
109 | 126 | ||
110 | TEnemyTama = class(TImageSprite) |
127 | TEnemyTama = class(TImageSprite) |
111 | private |
128 | private |
Line 2234... | Line 2251... | ||
2234 | GamePause.enabled := false; |
2251 | GamePause.enabled := false; |
2235 | Neustart.enabled := false; |
2252 | Neustart.enabled := false; |
2236 | Brush.Style := bsClear; |
2253 | Brush.Style := bsClear; |
2237 | Font.Size := 35; |
2254 | Font.Size := 35; |
2238 | Font.Color := clMaroon; |
2255 | Font.Color := clMaroon; |
2239 | Textout((dxdraw.surfacewidth div 2)-127, 98, 'Verloren!'); |
2256 | Textout((dxdraw.surfacewidth div 2)-127, 98, 'Game Over!'); |
2240 | Font.Color := clRed; |
2257 | Font.Color := clRed; |
2241 | Textout((dxdraw.surfacewidth div 2)-125, 100, 'Verloren!'); |
2258 | Textout((dxdraw.surfacewidth div 2)-125, 100, 'Game Over!'); |
2242 | if (FBlink div 300) mod 2=0 then |
2259 | if (FBlink div 300) mod 2=0 then |
2243 | begin |
2260 | begin |
2244 | Font.Size := 30; |
2261 | Font.Size := 30; |
2245 | Font.Color := clOlive; |
2262 | Font.Color := clOlive; |
2246 | Textout((dxdraw.surfaceWidth div 2)-187, dxdraw.surfaceheight-117, 'Weiter mit Leertaste'); |
2263 | Textout((dxdraw.surfaceWidth div 2)-187, dxdraw.surfaceheight-117, 'Weiter mit Leertaste'); |