Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Spiel] 3D Race (v1.2.6.13-Alpha) (https://www.delphipraxis.net/88881-%5Bspiel%5D-3d-race-v1-2-6-13-alpha.html)

AndY92 22. Mär 2007 14:21


[Spiel] 3D Race (v1.2.6.13-Alpha)
 
Liste der Anhänge anzeigen (Anzahl: 2)
:-D hi hier ist mal wieder eins meiner unfertigen Projekte: ein 3D Rennspiel!

Was ich bei diesem projekt vorallem brauche ist eure mithilfe :) ich lad immer wieder .exe bzw. .rar Dateien hoch und poste noch was dazu.

Viel spaß ^^ und danke fürs angucken :zwinker:

Matze 22. Mär 2007 14:28

Re: [Spiel] 3D Race
 
Hi,

das 3D-Modell ist ja ganz nett, aber für ein gut aussehendes Spiel zu kantig. Du machst dir unnötig Arbeit, ein 3D-Spiel mittels Canvas aufzubauen. Mit Hier im Forum suchenDelphiGL bzw. Hier im Forum suchenGlScene oder Hier im Forum suchenDirectX (ob Hier im Forum suchenDelphiX noch aktuell ist, weiß ich nicht, damals war es nur für max. DirectX 7) tust du dir sicher leichter.

Links zu GlScene bzw. DelphiGL:

http://www.glscene.org/
http://www.delphigl.com/

Edit: Link korrigiert.

JasonDX 22. Mär 2007 14:29

Re: [Spiel] 3D Race
 
Also es sieht ganz gut aus, auch wenn die Rotation z.T. mir etwas verdreht scheint :freak:
Was aber dein Ziel anbelangt, nämlich damit ein 3D-Spiel zu basteln, kann ich dir sagen, dass du nur geringe Erfolgschancen haben wirst. Dein Problem wird Performance beim Bemalen der Faces (bspw. durch Texturieren) sein, einen halbwegs schnellen Software-Rasterizer hinzukriegen wird viel (Rechne im Bereich von Jahren ;) ) Zeit in Anspruch nehmen, und nie das bringen können, was durch HW-Unterstützung möglich ist. Soll heißen: Als kleine 3D-Spielerei und als Übung zum Umgang mit Matrizzen ist das ja ganz ok, aber absolut nicht für Applikationen mit RealTime-Rendering zu gebrauchen.
Wenn du ein 3D-Spiel schreiben willst, empfehle ich dir einen Blick auf OpenGL oder DirectX zu werfen.

greetz
Mike

AndY92 22. Mär 2007 14:32

Re: [Spiel] 3D Race
 
Von DirektX / OpenGL hab ich keine ahnung und da ich bis jetz noch kein tutorial gefunden hab für das was ic hsuche werd ich mir da keien mühe geben.... Texturen find ich nichtmal so wichtig von mir aus kann das spiel auch nur aus Linien Bestehen...

turboPASCAL 22. Mär 2007 14:34

Re: [Spiel] 3D Race
 
3D-Model..naja, ich sag ja nix. Sollte man lieber mit DirectX oder OpenGL machen.
Aber für die Grundlagenforschung ist das gut.

*schnell weg renn*

TOC 22. Mär 2007 16:24

Re: [Spiel] 3D Race
 
Hi AndY92!

Ich beschäftige mich auch seit einiger Zeit mit solchen Sachen, zum Beispiel hier: 3D-Würfel der sich im Raum dreht mit Delphi und DelphiX oder auch hier: Stiftdicke und Graphics32

Ich finde Dein Auto-Design und Dein Programm wirklich nicht schlecht :thumb: ! Zeig doch bitte mal Deinen Quell-Code, würde mich interessieren wie Du das berechnest. Rechnest Du mit Matrizen? Ach ja, gib Deinem Auto doch mal bitte ein paar Scheinwerfer vorne und hinten und so in etwa 4 Reifen! Die Reifen zu berechnen dürfte gar nicht so einfach sein weil man sie aus vielen Punkten zusammen setzen muss die man dann mit Line-Befehlen verbinden muss, schätze mal mindestens 36 Vertices pro Reifen wären zu empfehlen, sonst wird dat ganze zu eckig!

Genau so wie bei Deinem Programm hat 3D-Programmirung vor vielen Jahren mal begonnen. Zum Beispiel mit Spielen wie dem Klassiker "Star Wars I und II", zum Beispiel auf dem Amiga 500!

Klar, ein richtiges komplettes 3D-Spiel sollte man mit einer professionellen 3D-Grafik-Maschine schreiben, man muss das Rad ja nicht zum tausendsten mal neu erfinden. Aber um die Grundlagen der 3D-Programmierung zu erlenen da bist Du genau auf dem richtigen Weg!

Grüsse von TOC :stupid: !

AndY92 22. Mär 2007 16:34

Re: [Spiel] 3D Race
 
[quote="TOC"]Rechnest Du mit Matrizen?[quote]

ja ich rechne mit matrizen den quellcode geb ich vllt. frei wenn er ferti ist ^^
edit: die YAxe ist noch nicht mit berechnet lol
und die berechnung ist garnicht so schwer das problem ist nur: ich berechne nicht die punkte einzeln sondern anfangs und endpunkt der Linien also jede Linie einzeln

jakobwenzel 22. Mär 2007 16:37

Re: [Spiel] 3D Race
 
Ich hab OpenGl da gelernt: http://www.delphigl.com/
Das ist eine Delphi-OpenGl-Community, wo es auch Tutorials gibt.

Oxmyx 22. Mär 2007 16:52

Re: [Spiel] 3D Race
 
Du verwendest ja nichtmal die Luftperspektive (mit drei Fluchtpunkten), sondern Parallelperspektive. Das hat mal was originelles. Jetzt machst du noch als Hintergrund ein kariertes Papier, die Linien zeichnest du so, dass es so aussieht als seien sie mit Bleistift gezeichnet, und du hast wirklich ein originelles Spiel.

AndY92 22. Mär 2007 17:01

Re: [Spiel] 3D Race
 
Zitat:

Zitat von Oxmyx
Du verwendest ja nichtmal die Luftperspektive (mit drei Fluchtpunkten), sondern Parallelperspektive. Das hat mal was originelles. Jetzt machst du noch als Hintergrund ein kariertes Papier, die Linien zeichnest du so, dass es so aussieht als seien sie mit Bleistift gezeichnet, und du hast wirklich ein originelles Spiel.

Die idee gefällt mir sogar richtig gut o.O mal schaun ^^

TOC 22. Mär 2007 17:15

Re: [Spiel] 3D Race
 
Hi!

Zitat:

Zitat von AndY92
ja ich rechne mit matrizen

Hey, cool. Dat mit den Matrizen ist für mich ein absolutes Rätsel, sowas hatten wir damals nit auf der Hauptschule :oops:! Ich werd mir wohl mal nen Kurs zu dem Thema suchen müssen. Ich schreib mir die einzelnen Vertices einfach in ein TList-Objekt, und ein TList-Objekt für die Linien. Das geht auch ganz gut.

Zitat:

Zitat von AndY92
den quellcode geb ich vllt. frei wenn er ferti ist ^^

Da hätte ich jetzt sehr gerne mal hineingeschnuppert!

Zitat:

Zitat von AndY92
die YAxe ist noch nicht mit berechnet lol

Meinst Du Y oder Z ? Ich machs mit 3 Achsen: X, Y und Z und Augenabstand. Die 3D-Formeln habe ich aus diesem Thread : StarField und dann leicht modifiziert.

Zitat:

Zitat von AndY92
...und die berechnung ist garnicht so schwer das problem ist nur: ich berechne nicht die punkte einzeln sondern anfangs und endpunkt der Linien also jede Linie einzeln

Ja, das mach ich auch so, dadurch spart man sich ne Menge Rechenoperationen, aber auf die Art überlagern sich die Linien leider falsch. Eine Linie die später gezeichnet wird liegt immer ÜBER den anderen Linien die schon gezeichnet wurden. Um das richtig 3D hinzubekommen bräuchte man einen Z-Puffer, und ausserdem müsste man noch berechnen welche Fläche überhaupt sichtbar ist oder von einer anderen bedeckt und Lichtquellen, Kameraposition, ..., ..., und Echtzeit-3D-Raytraycing :lol: ?!?
Aber im Ernst: Wie man das alles "von Hand" berechnen kann ist mir wirklich leider noch nicht klar...

Grüsse von TOC :stupid: !

AndY92 22. Mär 2007 17:41

Re: [Spiel] 3D Race
 
Zitat:

Zitat von TOC

Zitat:

Zitat von AndY92
ja ich rechne mit matrizen

Hey, cool. Dat mit den Matrizen ist für mich ein absolutes Rätsel, sowas hatten wir damals nit auf der Hauptschule :oops:! Ich werd mir wohl mal nen Kurs zu dem Thema suchen müssen. Ich schreib mir die einzelnen Vertices einfach in ein TList-Objekt, und ein TList-Objekt für die Linien. Das geht auch ganz gut.

Haha um ganz ehrlich zu sein: ich hatte eigendlich auch keinen Plan davon ^^ (was erwartest du von nem 15 jährigen) aber mein Vater is mathe prof. der konnte mir bei den ganzen Rechnungen Helfen ^^



Zitat:

Zitat von TOC
Da hätte ich jetzt sehr gerne mal hineingeschnuppert!

Wie gesagt wenn der quellcode fertig is poste ich mal ein paar ausschnitte die wichtig sind



Zitat:

Zitat von TOC
Meinst Du Y oder Z ? Ich machs mit 3 Achsen: X, Y und Z und Augenabstand. Die 3D-Formeln habe ich aus diesem Thread : StarField und dann leicht modifiziert.

Ich meine: die Y Axe kann nicht Verändert werden - der wert ist immer 45° eigendlich sinnlos X und Z zu nehmen weil was ich am meusten brauch ist Y und Z^^

TOC 22. Mär 2007 19:49

Re: [Spiel] 3D Race
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!

Mir war langweilig! Was hältst Du von dem Programm im Anhang: Ein CAD-3D-Car :lol: in einem 3d-Würfel das sich dreht, mit Rädern und Lampen, mit Fliessheck!

Mit den Tasten

X, Y und Z kannst Du die Grafik um die entsprechende Achse rotieren lassen.

Shift ändert die Drehrichtung

Ctrl stopt die Bewegung um diese Achse.

S hält alle Bewegungen an.

R setzt die Gesamte Grafik zurück!

Mit PageUp/PageDown kannst Du den Augenabstand verändern!

Und das mit den Matrizen lern ich auch noch irgendwann!!!

Grüsse von TOC!

AndY92 22. Mär 2007 20:53

Re: [Spiel] 3D Race
 
Nettes Programm, Toc auch wenn ich nicht wirklich verstehe warum du die Tasten gerade so umständlich ausgewählt hast.. ^^

Frage: Haben die Farben irgendeinen sinn?



Die räder find ich vorallem gute Arbeit auch wenn sie mir vom aussehn her nicht so sehr gefallen weil sie irgendwie an wagenräder von kutschen erinnern xD

TOC 22. Mär 2007 21:17

Re: [Spiel] 3D Race
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!

Zitat:

Zitat von AndY92
Nettes Programm, Toc auch wenn ich nicht wirklich verstehe warum du die Tasten gerade so umständlich ausgewählt hast.. ^^

Ach, X, Y und Z ist doch logisch, oder nicht?

Zitat:

Zitat von AndY92
Frage: Haben die Farben irgendeinen sinn?

Nein, im Grunde nicht! Die sind ansich komplett unnötig. Aber ich find es farbig einfach schöner!

Zitat:

Zitat von AndY92
Die räder find ich vorallem gute Arbeit auch wenn sie mir vom aussehn her nicht so sehr gefallen weil sie irgendwie an wagenräder von kutschen erinnern xD

Ja, das stimmt, wie von ner Kutsche. Hmm, man könnte da auch Chrom-Felgen draus machen... :wink:

Mir war schon wieder langweilig! Im Anhang: DirectX/DelphiX-Version von dem Programm. Bei DelphiX kann man die Stiftdicke ganz einfach setzen, das ist bei der Graphics32 scheinbar nit so einfach. Und ausserdem dreht sich das ganze viel ruckelfeier und eleganter weil doppelt gepuffert.

Grüsse von TOC :stupid: !

AndY92 22. Mär 2007 21:24

Re: [Spiel] 3D Race
 
Ich hab da nen Kleinen Bug enddeckt: wenn man zu weit weg geht wird das bild wieder größer da der abstand ja 'nen minuswert hat sieht man das ganze falschrum.

Ich sollte mal bei meinem Rennspiel mt der Strecke Anfangen aber bevor ich das mache hab ich eine frage (hoffendlich kann mir da jemand helfen) also ich will die Strecken nicht in der Unit haben sondern In einer Datei die ins Spiel geladen wird wo Die ganze welt in "Feldern" aufgeteilt ist.... also ich mach mal am besten eine Skizze wie ichss mine einen moment gleich mach ihc sie peredit rein :)

TOC 22. Mär 2007 21:33

Re: [Spiel] 3D Race
 
Hi!

Zitat:

Zitat von AndY92
Ich hab da nen Kleinen Bug enddeckt: wenn man zu weit weg geht wird das bild wieder größer da der abstand ja 'nen minuswert hat sieht man das ganze falschrum.

Ja, stimmt, Du hast Recht. Das liegt daran das der Wert von Eye sein Vorzeichen ändert weil Du über die Null hinausgelaufen bist... Und das wirkt sich auf die Projektion von 3D auf 2D aus und alles ist dann verkehrt herum!

Grüsse von TOC!

AndY92 22. Mär 2007 21:38

Re: [Spiel] 3D Race
 
Das kann man mit einer süßen kleinen if funktion locker verhindern :wink:
Ein Limit für die nähe wär au nich schlecht :roll:


So jetz mal zu miener Frage ^^
Zitat:

Zitat von AndY92
...ich will die Strecken nicht in der Unit haben sondern In einer Datei die ins Spiel geladen wird wo Die ganze welt in "Feldern" aufgeteilt ist.... also ich mach mal am besten eine Skizze...

Hier ist das Bild:
http://s6.bilder-hosting.de/img/6HD9G.jpg

So ähnlich sollen dann halt die Strecken Gespeichert sein - nur größer. allerdings hab ch keie ahnung wie ich ne textdatei zB in delphi lade und diese dann noch in einzelne integerwerte zerlege :gruebel: ich bruach hilfe xD

Edit: okay naja ich hab jetz ne halbe stunde nachm tutorial gesucht hatte kein erfolg und habs schliesslich selsbt rausgefunden;
Code:
var
  lListe : TStringList;
begin
  lListe := TStringList.Create;
  lListe.Assign(Listbox1.Items);
  lListe.SaveToFile('test.txt');
  lListe.Free;
zum speichern und
Code:
var
  lListe : TStringList;
begin
  lListe := TStringList.Create;
  lListe.LoadFromFile('test.txt');
  ListBox2.Items := lListe;
zum laden von Listen. (das hab ich irgendwo gesehn und ergänzt) soweit so gut aber ein Problem hab ich noch. Wie kann ich die Liste nachdem sie geladen ist in einzelne Stücke Zerlegen (am besten Strings oder Integerwerte) kann um sie dann..... zu benutzen :(

AndY92 23. Mär 2007 12:01

Re: [Spiel] 3D Race
 
v0.3.2.30 man kann mit dem auto noch nicht vorwärts oder rückwärts fahren sondern es nur drehen

das besondere ist an der Version das man sich die Strecke immerhin schon agucken kann (es stehen 2 verschiedene Strecken zur verfügung) ein Editor kommt auch bald ^^

das auto lässt sich bin jetzt immernoch nur drehen aber ich denke mal ich mach das heute noch das das fährt.

Steuerung:
rechts/links(/vorne/hinten)= autosteuerung

Kamera steuerung:
Numblock
4/6= Drehen
7/9= Rollen
(8/2= Kippen)
- = Zoom out
+ = Zoom in


Ich füg die datei per edit am anfang an.

TOC 23. Mär 2007 13:47

Re: [Spiel] 3D Race
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!

Also, ich hab da mal sowas gebastelt, vielleicht kannst Du es ja gebrauchen.

Also die Leveldatei muss folgendermassen aufgebaut sein:

*** LevelFile V 0.1 ***
02132232
32232322
45634243
23423423

Die Felder dürfen NUR Zahlen enthalten (was man aber auch leicht ändern und um Buchstaben und Sonderzeichen erweitern könnte. Die Anzahl der Spalten und Zeilen ist Variabel und nicht fest definiert. Aber: Alle Zeilen müssen die selbe Anzahl an Ziffern enthalten! Das Programm lädt den Level, analysiert den Level auf Fehler und zerlegt die Stringliste in einzelne Zeichen die in ein zweidimensionales dynamiches Array geschrieben werden!

Dann kannst Du mit LevelArray[Zeile,Spalte] ganz einfach den Wert abfragen! LevelArray ist ein Array of Array of Char, also dynamich! Seine Grösse wird von der Prozedur "AnalyseLevel" automatisch gesetzt. Vielleicht kannst Du damit ja was anfangen! Damit sind nahezu beliebig grosse Level möglich!

Die einzelnen Werte werden in ein StringGrid geschrieben damit Du sie Dir ansehen kannst, aber ansich ist das nur als Beweis dafür gedacht das die Textdatei zerlegt wurde!

Grüsse von TOC :stupid: !

AndY92 23. Mär 2007 13:53

Re: [Spiel] 3D Race
 
haha vielen dank aber das system das ich benutze steht schon fest ^^ ich muss eben nur nen editor machen damit man aus nem benutzerfreundlichen Programm ne strecke machen kann.

EDIT: ich meine das Laden und Speichern funktioniert schon ich bruach nur noch n programm ^^

TOC 23. Mär 2007 14:48

Re: [Spiel] 3D Race
 
Hi!

Zitat:

Zitat von AndY92
haha vielen dank aber das system das ich benutze steht schon fest ^^ ich muss eben nur nen editor machen damit man aus nem benutzerfreundlichen Programm ne strecke machen kann.

Egal, mir war heute morgen langweilig und ich hatte nix besseres zu tun als irgendwas am Computer zu basteln. Man kann das Programm aber im Prinzip für alle Spiele benutzen die ein 2-D Spielfeld haben, zum Beispiel solche Spiele wie LoadRunner oder Labirynth-Spiel etc., jeder Art von Stein oder Kiste oder was auch immer bekommt ne Nummer und so kann der Computer das beliebig grosse Spielfeld malen und zusammensetzen, jede Nummer steht für eine kleine Grafik an einer bestimmten Position des Spielfeldes usw..

Hey, Dein Auto braucht unbedingt RÄDER! Oder mach das Design doch einfach etwas moderner und mach ein Schwebefahrzeug draus, einen Gleiter also, dann kannst Du dir die Räder sparen. Aber dann solltest Du einen Schatten unter den Gleiter machen das man sieht das er schwebt!

Und Du soltest die Entfernung so einstellen das man beim Programmstart gleich einen Teil der Strecke sieht, und ich finde das Auto sollte nit grad so klein werden!

Bin mal gespannt wie sich Dein Programm weiterentwickelt!

Grüsse von TOC!

AndY92 23. Mär 2007 17:19

Re: [Spiel] 3D Race
 
Ok der Editor ist Fertig und Up :wink: Testen + Kommentieren wär nett :)

TOC 23. Mär 2007 20:25

Re: [Spiel] 3D Race
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!

Zitat:

Zitat von AndY92
Ok der Editor ist Fertig und Up :wink: Testen + Kommentieren wär nett :)

Ok, ich hab ihn getestet, es hat geklappt. Aber Deine Strecke hat ja immer nur 8*8, das ist vieeeeel zu wenig! Mach doch mal die Anzahl der Spalten und Zeilen veränderbar, dann könnte jeder beliebig lange Rennstrecken herstellen! Bei 8*8 biste mit nem Rennaute dat von 0 auf 100 in 3 Sekunden kommt doch schon nach 4 Sekunden durch die ganze Strecke durch! Ausserdem weiss Dein Auto bei meinem selbst gemachten Level gar nit wo der Anfang oder dat Ende der Strecke ist!

Grüss von TOC!

TOC 24. Mär 2007 14:19

Re: [Spiel] 3D Race
 
Liste der Anhänge anzeigen (Anzahl: 1)
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 :cry: ! 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 :gruebel: . 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 :thumb: !

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

Grüsse von TOC :stupid: !

AndY92 24. Mär 2007 15:01

Re: [Spiel] 3D Race
 
Man hast du viel geschireben ^^

Also das mit dem open dialog hab ich versucht hat ned geklappt ich mach halt mal das was du da hingeschireben hast...

Das das nich so.... benutzerfreundlich is kann ich nicht abstreiten aber is ist ja auch nur dazu da das Prinzip zu Testen. ^^


btw: hab ne neue version mann kann jetz fahren aber es gibt noch n bug mit der höhe vom auto ich arbeite dran ^^





Ok, Toc ,ich hab einen teil übernommen aber an einer stelle gibtsn problem_
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
Begin
  With OpenDialog1 do If Execute
                      Then ComboBox1.Text := FileName;


end;


nämlich wenn ich über den Open Dialog was Lade Steht da nicht einfach der Name der Strecke.trk sondern der ganze pfad... (C\Programme\Borland\Delphi7.......) undd as gibt nen fehler beim laden.

xZise 24. Mär 2007 18:53

Re: [Spiel] 3D Race
 
Delphi-Quellcode:
ExtractFileName(...)
gibt nur den Filename zurück...

PS: Laden müsstest du natürlich mit Pfad ^^

TOC 24. Mär 2007 20:13

Re: [Spiel] 3D Race
 
Hi :hi: !

Also, ich hab Deine neue Version grad mal runtergeladen, aber ich hab nicht herausgefunden wie ich das Auto zum fahren überreden kann. Und ich konnte KEINEN Track laden!

Ich vermute Du hast da etwas durcheinandergebracht. Es gibt VERSCHIEDENE Wege wie man das Laden eines Levels progrmmieren kann, zum Beispiel entweder über eine ComboBox ODER über einen TOpenDialog! Da musst Du jetzt die Entscheidung treffen weil es ja DEIN Project ist.

Nehmen wir an Du entscheidest Dich für die Combo-Box-Methode, dann mach es so:

Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
begin
  // Beim Programmstart alle Level in ComboBox einlesen.
  LoadLevelsToComboBox;
end;

Procedure TForm2.LoadLevelsToComboBox;
Var
  SR:TSearchRec;
Begin
  // Aktuelles Verzeichniss auf das Verzeichniss setzen in dem das Programm liegt
  SetCurrentDir(ExtractFileDir(ParamStr(0)));
  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;
Wenn Du dies in Dein Programm einfügst dann werden beim Programmstart alle *.trk AUTOMATISCH in Deine Comobox hineingeschrieben. Lösche also im Obejkinspecktor mal die Items der Combobox, lass die komplett weg! Übrigens, was da oben in dem Beispiel "LevelComboBox1" heisst must Du auf den Namen Deiner ComboBox in Deinem Programm ändern, vermutlich "ComboBox1".
Füge diese zwei Prozeduren mal in Dein Programm ein und ändere NUR den ComboBox Namen.

Dann brauchst Du noch folgendes:

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
Begin
  LoadLevel(ComboBox1.Text);
end;
Ja, und ich setze mal voraus das Du ein Unterprogramm hast das den Level lädt und als Eingangs-Parameter gern den Namen des Levels hätte, also in etwa sowas:

[/delphi]
procedure TForm2.LoadLevel(FileName: String);
Begin
// Hier muss dann der Level "FileName" geladen werden!
End;
[/delphi]

Ich hoffe ich habe es diesmal gut genug erklärt, sonst frag einfach nochmal wenn Du was nicht verstanden hast oder es nicht funktioniert.

Grüsse von TOC :roteyes: !

TonyR 24. Mär 2007 20:20

Re: [Spiel] 3D Race
 
Strecke laden geht doch! Aber man muss erst mal rauszoomen, um etwas zu sehen...
Er hat es übrigens selber gesagt, dass man das Auto noch nicht fahren kann :wink:

Ich will hier ja nicht der Pessimist sein, aber ich glaube, das das Projekt bald dem Tod geweiht sein wird...
Vor allem wegen der Einschränkungen von Canvas und mangelnden Wissens für 3D-Programmierung... Ich will damit nicht sagen, dass es nicht geht, aber es... ist zumindest zu schwierig...

AndY92 24. Mär 2007 20:30

Re: [Spiel] 3D Race
 
Zitat:

Zitat von TonyR
Ich will hier ja nicht der Pessimist sein, aber ich glaube, das das Projekt bald dem Tod geweiht sein wird...
Vor allem wegen der Einschränkungen von Canvas und mangelnden Wissens für 3D-Programmierung... Ich will damit nicht sagen, dass es nicht geht, aber es... ist zumindest zu schwierig...

wir könenn ja wetten ^^ ich wette am ende hab ich das spiel genau so wie ichs mir vorgestellt hab; ein rundkurs mit start/ziellinie und einen LAN modus (evtl. auch noch bots)

bis jetzt funktioniert ja alles und schwierig find ichs garnicht man muss eben nur viele rechnungen machen aber das ist ja kein problem

und auch wenn canvas dafür nicht so geeignet ist mir macht das richtig spaß also werd ich damit nicht aufhören ^^

TOC 24. Mär 2007 20:35

Re: [Spiel] 3D Race
 
Hi!

Zitat:

Zitat von TonyR
Strecke laden geht doch! Aber man muss erst mal rauszoomen, um etwas zu sehen...
Er hat es übrigens selber gesagt, dass man das Auto noch nicht fahren kann :wink:

Er sagte er hätte ne neue Version mit der man das Auto fahren könnte nur das was mit der Höhe noch nicht stimmt. Ich dachte das wäre die neue Version von Seite 1. Bei diesem Projet1.exe steht in der ComboBox nur "Strecke1","Strecke2" und "Strecke3". Wenn ich Versuche die ersten beiden Strecken zu laden bekomme ich nur die Fehlermeldung "Der Index der Liste überschreitet das Maximum" und bei "Strecke3" kommt "Die Datei wird nicht gefunden".

Zitat:

Zitat von TonyR
Ich will hier ja nicht der Pessimist sein, aber ich glaube, das das Projekt bald dem Tod geweiht sein wird... Vor allem wegen der Einschränkungen von Canvas und mangelnden Wissens für 3D-Programmierung... Ich will damit nicht sagen, dass es nicht geht, aber es... ist zumindest zu schwierig...

Das klingt aber doch schon recht pessimistisch. Ich denke er ist creativ und lernfähig, wenn sich mal einer die Mühe macht ihm zu Helfen und ihm n paar Tricks zu erklären dann kriegt er das sicher schon irgendwann hin. Es muss ja kein Super-Riesen-Mega Projekt draus werden, Hauptsache er hört nicht auf zu basteln, denn so lange er bastelt hat er seinen Spass und lernt noch was dabei!

Ich finde sein Projekt total faszinierend!

Mach weiter so!

Grüsse von TOC!

AndY92 24. Mär 2007 20:39

Re: [Spiel] 3D Race
 
haha danke TOC du hast 100% recht mir machts spaß ich lern was und interessant find ich es wirklich

btw: ich lad bald ne version hoch wo man das Auto fahren kann.

Ich hab das zwar schon aber dummerweise gibts da nen nervenden bug mit der Z Position: man geht beim fahren entweder immer höher oder immer niedriger

TOC 24. Mär 2007 20:46

Re: [Spiel] 3D Race
 
Hi!

Zitat:

Zitat von AndY92
haha danke TOC du hast 100% recht mir machts spaß ich lern was und interessant find ich es wirklich

Das geht mir auch so. Bei jeder Gelegenheit, wenn mir langweilig ist, setzt ich mich an den Rechner und versuch was zu basteln und zu lernen und hab dabei tierischen Spass, ist viel besser als verblödeten Schwachsinn im Fernsehen anzuschauen. Und je mehr man lernt und übt umso besser werden die Programme, und um so mehr Spass macht dat Ganze!

Zitat:

Zitat von AndY92
btw: ich lad bald ne version hoch wo man das Auto fahren kann.

Oh ja, cool, kanns kaum erwarten bis es soweit ist!

Zitat:

Zitat von AndY92
Ich hab das zwar schon aber dummerweise gibts da nen nervenden bug mit der Z Position: man geht beim fahren entweder immer höher oder immer niedriger

[/quote]

Hmm, könnte an Deinen 3D-Formeln liegen...

[Edit]
Ach ja, zum Thema Canvas! Bleib du ruhig vorerst bei TCanvas und lerne damit umzugehen. Wenn Du mit Deinem Programm so weit gekommen bist das der normale Delphi-TCanvas nicht mehr ausreicht, zum Beispiel weil es ruckelt beim fahren, dann kann ich Dir erklären wie Du fast mühelos Dein Programm auf DirectX/DelphiX umschreiben kannst. Also, wie ich Dich kenne hast du dat in 15 Minuten kapiert, garantiert! Und dann hast Du DoubleBuffering über ein eigenes TDxDraw.Surface und dat hat nen Canvas mit den selben Befehlen wie Delphi du musst nur unbedingt DxDraw1.Surface.Canvas.Release aufrufen bevor Du mit Flip das nächste Bild anzeigst!

Mirs schon wieder langweilig... :roll:

Grüsse von TOC!

dino 24. Mär 2007 21:17

Re: [Spiel] 3D Race
 
öhm ich will euch ja nur ungern stören, aber ich hab mir die ersten beiden exe dateien, die übrigens beide projekt1 heissen, was aber ein anderes thema ist, runtergeladen und steh komplet auf dem schlauch, was ich nun tun soll

AndY92 24. Mär 2007 21:17

Re: [Spiel] 3D Race
 
Zitat:

Zitat von TOC
Hmm, könnte an Deinen 3D-Formeln liegen...
Grüsse von TOC!

Gut beobachtet :wink:

nunja ich habs endlich hingekrigt der Z-Bug ist weg und ich lad sofort die neue version hoch ^^
Sonstige neuerungen:
-Dynamische Fahrgeschwindigkeit
-Neues Strecke-Laden system (dank eurer hilfe :wink: )
-Vollbild Modus
-Neues Kurven Design (ist auch nicht viel besser lol)

Zitat:

Zitat von TOC
Oh ja, cool, kanns kaum erwarten bis es soweit ist!

Hohoho, ich bin der weihnachtsmann! warst duauch schön Brav? ^^




EDIT: sry hab mich geirrt irgendwie is der YBug immernoch drin :(

AndY92 24. Mär 2007 21:22

Re: [Spiel] 3D Race
 
Zitat:

Zitat von dino
öhm ich will euch ja nur ungern stören, aber ich hab mir die ersten beiden exe dateien, die übrigens beide projekt1 heissen, was aber ein anderes thema ist, runtergeladen und steh komplet auf dem schlauch, was ich nun tun soll

du bewegst die maus auf die exe datei und klickst zweimal schnell hintereinander mit der linken maustaste :wink:

kleiner spaß was funktioniert denn nicht?

dino 24. Mär 2007 21:36

Re: [Spiel] 3D Race
 
ja ab mittlerweile herrausgefunden, dass die vordefinierten "strecke1" u.s.w. mangels strecke1 u.s.w. nicht funktionieren können

ich habs dann geschafft es mit dem anderen Programm ein level zu erzeugen

nun habe ich schon die tasten gefunden, die das auto links und rechts rotieren lassen, die das spielfeld um eine achse rotieren lässt und de tasten um das spielfeld um eine andere achse rotieren zu lassen

kann man auch losfahren? :D


Zitat:

Zitat von AndY92
du bewegst die maus auf die exe datei und klickst zweimal schnell hintereinander mit der linken maustaste :wink:

kleiner spaß was funktioniert denn nicht?

welche exe? projekt1? :D

AndY92 24. Mär 2007 21:38

Re: [Spiel] 3D Race
 
Zitat:

Zitat von dino

welche exe? projekt1? :D

nein auf keien fall!! wenn dann Projekt1 rofl


lad dir am besten malde neuere version runter da kann man das auto (zwar immernoch mit Z-bug aber es geht) bewegen ausserdem wie TOC schon geschrieben hat wird automatisch erkannt welche strecken im selben ordner sind oder du kannst "Durchsuchen" benutzen um strecken zu finden

dino 24. Mär 2007 21:41

Re: [Spiel] 3D Race
 
neue version?

ich habe mir vor 3 minuten die beiden dateien runtergeladen

bist aber fix mit deinen updates
oder nennt man das dann hotfix? :)

AndY92 24. Mär 2007 21:42

Re: [Spiel] 3D Race
 
lol nee also bis ich die version hatte hat schon länger gedauert ist zufall das sie gerade jetzt kam lol


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz