Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.06.2014, 14:08

Spielfeld Umsetzung

Hallo alle miteinander,
Ich bin nun endlich mal dran und programmiere mit dem Buch jeden tag 1-2 stündchen.
Ich spiele da ein Spiel und würde gerne mal wissen wie man solch eine Map realisiert.
Es handel sich um eine "simple" 2d map. Ich hab leider fast garkeinen Ansatz dazu. Ich dachte an Arrays aber wie genau wüsste ich nicht.
Ich möchte hier keine Lösung sondern nur einen Ansatz womit man solche Maps realisiert.
Danke euch


(Link)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

12.06.2014, 14:25

Quellcode

1
2
3
4
5
6
7
11000000000...
10232321231...
32301012111...
11033221102...
11121022321...
10303221011...
....
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

SlinDev

Treue Seele

Beiträge: 142

Wohnort: Lübeck

Beruf: Programmierer

  • Private Nachricht senden

3

12.06.2014, 14:29

Ich bin mir nicht so sicher was du möchtest, aber es gibt sicherlich verschiedene Möglichkeiten.
Wenn das Spiel ziemlich genau so aussehen soll wie auf dem Bild, dann lässt sich das sicherlich auf eine einzelne Textur beschränken und mit den klaren Grenzen könnte man auch sowas wie Kollisionserkennung direkt mit den Pixeln relativ einfach umsetzen. Wenn du einzelne Tiles hast aus denen du die Map zusammensetzen möchtest, dann bietet sich ein 2D Array oder ein einfacher Array mit bestimmen vom Index über y*width+x oder so. Auch kann man überlegen die Linien als solche mit Start und Endpunkt zu speichern, was für Kollisionserkennung vermutlich helfen würde.
Letztlich hängt das komplett davon ab was du genau als Ausgangsdaten hast und was du später mit deinen Daten anfangen möchtest.

4

12.06.2014, 14:30

@bluecobold
ich nehme an das ist ein array?
gut dann war ich mit meinem denken garnicht so weit weg
muss dann mal schauen wie ich in einem array unterbringe das dort mauern sind

@SlinDey
ja genau so soll es eigentlich aussehen
ein kleines mänchen soll den charakter symbolisieren und sich auf der map bewegen können.
ich bin noch nicht soweit dass ich sowas programmieren kann. Aber ich bin gutes Gewissens dass ich da bald hinkomme.
Ich lerne grade fleißig die Grundlagen und hoffe das klappt bald mit dem ersten kleinen Erfolg.
Das Spiel welches ich programmieren möchte soll ziemlich simple sein.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

12.06.2014, 14:46

Das ist ein Array. Eine 1 in einem Feld sagt, dass das Feld links eine Wand hat. Eine 2 sagt, dass es oben eine Wand hat. Und eine 3 sagt, dass es links und oben eine Wand hat.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

6

12.06.2014, 14:47

okay so dachte ich mir das auch :)
danke für den tipp :)
hoffe ich komme schnell soweit um mal sowas zu programmieen :)

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

7

12.06.2014, 18:36

Ansonsten könntest du eine Liste mit Wandelementen halten. Diese Liste könntest du weiterhin sinnvoll unterteilen. Je nachdem helfen dir diese geometrischen Daten sogar bei der Umsetzung des Konzepts (ist natürlich abhängig vom Konzept). Das lässt sich zum Beispiel koppeln mit der Variante von BlueCobold. Dann hast du deine 2D Unterteilung in Kacheln, aber zusätzlich geometrische Daten. Andererseits könntest du die Wände selbst als Rohdaten halten, über die Zahlen im Array indizierst du diese und über die Kachel selbst kannst du die Position im Weltraum bestimmen. An sich gibt es da auch noch andere Möglichkeiten, aber eine Einteilung in ein 2D Raster ist vermutlich mit am sinnvollsten.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Khodos

Frischling

Beiträge: 45

Wohnort: Kienz

  • Private Nachricht senden

8

12.06.2014, 19:20

Ich programmier zur Zeit auch mein erstes Spiel, dazu hab ich einfach das Spielfeld in Quadrate unterteielt (tiles), das ganze in ein zweidimensionales Array gepackt und diesem dann Werte zugewiesen (z.B. 0 = Gras ..... 3 = Holzwand.....).

Damit müsste sich auch das Beispiel von deinem Bild realisieren lassen.

Hier noch ein Link, der mir sehr geholfen hat: http://www.xnamag.de/article.php?aid=27
Aktuelles Projekt: World of Kienz

Cranberry

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

9

13.06.2014, 17:24

Bambi deine Antwort ist doch viel zu übertrieben.
Er will doch nur eine Map laden und keine komplizierten Labyrinth Algorithmen implementieren.

10

17.06.2014, 09:50

och die antwort ist super :)
sehr nettes tutorial übrigens :)

irgendwann später wenn ich weiter bin wird es darauf hinauslaufen dass ich einen maze algo brauche :)
ich danke für die tollen Beiträge

nu weiß ich schon mal wie man ungefähr eine map realisieren kann. Vor allem sieht man auch dank des Tuto endlich mal wie man von code zum grafischen ergebnis kommt :)

Werbeanzeige