| Autor |
Beitrag |
fidionael
      
Beiträge: 232
Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
|
Verfasst: Do 16.03.06 16:45
Hallo,
ich habe für meinen Informatik Kurs, da wir ein kleines Spiel schreiben sollten, ein "Raumschiff fliegt durch den Weltraum und muss Sternen ausweichen"-Minigame geschrieben. Nun wollte ich, bevor ich dieses Programm nun meinem Lehrer gebe, bzw. dem Kurs vorstelle, euch, als Community einmal über den Quelltext gucken lassen, oder auch das Spiel testen lassen, für den Fall, dass vielleicht noch etwas verbesserungswürdig ist, an das ich nicht gedacht habe.
Achtung: Die Datei ist nicht mehr im Anhang, sondern hier erhältlich!
Anmerkung: Ich habe mit der Version 1.5 mal wieder so ziemlich alles umgeworfen, was bisher vorhanden war. Als wesentlichste Änderung ist wohl die Benutzung von DelphiX zu bemerken. Die Highscore-Liste habe ich aus Übersichtsgründen zunächst mal entfernt, ich werde sie in der Version 1.6 wieder hinzufügen, wenn ich mir sicher bin, dass keine Bugs mehr im Spiel vorhanden sind.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278:
| unit UGUI;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DXDraws, Menus, DXClass, MPlayer, DXSounds, UGame;
type TGUI = class(TForm) MainMenu1: TMainMenu; Spiel1: TMenuItem; Hilfe1: TMenuItem; NeuesSpiel1: TMenuItem; Highscoreanzeigen1: TMenuItem; Pause1: TMenuItem; Spielbeenden1: TMenuItem; Steuerung1: TMenuItem; About1: TMenuItem; DXDraw: TDXDraw; DXTimer: TDXTimer; DXImages: TDXImageList; DXWaves: TDXWaveList; BackgroundMusic: TMediaPlayer; Musik: TMenuItem; Hintergrundmusik1: TMenuItem; Sounds1: TMenuItem; DXSound: TDXSound; DXTeleport: TDXImageList; DXExplosion: TDXImageList; procedure Spielbeenden1Click(Sender: TObject); procedure Pause1Click(Sender: TObject); procedure Steuerung1Click(Sender: TObject); procedure About1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Hintergrundmusik1Click(Sender: TObject); procedure DXTimerTimer(Sender: TObject; LagCount: Integer); procedure DXDrawMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Sounds1Click(Sender: TObject); procedure DXDrawInitialize(Sender: TObject); procedure DXSoundInitialize(Sender: TObject); procedure NeuesSpiel1Click(Sender: TObject); private Space: TSpace; Ship: TShip;
Started: Boolean; Score: Integer;
Teleport_Animation: Integer; Explosion_Animation: Integer; end;
var GUI: TGUI;
implementation
{$R *.DFM}
procedure TGUI.Spielbeenden1Click(Sender: TObject); begin DXTimer.Enabled:=False; if Application.MessageBox('Spiel wirklich beenden?',pChar(Caption), MB_YESNO) = 6 then Application.Terminate else DXTimer.Enabled:=True; end;
procedure TGUI.Pause1Click(Sender: TObject); begin Pause1.Checked := (Pause1.Checked=False); end;
procedure TGUI.Steuerung1Click(Sender: TObject); begin DXTimer.Enabled:=False; if Application.MessageBox('Steuern des Schiffes: Richtungstasten'+#10+ 'Teleport des Schiffes: Leertaste', pChar(Caption+': Steuerung'),MB_OK) <> 0 then DXTimer.Enabled:=True; end;
procedure TGUI.About1Click(Sender: TObject); begin DXTimer.Enabled:=False; if Application.MessageBox('StarDodger 2 (V1.5)'+#10+ 'Copyright (c) 2006 by Nikolas Jansen'+#10+#10+ 'Steuern Sie das Raumschiff durchs Weltall, ohne' +#10+'von Sternen getroffen zu werden.', pChar(Caption+': About'),MB_OK) <> 0 then DXTimer.Enabled:=True; end;
procedure TGUI.FormCreate(Sender: TObject); begin if Hintergrundmusik1.Checked then BackgroundMusic.Play;
Started:=False; Score:=0; Teleport_Animation:=-1; Explosion_Animation:=-1;
Space:=TSpace.Create(ClientWidth,ClientHeight); Ship:=TShip.Create(ClientWidth,ClientHeight); end;
procedure TGUI.Hintergrundmusik1Click(Sender: TObject); begin Hintergrundmusik1.Checked := (Hintergrundmusik1.Checked=False);
if Hintergrundmusik1.Checked then BackgroundMusic.Resume else BackgroundMusic.Pause; end;
procedure TGUI.DXTimerTimer(Sender: TObject; LagCount: Integer); var i: Integer; text: String; begin with Backgroundmusic do if Position = Length then Play;
DXDraw.Surface.Fill(0);
for i:=1 to 30 do DXImages.Items[0].Draw(DXDraw.Surface, Space.StarCoord(i).X,Space.StarCoord(i).Y, 0);
if (Teleport_Animation<0) then case Ship.CurrentHealth of 21..30: DXImages.Items[1].Draw(DXDraw.Surface,Ship.X,Ship.Y,0); 11..20: DXImages.Items[2].Draw(DXDraw.Surface,Ship.X,Ship.Y,0); 1..10: DXImages.Items[3].Draw(DXDraw.Surface,Ship.X,Ship.Y,0); end;
if Teleport_Animation > -1 then begin DXTeleport.Items[Teleport_Animation].Draw(DXDraw.Surface, Ship.X,Ship.Y,0); inc(Teleport_Animation); if Teleport_Animation>5 then begin Teleport_Animation:=-1; if Sounds1.Checked then DXWaves.Items[3].Play(False); Ship.Teleport; end; end;
if Explosion_Animation > -1 then begin DXExplosion.Items[Explosion_Animation div 2].Draw(DXDraw.Surface, Ship.X,Ship.Y,0); inc(Explosion_Animation); if Explosion_Animation>10 then begin Explosion_Animation:=-1; if Sounds1.Checked then DXWaves.Items[2].Play(False); FormCreate(self); end; end;
if (Started) and (not Pause1.Checked) then begin inc(Score);
Space.MoveStars;
if GetAsyncKeyState(VK_LEFT) <> 0 then Ship.X:=Ship.X-2; if GetAsyncKeyState(VK_RIGHT) <> 0 then Ship.X:=Ship.X+2; if GetAsyncKeyState(VK_UP) <> 0 then Ship.Y:=Ship.Y-2; if GetAsyncKeyState(VK_DOWN) <> 0 then Ship.Y:=Ship.Y+4; if GetAsyncKeyState(VK_SPACE) <> 0 then if Teleport_Animation < 0 then Teleport_Animation:=0;
if Space.StarCollision(Ship.X,Ship.Y) then begin Ship.CurrentHealth:=Ship.CurrentHealth - 1; if Sounds1.Checked then DXWaves.Items[1].Play(False);
if Ship.CurrentHealth < 1 then if Explosion_Animation < 0 then Explosion_Animation:=0; end; end;
with DXDraw.Surface.Canvas do begin
if not Started then begin Brush.Color:=clBlack; Font.Color:=clRed; Font.Size:=16; text:='Zum Starten des Spiels klicken'; TextOut(ClientWidth div 2 - TextWidth(text) div 2, ClientHeight div 2 - TextHeight(text) div 2 - 100, text); end;
if Pause1.Checked then begin Brush.Color:=clBlack; Font.Color:=clRed; Font.Size:=24; TextOut(ClientWidth div 2 - TextWidth('Pause') div 2, ClientHeight div 2 - TextHeight('Pause') div 2 - 100, 'Pause'); end;
Brush.Color:=clBlack; Font.Color:=clWhite; Font.Size:=12; TextOut(0,0,IntToStr(Score));
case Ship.CurrentHealth of 21..30: Brush.Color:=clGreen; 11..20: Brush.Color:=clYellow; 1..10: Brush.Color:=clRed; end; if Ship.CurrentHealth mod 10 = 0 then FillRect(rect(ClientWidth-100,0,ClientWidth,15)) else FillRect(rect(ClientWidth-100,0, ClientWidth-100+Ship.CurrentHealth mod 10 * 10,15));
Release; end;
DXDraw.Flip; end;
procedure TGUI.DXDrawMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if not Started then begin Started:=True; if Sounds1.Checked then DXWaves.Items[0].Play(False); end; end;
procedure TGUI.Sounds1Click(Sender: TObject); begin Sounds1.Checked := (Sounds1.Checked=False); end;
procedure TGUI.DXDrawInitialize(Sender: TObject); begin if not DXDraw.Initialized then begin MessageBox(Handle, 'DirectDraw konnte nicht initialisiert werden!', pChar(Caption),MB_ICONERROR); Application.Terminate; end; end;
procedure TGUI.DXSoundInitialize(Sender: TObject); begin if not DXSound.Initialized then begin MessageBox(Handle, 'DirectSound konnte nicht initialisiert werden!', pChar(Caption),MB_ICONERROR); Application.Terminate; end; end;
procedure TGUI.NeuesSpiel1Click(Sender: TObject); begin FormCreate(self); end;
end. |
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113:
| unit UGame;
interface
type TCoord = record X,Y: Integer; end;
TSpace = class(TObject) private GameWidth, GameHeight: Integer; Star: Array[1..30] of TCoord; function StarOverlaps(s: TCoord; numStars, index: Integer) : Boolean; public constructor Create(Width, Height: Integer); procedure MoveStars; function StarCoord(Index: Integer) : TCoord; function StarCollision(x,y: Integer) : Boolean; end;
TShip = class(TObject) private GameWidth, GameHeight: Integer; xCoord,yCoord: Integer; Health: Integer; protected procedure SetX(X: Integer); procedure SetY(Y: Integer); public constructor Create(Width, Height: Integer); procedure Teleport; property X: Integer read xCoord write SetX; property Y: Integer read yCoord write SetY; property CurrentHealth: Integer read Health write Health; end;
implementation
function TSpace.StarOverlaps(s: TCoord; numStars, index: Integer) : Boolean; var i: Integer; begin Result:=False; for i:=1 to numStars do if index<>i then if (s.X+20>Star[i].X) and (s.X<Star[i].X+20) and (s.Y+20>Star[i].Y) and (s.Y<Star[i].Y+20) then Result:=True; end;
constructor TSpace.Create(Width, Height: Integer); var i: Integer; begin GameWidth:=Width; GameHeight:=Height; Randomize; for i:=1 to 30 do Repeat Star[i].X:=Random(GameWidth - 20); Star[i].Y:=Random(GameHeight - 20) - GameHeight; Until (StarOverlaps(Star[i],i-1,0)=False); end;
procedure TSpace.MoveStars; var i: Integer; begin for i:=1 to 30 do with Star[i] do begin Y:=Y+2; if Y>GameHeight then Repeat X:=Random(GameWidth - 20); Y:=Random(GameHeight - 20) - GameHeight; Until (StarOverlaps(Star[i],30, i)=False); end; end;
function TSpace.StarCoord(Index: Integer) : TCoord; begin Result.X:=Star[Index].X; Result.Y:=Star[Index].Y; end;
function TSpace.StarCollision(x,y: Integer) : Boolean; var i: Integer; begin Result:=False; for i:=1 to 30 do if (x+32>Star[i].X) and (x<Star[i].X+20) and (y+40>Star[i].Y) and (y<Star[i].Y+20) then begin Result:=True; Repeat Star[i].X:=Random(GameWidth - 20); Star[i].Y:=Random(GameHeight - 20) - GameHeight; Until (StarOverlaps(Star[i],30, i)=False); Break; end; end;
procedure TShip.SetX(X: Integer); begin if (X>=0) and (X<=GameWidth-32) then xCoord:=X; end;
procedure TShip.SetY(Y: Integer); begin if (Y>=0) and (Y<=GameHeight-40) then yCoord:=Y; end;
constructor TShip.Create(Width, Height: Integer); begin GameWidth:=Width; GameHeight:=Height; Randomize; xCoord:=GameWidth div 2 - 32 div 2; yCoord:=GameHeight - 40; Health:=30; end;
procedure TShip.Teleport; begin xCoord:=Random(GameWidth-32); end;
end. |
Vielen Dank schonmal...
Moderiert von Tino: Code- durch Delphi-Tags ersetzt
Zuletzt bearbeitet von fidionael am Mo 19.03.07 00:20, insgesamt 18-mal bearbeitet
|
|
starsurfer
      
Beiträge: 334
Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
|
Verfasst: Do 16.03.06 16:54
Ein "GAME OVER" am Ende ist besser als wenn das Spiel einfach stehen bleibt....
Manchmal überschneiden sich die Sterne und man sieht von einem nur die Hälfte, vll kannste das noch verhindern...
Ne Highscore Liste wäre vll noch ne Idee(kannste ja z.B.in ner inidatei speichern)
-ne kleine Hilfe (muss ja nich viel sein... nur welche Tasten und Sinn des Spiels[für ganz Doofe])
-Programminfo Fenster (mann soll ja sehen das du das Meisterwerk erstellt hast)
-Programm Speed erhöhen ab bestimmter Pkt-Zahl
Ansonsten Top
//EDIT: Richtig Martin 
_________________ GEIZ IST GEIL! - Ihr Sozialamt
Zuletzt bearbeitet von starsurfer am Do 16.03.06 17:08, insgesamt 5-mal bearbeitet
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Do 16.03.06 16:57
Es wäre schön wenn die Sterne sich nicht überlagern würden. Oder du stellst diese Transparent dar.
edit: da hat starsurfer wohl seinen Beitrag kurz vor meinem Absenden erweitert. 
_________________ Ein Nutzer der Ecke
|
|
fidionael 
      
Beiträge: 232
Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
|
Verfasst: Do 16.03.06 18:35
Version 1.1
Geändert:
- GameOver Text erscheint nun am Ende des Spiels
- Pause-Funktion (bei Drücken der Taste "P") wurde hinzugefügt
- GameSpeed wird nun dynamisch mit der Anzahl der Punkte geändert
- Menüpunkt: Help -> About wurde hinzugefügt
Noch in Arbeit:
- Highscore-Liste
- Kein Überlagern der Sterne mehr
- Menüpunkt: Help -> Controls
Vielen Dank für eure Kritik, war echt hilfreich und das Programm ist jetzt schon um einiges schöner. Highscore-Liste und Menüpunkt: Help -> Controls dürfte ich auch in naher Zukunft fertig haben, aber wo ich noch nichtmal wirklich eine Vorstellung von habe: Wie krieg ich es elegant hin, dass die Sterne nicht mehr überlagern? Hat da vielleicht jemand eine Idee?
Mfg
|
|
starsurfer
      
Beiträge: 334
Win 95, Win 98, Win XP, Win Vista, Linux
D5 Enterprise ,D2005, D6 Personal, Visual C++ Express 2005, C++ Builder 6 E, Dev-C++
|
Verfasst: Do 16.03.06 18:41
unter der voraussetzung das die sterne 20pixel breit sind würde ich das so machen:
Delphi-Quelltext 1:
| xCoord:=Random(GameWidth/20)*20; |
damit setzt er die sterne so das sie sich nicht überlappen
(glaub ich- ungetestet  )
_________________ GEIZ IST GEIL! - Ihr Sozialamt
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 16.03.06 18:46
die steuerung ist zu hakelig, und man kann zb net oben und rechts gleichzeitig drücken .
es passiert oft, das ein ausweichen unmöglich ist.
was bewirkt die leertaste genau Oo ?
der sterne werden über den text gezeichnet
Zuletzt bearbeitet von F34r0fTh3D4rk am Do 16.03.06 18:48, insgesamt 1-mal bearbeitet
|
|
Danniolo
      
Beiträge: 693
|
Verfasst: Do 16.03.06 18:48
Bug: wenn man GameOver is, dann auf About Klick und dann die AboutBox schließt, geht das Spiel weiter 
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 16.03.06 18:49
|
|
fidionael 
      
Beiträge: 232
Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
|
Verfasst: Do 16.03.06 18:53
F34r0fTh3D4rk hat folgendes geschrieben: | | was bewirkt die leertaste genau Oo ? |
Leertaste bewirkt einen sofortigen Telport an eine zufällige Stelle irgendwo im Spielfeld. Ich habe auch darüber nachgedacht, eventuell bei diesem Teleport lediglich die x-Koordinate zu verändern, damit der Spieler das Raumschiff nicht erst suchen muss.
Wäre das besser?
Danniolo hat folgendes geschrieben: | | Bug: wenn man GameOver is, dann auf About Klick und dann die AboutBox schließt, geht das Spiel weiter |
Ui, danke für den Hinweis - das werde ich schnellstmöglichst beheben! 
Zuletzt bearbeitet von fidionael am Do 16.03.06 18:57, insgesamt 2-mal bearbeitet
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 16.03.06 18:54
ich würds irgendwo hinteleportieren wo was frei ist, aber da dort ja wenig platz ist, ist das schlecht Oo
|
|
fidionael 
      
Beiträge: 232
Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
|
Verfasst: Fr 17.03.06 01:56
Version 1.2
Geändert:
- Bugfix: Nach GameOver kann man nicht mehr mit Hilfe des About Dialoges das Spiel fortführen
- Bugfix: Sterne werden nun nicht mehr über den Text gezeichnet
- Menüpunkt Help -> Controls wurde hinzugefügt
- Highscore-Liste wurde hinzugefügt
- Rhythmus der Gamespeed-Änderungen wurde modifiziert
Noch in Arbeit:
- Kein Überlagern der Sterne mehr
- Ausbesserung der Steuerung
- Ausbesserung des Teleports
- Sound
Erneut vielen Dank für die konstruktiven Kritiken und eure Hilfe!
Hat jemand vielleicht eine Idee, wie ich meinem Programm beibringe, dass zwei Richtungen gleichzeitig gedrückt werden, oder die Steuerung insgesamt etwas weniger hakig hinkriege? Außerdem scheint außer dem Startsound kein weiterer abgespielt zu werden; weiß vielleicht jemand woran das liegen könnte?
Mfg
|
|
fidionael 
      
Beiträge: 232
Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
|
Verfasst: Fr 17.03.06 09:12
Version 1.3
Geändert:
- Bugfix: Das Spiel läuft nun weiter auch wenn man das Controls-Fenster nicht über den OK-Button schließt
- Kein Überlappen der Sterne mehr
- Den Menüpunkten Help -> Controls und Help -> About wurden Shortcuts zugewiesen
Noch in Arbeit:
- Ausbesserung der Steuerung
- Ausbesserung des Teleports
- Sound
Mir ist nach wie vor unklar, wieso nur der Startsound abgespielt und der Rest vom Programm einfach ignoriert wird...
Mfg
|
|
fidionael 
      
Beiträge: 232
Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
|
Verfasst: Di 21.03.06 03:04
Version 1.4
Geändert:
- Man kann die Highscore-Liste nun zu beliebigen Zeitpunkt manuell aufrufen
- Völlig neues Teleportsystem(*)
Noch in Arbeit:
- Ausbesserung der Steuerung
- Sound-Bug(**)
(*) Neues Teleportsystem:
Anstatt einfach an einen zufälligen Punkt teleportiert zu werden, ist der Teleport nun intelligent. Die Y-Koordinate wird beibehalten und der X-Wert wird auf so verändert, dass in einer bestimmten Range kein Stern im Weg ist. Es wurde, damit Teleport nicht zu übermächtig wird, ein Teleportbalken eingeführt, welcher sich nach einem Teleport erst wieder füllt. Man kann jedoch jederzeit teleportieren; lediglich die Range wird durch den Balken beeinflusst.
(**) Sound-Bug:
Ich brauche dringend Hilfe bei der Implementierung von Sounds. Das Problem habe ich oben beschrieben im Quelltext markiert und hier nochmal der Link auf das entsprechende Topic.
Mfg
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Di 21.03.06 09:16
Ein Bug: Wenn man im Spiel ESC drückt, kommt (bei mir) ein zerstückelter Game-Over-Screen (Schrift nur noch teilweise sichtbar), wenn man die Taste danach nochmal drückt, komt eine schöne Zugriffsverletzung, und man kann das Programm nicht mehr schließen, startet man nach dem drücken von ESC ein Spiel und will das Programm dann schließen, kommt ca. 20 Fehlermeldungen gleichzeitig.
Hoffe die Beschreibung ist ausführlich genug
//EDIT: Komisch, jetzt gehts ohne Fehlermeldung
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
fidionael 
      
Beiträge: 232
Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
|
Verfasst: Di 21.03.06 13:22
Hm, ist mir ehrlich gesagt noch nicht passiert... Falls es nochmal auftreten sollte sag bitte Bescheid, ansonsten nehme ich es mal zur Kenntnis, werde aber keine Maßnahmen ergreifen 
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Di 21.03.06 15:36
bei sounds kann ich dir helfen.
|
|
fidionael 
      
Beiträge: 232
Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
|
Verfasst: So 28.05.06 19:26
Version 1.5
Geändert:
- Sämtliches Zeichnen wird nun in DelphiX erledigt.
- Steuerung läuft nun flüssig
- Sound-Problem durch DelphiX-Komponenten gelöst
- Hintergrund-Musik hinzugefügt
- Musik/Sounds sind an-/ausschaltbar
- Highscore-Liste wurde entfernt (Begründung s. o.)
Noch in Arbeit:
- Reintegration der Highscore-Liste
Da in dieser Version fast alles umgeworfen wurde, wäre es wirklich nett, wenn ihr das Programm ein wenig auf Bugs testen könntet
Danke schonmal im Vorraus!
//Edit:
Version 1.5b
Geändert:
-Vergessener Teleport wurde implementiert 
|
|
Born-to-Frag
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: So 28.05.06 20:04
Kann es nicht starten:
Exception EMCIDeviceError in module StarDodger.exe at 00037b27.
Die angeforderte Datei wurde nicht gefunden. Stellen die sicher, dass Pfad- und Dateiname richtig sind.
greetz
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
fidionael 
      
Beiträge: 232
Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
|
Verfasst: So 28.05.06 20:47
Hm merkwürdig, den Fehler habe ich bei meinem 2t-Rechner auch, aber auf diesem hier nicht, auch wenn ich die Datei selbst in ein beliebiges Verzeichnis herunterlade...
Weiß irgendjemand was dieser Fehler zu bedeuten hat?
|
|
fidionael 
      
Beiträge: 232
Win XP SP2, Ubuntu 6.06
Delphi 7 PE, Delphi 3 Prof
|
Verfasst: So 28.05.06 23:30
Problem gelöst
Das oben beschriebene Problem ist nun gelöst. Der Fehler war, dass die TMediaPlayer-Komponente eine Midi-Datei benötigte, von welcher der Pfad fest gespeichert war. Daher lief die Anwendung auf meinem Rechner in jedem Verzeichnis, aber eben auf keinem anderen
Die Datei ist nun nicht mehr im Anhang erhältlich sondern auf meiner Homepage (Direktlink s. o.) und es ihr ladet nun nicht mehr das Spiel direkt runter, sondern eine Zip-Datei, welche alle nötigen Dateien beinhaltet.
Mfg
|
|
|