Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Minispiel-Physik (https://www.delphipraxis.net/101420-minispiel-physik.html)

Khabarakh 13. Okt 2007 22:38

Re: Minispiel-Physik
 
Zitat:

Zitat von Diamondback2007
bei Integer sieht das ganze etwas ruckelig aus ;)

Eben, deswegen nimmst du direkt die Daten aus dem Array und nicht erst die visualisierten.

Zitat:

mit Bitmap meinst du also ich soll einfach ein bitmap verschieben anstatt eines TImage32? das wäre natürlich eine idee wenn wie positionen davon real sind. :)
Öhm, nein, das habe ich eigentlich nicht gemeint :gruebel: . Ich wollte sagen, dass du jetzt nicht mehr wie mit der VCL "bitmap.Canvas.DrawLine" sondern "bitmap32.LineFS" (bei beiden Codebeispielen bitte noch "oder so ähnlich" anhängen) benutzen musst, um rationale statt ganzen Koordinaten anzugeben.

Progman 13. Okt 2007 22:42

Re: Minispiel-Physik
 
mann kann immer die Berechnungen mit Float durchführen, nur vor dem Zeichnen muss man Round() aufrufen. Ist doch auch logisch. Die Pixel auf dem Bildschirm sind schließlich auch Integer. Es gibt nun mal keine halben Pixel ;)

Diamondback2007 14. Okt 2007 00:08

Re: Minispiel-Physik
 
Liste der Anhänge anzeigen (Anzahl: 1)
also ich fasse mal zusammen:

-meine leveldatei besteht aus einem dokument in dem "eckpunkte" meines levels stehen.
das heißt alle punkte an er sich die y-achse verändert. diese punkte liegen in abschnitten in dem
dokument -->bessere performance

-meine visualisierung mach ich mit graphics32. und zwar zeichne ich meine frames in einen buffer und
dann auf mein canvas(hierzu noch eine frage: soll ich auf ein canvas der graphics kompos zeichnen?bringt mir
das performace im gegensatz zum form canvas?)

-Die physik werde ich mit den mechanikgleichungen bearbeiten. (Auch hier noch eine frage: ich habe einen timer
im moment, in dem ich meine gleichung wegdifferenz = 0.5*9.81*t² berechne. diese dient im moment für die erdanziehung.
nun muss mein wagen aber ja springen können. wie soll ich das machen? das passiert natürlich mit der selben gleichung.
aber wie soll ich die in mein programm implementieren? noch ein timer, der bei bedarf anspringt? welche beschleunigung
soll ich wählen?das ist mir doch vollkommen frei oder?(außer halt größer als 9.81 ;) ) die differenz wird dann halt vom
y-wert abgezogen, das stimmt doch so oder?)

-im anhang findet sich ein kleines bespielprogramm welches ich schnell geschrieben habe. hier wird die problematik mit
den timern deutlich.

vielen dank :)

gruß

Progman 14. Okt 2007 11:57

Re: Minispiel-Physik
 
Hi, ich hab mir die Demo mal angesehen. So würde ich es nicht machen.
Schau mal in den Graphics32-Beispielen in die Demo "Layers". Dort kannst du sehen, wie man sowas realisiert.
Schau die das mal an. Das habe ich mit Layers gemacht.
Das heisst:
Der Hintergrund ist ein TImage32, die Erdkugeln sind Layers, die sich frei positionieren, einblenden und ausblenden lassen. Die Grafiken dazu werden beim Start in eine TBitmap32List geladen. Die Laderoutine hab ich übrigens 1:1 aus der Layers-Demo übernommen ;)
Ich glaube, nach diesem Prinzip kann man durchaus so ein kleines Spiel, wie du es möchtest, machen.

Sidorion 15. Okt 2007 10:47

Re: Minispiel-Physik
 
Also ich hasse ja normalerweise solche Posts wie: 'Warum das Rad neu erfinden, nim diesunddas', aber bei Graphikdarstellung mit Canvas rumfrickeln ist doch ein bisschen naja. Nimm eine Graphikbibliothek, die nimmt Dir das ganze Gewurschtel ab. Zudem kriegst Du Layer, Transparenz, gedrehte Bildchen uws. gratis dazu und hardwarebeschleunigt isses auch noch. Hierzu fällt mir ein seht gutes Tut hier ein.

Progman 15. Okt 2007 12:14

Re: Minispiel-Physik
 
@Sidorion:
Ich geh davon aus, dass es sich hier um einen Anfänger (was Grafik-Programmierung betrifft) handelt.
Und den gleich ins OpenGL zu schubsen, ist wohl nicht grad optimal.
Ich denke, wenn er mal paar einfachere Sachen fertig gestellt hat, wird er selbst zu dem Schluss kommen, sich mal mit Engines zu befassen ;)

3_of_8 15. Okt 2007 12:29

Re: Minispiel-Physik
 
Ich war auch noch Anfänger, als ich mit OpenGL angefangen hab, und ich habe es nicht bereut. Zur Not kann man auch DelphiX verwenden, das ist nicht ganz so kryptisch.

Sidorion 15. Okt 2007 12:39

Re: Minispiel-Physik
 
Ganz im Gegentum. 1. wird einem mit einer Bbliothek so ziemlich alles, was Zeichnen heisst abgenommen, er muss sich sozusagen nur mit der Mathematik(Physik) beschäftigen und 2. sieht er wesentlich schneller Resultate, die dann wahrscheinlich auch auf Anhieb besser aussehen werden.

Es ist doch wesentlich einfacher, einer Bibliothek su sagen: Zeichne ein um 30° gedrehtes Viereck mit diesem Bild an jene Stelle, als die Bitmaps irgendwie im Speicher zu rotieren und die Rastepositionen, Transparenzen usw. selber zu berechen.

Wie Du schon sagtest: Er wird selber zu dem Schluss kommen... Wenn man sich ber diese Mühen ersparen will, kann mans auch gleich ordentlich machen.

p.s.: 3_of_8: Delphix ist keine ordentliche Graphikbibliothek und die Einarbeit hier ist genauso sinnvol, wie alles selber Zeichnen wollen.

Diamondback2007 15. Okt 2007 12:40

Re: Minispiel-Physik
 
Zitat:

Zitat von Progman
@Sidorion:
Ich geh davon aus, dass es sich hier um einen Anfänger (was Grafik-Programmierung betrifft) handelt.
Und den gleich ins OpenGL zu schubsen, ist wohl nicht grad optimal.
Ich denke, wenn er mal paar einfachere Sachen fertig gestellt hat, wird er selbst zu dem Schluss kommen, sich mal mit Engines zu befassen ;)

also... ;) ich bin kein grafik anfänger und ich wollte eigentlich nur wissen, wie ich das ganze realisieren soll, weil ich keine lust hatte für eine so simple grafik eine engine zu nutzen ;)
Das hier ist mein derzeit größtes projekt.
aber ich denke ich werde dies doch tun. auch wenn ich dann wieder alles selbst programmieren muss wie z.b. die events. ist zwar ärgelich aber egal ;)
hier direkt OGL in reiner form zu benutzen halte ich für unnötig ;)
OGL an sich hab ich schon gelernt.
also ich denke ich werde meine altbekannte "fear2d-Egine" nehmen und damit sollte das funktionieren.

hat jemand eine idee wie ich das mit der sprungkraft machen soll?so wie ich es in der demo gemacht habe ist wohl nicht so optimal... :stupid:

gruß

EDIT: also von DelphiX kann ich auch nur abraten ;) mir hat es überhaupt nicht gefallen :|


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:48 Uhr.
Seite 3 von 3     123   

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