Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Pseudo-3D-Spielfeld erstellen (https://www.delphipraxis.net/51328-pseudo-3d-spielfeld-erstellen.html)

patti 10. Aug 2005 18:22


Pseudo-3D-Spielfeld erstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi DP,

Ich bin dabei ein Aufbau-Spiel zu programmieren und habe jetzt feststellen müssen, dass ich ein Problem beim Spielfeld habe.
Zunächst einmal, um was es in dem Spiel geht:
Aufbauen und managen von einem Freizeitpark und Bauen von Achterbahnen und Attraktionen.
Und so soll das Spielfeld werden:
Das Spielfeld soll in Pseudo-3D angezeigt werden (Nicht aus Vogelperspektive ! ). Es soll in Vierecke eingeteilt sein, die im Pseudo-3D natürlich verzerrt sind (siehe Bild). Wichtig ist hierbei, dass der Inhalt von einem Feld ein Stück des dahinter liegenden Feldes evtl. verdeckt. Noch dazu soll man zu verschiedenen Seiten scrollen können, um das Spielfeld etwas größer zu gestalten. Auf jedem Feld stehen verschiedene Anbaumöglichkeiten zur Verfügung, wie Bäume, Häuser und Attraktionen. Außerdem muss unterschieden werden, ob man das Feld bebauen oder abreisen darf (falls es evtl. außerhalb des bisher gekauften Grundstücks liegt).
Der Status und der Inhalt eines jeden Feldes müsste dann gespeichert werden.
Ich hätte versucht eine eigene Komponente zu entwickeln, die mir alles Benötigte liefert, allerdings ist das so eine Sache mit der Ansicht und mit der Auswahl der Felder. Man müsste die Mauskoordinaten abfragen und untersuchen, welcher Bereich ausgewählt ist. Außerdem sollte das ausgewählte Feld beispielsweise eine andere Farbe haben oder anders umrandet sein, ... .

Hier noch das Bild, dass beschreiben soll, wie das Spielfeld werden soll:

(unten als Anhang dran!!!)

Erklärung: hellgrün : freies Feld ; dunkelgrün : nicht bebaubar (evtl. weil es außerhalb vom Spielfeld liegt) ; blau : Fluss ; rot umrandet : ausgewähltes Feld ; Baum u. Haus : bebaute Felder

Ich weiß, dass alles zusammen sehr viel ist, aber ich würde mich sehr freuen, wenn mir jemand helfen könnte, da ich mit dem Spielfeld noch nicht angefangen habe und ich es von Anfang an richtig machen möchte.

Danke im Voraus, Patti

tigerman33 11. Aug 2005 18:06

Re: Pseudo-3D-Spielfeld erstellen
 
Was genau ist jetzt eigentlich deine Frage? :wiejetzt:

Oxmyx 11. Aug 2005 18:22

Re: Pseudo-3D-Spielfeld erstellen
 
Zitat:

Zitat von patti
Ich hätte versucht [...]

Wieso versuchst du es nicht einfach, und stellst deine Fragen dann, wenn sie sich wirklich konkret ergeben?

Zitat:

Ich weiß, dass alles zusammen sehr viel ist, aber ich würde mich sehr freuen, wenn mir jemand helfen könnte, da ich mit dem Spielfeld noch nicht angefangen habe und ich es von Anfang an richtig machen möchte.
Du wirst am Anfang immer vieles falsch machen, aber mit der Zeit lernt man dazu. Niemand kann auf neuem Terrain von Anfang an alles richtig machen.

CLRS530 11. Aug 2005 22:15

Re: Pseudo-3D-Spielfeld erstellen
 
Ich glaube irgendwie das ihr ihn nicht richtig versteht, meiner Meinung nach will er einen Ansatz, wie er das Feld erstellen soll/ Wie er die daten dort speichern soll.
Mit dem Feld habe ich keine Ahnung aber speichern kannst du, wenn ein Feld gesetzt wird in einer verketteten Liste und die dann jeweils durchgehen.
Obwohl, das ist vielleicht auch bei einem grossen Feld zu langsam.

supermuckl 11. Aug 2005 22:46

Re: Pseudo-3D-Spielfeld erstellen
 
ich hab so eine engine schon gemacht. ist sehr schwer. und als anfänger richtig saftig schwer ;)
das ist jetzt zwar keine hilfe, aber evtl könnte ich mit beispielcodes unterstützen.

Sidorion 12. Aug 2005 09:44

Re: Pseudo-3D-Spielfeld erstellen
 
Also ich würde mein Spielfeld in ein 2D Array Packen. Jedes Element repräsentiert eine Kachel und beinhaltet einen Record, in dem alle relevanten Daten, wie Geländeart, bebaubar, aktuelle Bebauung, Baukosten usw. stehen.
Zur Darstellung kannst Du entweder (falls die Ansicht starr nur aus bestimmten Winkeln ist) für jede Kachel-Bebauung-Betrachtungswinkel-Kombination eine Transparente Bitmap nehmen und das ganze immer von hinten nach vorne zeichnen, oder du benutzt eine Graphik API zur Darstellung. (Ich empfehle hier OpenGL. Ist einfach zu lernen und kann auch über einen Orthogonalmodus so pseudo3d darstellen). Bei der Verwendung der API erleichterst Du Dir auch das Selektieren, weil Du jede Kachel als Objekt ansehen kannst und die API Dir auch Windows-Koordinaten(OnClick) in Raumkoordinaten umrechnet.

Yheeky 12. Aug 2005 09:46

Re: Pseudo-3D-Spielfeld erstellen
 
Kann eine genaue Frage leider auch nicht erkennen, aber Add mich mal in ICQ. Ich schreib dich dann mal an, wenn ich Zeit hab (heute wird´s eng).

Die Muhkuh 12. Aug 2005 09:48

Re: Pseudo-3D-Spielfeld erstellen
 
Zitat:

Zitat von Yheeky
Kann eine genaue Frage leider auch nicht erkennen, aber Add mich mal in ICQ. Ich schreib dich dann mal an, wenn ich Zeit hab (heute wird´s eng).

Warum per ICQ? Kannst du nicht übers Forum helfen? Dann haben auch noch andere was davon :roll:

patti 12. Aug 2005 10:31

Re: Pseudo-3D-Spielfeld erstellen
 
Danke erstmal, dass ihr euch mit meinem Thread auseinandergesetzt habt.
Das Problem ist, dass ich selbst nicht weiß, mit was ich das Spielfeld programmiere oder wie ich die Felder zeichne.
Ich habe mich jetzt mal hingesetzt und habe eine neue Komponente entwickelt (ist noch im Aufbau). Sie ist abgeleitet von TGraphicControl und ich zeichne auf die Canvas. Allerdings dauert das beim neuzeichnen aller Felder (bei einer Spielfeldgöße von 30*25 Feldern) auch ohne den Inhalt von den Feldern lange, weswegen das ganze Spielfeld "flackert".
Ich habe mir jetzt überlegt, mit DelphiX zu arbeiten, da ich das auch schon mal gemacht hab.
Ich freue mich, wenn ich noch weitere Vorschläge bekomme. Ansonsten danke für eure Bemühungen, Patti!

Die Muhkuh 12. Aug 2005 10:32

Re: Pseudo-3D-Spielfeld erstellen
 
Hi,

du kannst auf ein TBitmap32 (www.graphics32.org) zeichnen. Das geht sehr viel schneller.

Ansonsten wäre DelphiX auch keine schlechte Wahl.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 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