Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wände mit Array erstellen? (https://www.delphipraxis.net/139599-waende-mit-array-erstellen.html)

Jole 1. Sep 2009 10:52


Wände mit Array erstellen?
 
Hallo an alle.

Ich bin neu hier im Forum und programmiere noch nicht lange. Dennoch versuche ich ein kleines Spiel zu erstellen.
Es geht darum mit einem Panzer durch eine map ähnlich wie Pacman zu fahren. Dafür brauche ich Wände wo dieser Panzer nicht durchfahren kann. Ich hörte davon das man so etwas mit Array realisieren kann. Leider habe ich davon noch keine Ahnung.
Könnte mir vielleicht jemand erklären wie so etwas funktioniert? Ich will keine fertige Vorlage. Nur eine gute, verständliche
Erklärung wäre sehr hilfreich.

Gruß Jole

patti 1. Sep 2009 11:12

Re: Wände mit Array erstellen?
 
Da gibt es wohl verschiedene Möglichkeiten, wie man dieses "Problem" lösen könnte. Aber die Idee mit einem Array ist für den Anfang vielleicht gar nicht so schlecht. Mache dir ein (zwei-dimensionales) Array mit der Größe deiner Map. Das Array repräsentiert dir dann die verschiedenen Felder der Karte. Wenn du beispielweise nur wissen möchtest, ob auf einem bestimmten Feld eine Wand existiert, dann reicht der Boolean-Typ für dein Array völlig aus. So könnte es beispielsweise aussehen:

Delphi-Quellcode:
map : array[0..10] of array[0..10] of boolean;
Vielleicht hilft dir das ja schonmal etwas weiter.

mfG
Patti

XXcD 1. Sep 2009 11:14

Re: Wände mit Array erstellen?
 
Das kannst du ungefähr so machen:
Delphi-Quellcode:
type
wand = record
Texture: irgendwas;
X: integer;
Y: integer;
end;

...
var
waende: array of wand;
Ist jetzt nur ein Beispiel versuch mal nach array of zu suchen.
Vielleicht verstehst du ja was ich geschrieben habe, wenn nicht einfach schreiben dann erkläre ich das nochmal.

himitsu 1. Sep 2009 11:26

Re: Wände mit Array erstellen?
 
ich würde einfach eine Map/Array über alles anlegen
Delphi-Quellcode:
type
  TMapTyp = (mtLeer, mtMauer, mtBaum, ...);
  TMap = Array[0..x, 0..y] of TMapTyp;
dann kann man einfach und schnell nachsehn, was auf der entsprechenden Position rumliegt :angel:

XXcD 1. Sep 2009 11:29

Re: Wände mit Array erstellen?
 
Himitsu mit deiner Idee muss man das gesamte Spielfeld als Raster darstellen.
Wenn man jedoch eine Klasse erstellt mit den X und Y Koordinaten kann man das Spielfeld einfacher gestalten,
da kann man dann beispielsweise noch die Variable Rotation mit reinbringen.

himitsu 1. Sep 2009 11:43

Re: Wände mit Array erstellen?
 
Ich weiß, daß man da das gesamte Feld darstellt,
aber Ertens hat er eh nur ein winziges 2-Dimensionales Feld, welches nicht wirklich Speicher frißt
und Zweitens muß man im Gegenzug bei dir erst alle Felder durchsuchen und schauen ob eines die gewünschten Koordinaten hat ... ist bei mir nur ein Aufruf, da man ja jedes Feld direkt ansprechen kann. :mrgreen:

Gut, bei seinem kleinem Spielfeld ist das Durchsuchen aller gepseicherten Felder/Mauerstückchen wohl nicht unbedingt zeitaufwendig. :roll:

Also im Endefekt hat Beides seine Vor- und Nachteile und demnach kann sich der TE ja entscheiden, was ihm in seiner Situation nun besser gefällt.

XXcD 1. Sep 2009 11:45

Re: Wände mit Array erstellen?
 
Ja stimmt also er hat die Qual der Wahl :-D

Jole 1. Sep 2009 12:13

Re: Wände mit Array erstellen?
 
Okay.
Erstmal vielen vielen Dank für die fixen Antworten.
Ich werd mich mal darin einarbeiten und später berichten obs den gewünschten Erfolg gebracht hat. :dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.

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