Rev 30 | Rev 40 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 30 | Rev 31 | ||
---|---|---|---|
Line 4... | Line 4... | ||
4 | 4 | ||
5 | uses |
5 | uses |
6 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, MMSystem, |
6 | Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, MMSystem, |
7 | Dialogs, StdCtrls, ExtCtrls, Menus, DIB, DXClass, DXSprite, DXDraws, |
7 | Dialogs, StdCtrls, ExtCtrls, Menus, DIB, DXClass, DXSprite, DXDraws, |
8 | DXSounds, Spin, ComCtrls{$IF CompilerVersion >= 23.0}, System.UITypes, |
8 | DXSounds, Spin, ComCtrls{$IF CompilerVersion >= 23.0}, System.UITypes, |
9 | WinAPI.DirectDraw{$ENDIF}, DirectX, ComLevelReader; |
9 | WinAPI.DirectDraw{$ENDIF}, DirectX, ComLevelReader, Global; |
10 | 10 | ||
11 | type |
11 | type |
12 | TMainForm = class(TDXForm) |
12 | TMainForm = class(TDXForm) |
13 | MainMenu: TMainMenu; |
13 | MainMenu: TMainMenu; |
14 | Spiel: TMenuItem; |
14 | Spiel: TMenuItem; |
Line 82... | Line 82... | ||
82 | AltScrollPos: integer; |
82 | AltScrollPos: integer; |
83 | Boss: boolean; |
83 | Boss: boolean; |
84 | LevChanged: boolean; |
84 | LevChanged: boolean; |
85 | NumEnemys: integer; |
85 | NumEnemys: integer; |
86 | function SelectedEnemyType: TEnemyType; |
86 | function SelectedEnemyType: TEnemyType; |
- | 87 | { Grafik-Routinen } |
|
- | 88 | function GetSpriteGraphic(Sprite: TSpaceMissionGraphicSprite): TPictureCollectionItem; |
|
87 | { Level-Routinen } |
89 | { Level-Routinen } |
88 | procedure EnemyCreateSprite(x, y: integer; AEnemyType: TEnemyType; ALives: integer); |
90 | procedure EnemyCreateSprite(x, y: integer; AEnemyType: TEnemyType; ALives: integer); |
89 | procedure DestroyLevel; |
91 | procedure DestroyLevel; |
90 | procedure RefreshFromLevData; |
92 | procedure RefreshFromLevData; |
91 | procedure AnzeigeAct; |
93 | procedure AnzeigeAct; |
Line 101... | Line 103... | ||
101 | MainForm: TMainForm; |
103 | MainForm: TMainForm; |
102 | 104 | ||
103 | implementation |
105 | implementation |
104 | 106 | ||
105 | uses |
107 | uses |
106 | Global, LevSplash, LevSpeicherung, ComInfo, LevOptions; |
108 | LevSplash, LevSpeicherung, ComInfo, LevOptions; |
107 | - | ||
108 | const |
- | |
109 | RasterW = 48; |
- | |
110 | RasterH = 32; |
- | |
111 | 109 | ||
112 | {$R *.DFM} |
110 | {$R *.DFM} |
113 | 111 | ||
114 | type |
112 | type |
115 | TBackground = class(TBackgroundSprite) |
113 | TBackground = class(TBackgroundSprite) |
Line 150... | Line 148... | ||
150 | end; |
148 | end; |
151 | 149 | ||
152 | constructor TEnemy.Create(AParent: TSprite; AEnemyType: TEnemyType; ALives: Integer); |
150 | constructor TEnemy.Create(AParent: TSprite; AEnemyType: TEnemyType; ALives: Integer); |
153 | begin |
151 | begin |
154 | inherited Create(AParent); |
152 | inherited Create(AParent); |
155 | if AEnemyType = etEnemyAttacker then Image := MainForm.ImageList.Items.Find('Enemy-Attacker'); |
153 | if AEnemyType = etEnemyAttacker then Image := MainForm.GetSpriteGraphic(smgEnemyAttacker); |
156 | if AEnemyType = etEnemyAttacker2 then Image := MainForm.ImageList.Items.Find('Enemy-Attacker2'); |
154 | if AEnemyType = etEnemyAttacker2 then Image := MainForm.GetSpriteGraphic(smgEnemyAttacker2); |
157 | if AEnemyType = etEnemyAttacker3 then Image := MainForm.ImageList.Items.Find('Enemy-Attacker3'); |
155 | if AEnemyType = etEnemyAttacker3 then Image := MainForm.GetSpriteGraphic(smgEnemyAttacker3); |
158 | if AEnemyType = etEnemyMeteor then Image := MainForm.ImageList.Items.Find('Enemy-Meteor'); |
156 | if AEnemyType = etEnemyMeteor then Image := MainForm.GetSpriteGraphic(smgEnemyMeteor); |
159 | if AEnemyType = etEnemyUFO then Image := MainForm.ImageList.Items.Find('Enemy-Disk'); |
157 | if AEnemyType = etEnemyUFO then Image := MainForm.GetSpriteGraphic(smgEnemyDisk); |
160 | if AEnemyType = etEnemyUFO2 then Image := MainForm.ImageList.Items.Find('Enemy-Disk2'); |
158 | if AEnemyType = etEnemyUFO2 then Image := MainForm.GetSpriteGraphic(smgEnemyDisk2); |
161 | if AEnemyType = etEnemyBoss then Image := MainForm.ImageList.Items.Find('Enemy-Boss'); |
159 | if AEnemyType = etEnemyBoss then Image := MainForm.GetSpriteGraphic(smgEnemyBoss); |
162 | 160 | ||
163 | if AEnemyType = etEnemyMeteor then FLives := 0 else FLives := ALives; |
161 | if AEnemyType = etEnemyMeteor then FLives := 0 else FLives := ALives; |
164 | FEnemyType := AEnemyType; |
162 | FEnemyType := AEnemyType; |
165 | Width := Image.Width; |
163 | Width := Image.Width; |
166 | Height := Image.Height; |
164 | Height := Image.Height; |
Line 169... | Line 167... | ||
169 | 167 | ||
170 | { TMainForm } |
168 | { TMainForm } |
171 | 169 | ||
172 | procedure TMainForm.DXInit; |
170 | procedure TMainForm.DXInit; |
173 | begin |
171 | begin |
174 | Imagelist.Items.LoadFromFile(FDirectory+'DirectX\Graphic.dxg'); |
172 | Imagelist.Items.LoadFromFile(OwnDirectory+'DirectX\Graphics.dxg'); |
175 | ImageList.Items.MakeColorTable; |
173 | ImageList.Items.MakeColorTable; |
176 | DXDraw.ColorTable := ImageList.Items.ColorTable; |
174 | DXDraw.ColorTable := ImageList.Items.ColorTable; |
177 | DXDraw.DefColorTable := ImageList.Items.ColorTable; |
175 | DXDraw.DefColorTable := ImageList.Items.ColorTable; |
178 | DXDraw.UpdatePalette; |
176 | DXDraw.UpdatePalette; |
179 | DXDraw.Initialize; |
177 | DXDraw.Initialize; |
Line 344... | Line 342... | ||
344 | sleep(500); |
342 | sleep(500); |
345 | //PlayerSprite |
343 | //PlayerSprite |
346 | with TBackground.Create(SpriteEngine.Engine) do |
344 | with TBackground.Create(SpriteEngine.Engine) do |
347 | begin |
345 | begin |
348 | SetMapSize(1, 1); |
346 | SetMapSize(1, 1); |
349 | Image := mainform.ImageList.Items.Find('Star3'); |
347 | Image := MainForm.GetSpriteGraphic(smgStar3); |
350 | Z := -13; |
348 | Z := -13; |
351 | Y := 40; |
349 | Y := 40; |
352 | Tile := True; |
350 | Tile := True; |
353 | end; |
351 | end; |
354 | with TBackground.Create(SpriteEngine.Engine) do |
352 | with TBackground.Create(SpriteEngine.Engine) do |
355 | begin |
353 | begin |
356 | SetMapSize(1, 1); |
354 | SetMapSize(1, 1); |
357 | Image := mainform.ImageList.Items.Find('Star2'); |
355 | Image := MainForm.GetSpriteGraphic(smgStar2); |
358 | Z := -12; |
356 | Z := -12; |
359 | Y := 30; |
357 | Y := 30; |
360 | Tile := True; |
358 | Tile := True; |
361 | end; |
359 | end; |
362 | with TBackground.Create(SpriteEngine.Engine) do |
360 | with TBackground.Create(SpriteEngine.Engine) do |
363 | begin |
361 | begin |
364 | SetMapSize(1, 1); |
362 | SetMapSize(1, 1); |
365 | Image := mainform.ImageList.Items.Find('Star1'); |
363 | Image := MainForm.GetSpriteGraphic(smgStar1); |
366 | Z := -11; |
364 | Z := -11; |
367 | Y := 10; |
365 | Y := 10; |
368 | Tile := True; |
366 | Tile := True; |
369 | end; |
367 | end; |
370 | with TBackground.Create(SpriteEngine.Engine) do |
368 | with TBackground.Create(SpriteEngine.Engine) do |
371 | begin |
369 | begin |
372 | SetMapSize(1, 1); |
370 | SetMapSize(1, 1); |
373 | Image := mainform.ImageList.Items.Find('Matrix'); |
371 | Image := MainForm.GetSpriteGraphic(smgMatrix); |
374 | Z := -10; |
372 | Z := -10; |
375 | Tile := True; |
373 | Tile := True; |
376 | end; |
374 | end; |
377 | {with TBackground.Create(SpriteEngine.Engine) do |
375 | {with TBackground.Create(SpriteEngine.Engine) do |
378 | begin |
376 | begin |
Line 457... | Line 455... | ||
457 | 455 | ||
458 | dxtimer.Enabled := true; |
456 | dxtimer.Enabled := true; |
459 | dxtimer.ActiveOnly := true; |
457 | dxtimer.ActiveOnly := true; |
460 | end; |
458 | end; |
461 | 459 | ||
- | 460 | function TMainForm.GetSpriteGraphic( |
|
- | 461 | Sprite: TSpaceMissionGraphicSprite): TPictureCollectionItem; |
|
- | 462 | begin |
|
- | 463 | if (Sprite<>smgNone) and (imagelist.Items.Count >= Ord(Sprite)) then |
|
- | 464 | result := imagelist.Items.Items[Ord(Sprite)-1] |
|
- | 465 | else |
|
- | 466 | result := nil; |
|
- | 467 | end; |
|
- | 468 | ||
462 | procedure TMainForm.InformationenClick(Sender: TObject); |
469 | procedure TMainForm.InformationenClick(Sender: TObject); |
463 | begin |
470 | begin |
464 | mainform.dxtimer.enabled := false; |
471 | mainform.dxtimer.enabled := false; |
465 | InfoForm.showmodal; |
472 | InfoForm.showmodal; |
466 | mainform.dxtimer.enabled := true; |
473 | mainform.dxtimer.enabled := true; |