Subversion Repositories spacemission

Rev

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');