Einzelnen Beitrag anzeigen

Benutzerbild von TOC
TOC

Registriert seit: 5. Jan 2005
Ort: Trier
248 Beiträge
 
Delphi 7 Personal
 
#25

Re: [Spiel] 3D Race

  Alt 24. Mär 2007, 14:19
Hi!

Ok, also gut, ich habs noch mehr getestet! Einige Sachen finde ich nit grad so gut. Zum Beispiel ist das Fenster "Level laden" in Deinem Programm ein extra Fenster, und das hat Nachteile. Normalerweise haben Fenster ein Menü, zum Beispiel "Datei/Level Laden" und so weiter. Normalerweise macht man sowas mit TMainMenü und einem OpenDialog. Der OpenDialog zeigt Dir dann alle Level an und man kann dann einen aussuchen und laden- praktische Methode. Aber bei Dir stehen leider nur zwei Level in der ComboBox von Deinem Programm zum auswählen ! Wenn man sich mit Deinem Editor neue Level gemacht hat und sie im richtigen Verzeichniss stehen dann stehen sie trotzdem nit in der ComboBox und man muss ihre Namen von Hand eingeben- nicht so gut.

Probier doch mal das hier:

Delphi-Quellcode:
Procedure TForm1.LoadLevelsToComboBox;
Var
  SR:TSearchRec;
Begin
  Try
    // Such mal im aktuellen Verzeichnis ne Datei mit der Endung *.trk...
    If FindFirst('*.trk',0,SR)=0 then Begin
      // ...es wurde eine gefunden, also wiederhole...
      Repeat
        // ...Schreib den Namen des Levels in die Combobox...
        LevelComboBox1.Items.Add(SR.Name);
      // ...und mach dat ganze sooft bis kein weiterer Level mehr kommt!
      Until FindNext(SR)<>0;
    End;
  Finally
    // Zum Schluss UNBEDINGT den Speicher vom SearchRecord freigeben
    FindClose(SR);
    // Und den ersten Level auswählen
    LevelComboBox1.ItemIndex:=0;
  End;
End;
und dann in FormShow:

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  LoadLevelsToComboBox;
end;
Dies hat den Vorteil das Dein Programm dann beim Start alle Level sucht und in die ComboBox schreibt, das macht für den Spieler alles viel einfacher!

Ja, und wenn man aus versehen das Level-lade-Fenster zugeklickt hat und will sich nochmal nen anderen Level ansehen dann muss man das ganze Programm beenden und nochmal neu starten...

Und ausserdem kann man total unsinnige Level eingeben mit dem Editor, weil er nicht prüft ob die einzelnen Teilstrecken auch mit den Strecken der benachbarten Feldern anbschliessen . Beweis: Im Zip im Anhang ist ein Level "NonsensLevelByToc", denn kannst Du Dir ja mal ansehen, dann weist Du was ich meine. Dein Editor sollte also schon besser mal prüfen ob die Eingabe des Anwenders sinnvoll ist, finde ich.

Im Anhang ein Programm das Dir zeigt wie das mit dem TOpenDialog und TMainMenu geht oder mit allen Tracks in ner ComboBox!

Aber bis auf die paar Punkte find ich Dein Programm gar nit so schlecht, bastel Du ruhig schön weiter daran herum !

Ok, bei dem Programm im Anhang hab ich es beim Zeichnen des geladenen Levels ganz schön übertrieben , aber mir war eh grad langweilig und da hab ich es halt mal so gebastelt.

Grüsse von TOC !
Angehängte Dateien
Dateityp: zip loadlevel-2_166.zip (714,9 KB, 8x aufgerufen)
Lars Uwe Hohmann
"Wäre die Erde eine Bank, ihr hättet sie längst gerettet!"
(Zitat GreenPeace)
  Mit Zitat antworten Zitat