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

19.03.2017, 20:11

Programmieren von Spielfeldern

Hallo erstmal,

ich habe, wie fast alle hier, vor ein Spiel zu programmieren. Sagen wir mal ein "Prison Architekt"-Klon. Da ich eigentlich nur Java gelernt habe, würde ich erstmal auch in dieser Sprache programmieren wollen. Meine Frage wäre hierbei:
-Wie würde das Spielfeld bzw. die Karten programmiertechnisch aussehen? Bekanntlich ist ja Prison Architekt ein 2D Top Down Spiel. Meine Idee wäre eigentlich ein 2D Array zu erstellen und in die Felder meine Werte, wie "Baum, Wand, Wiese", eingeben.

Wie würdet Ihr das lösen? Könntet Ihr mir Tipps geben?

MfG

2

19.03.2017, 20:52

Du kannst sowas wie Tiled verwenden (http://www.mapeditor.org/). Das ist ein unabhängiger Editor. Brauchst nur ein tmx importer für deine Anwendung.

Oder du machst deine eigene Datenstruktur und deinen eigenen ingame Editor. Ist auf langer Sicht sicherlich besser.

Den habe ich gerade noch gefunden: http://dambots.com/dame-editor/

Sonst kann ich dir auch mein Grid Dings Bums geben. Ist geschrieben in Java. Ist mit templates.
https://onedrive.live.com/download?cid=B…AGzMr-f7LTqARbU

Vielleicht nur damit du eine Vorstellung bekommst wie man ein generisches Grid schreibt.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »TypeOverride« (19.03.2017, 21:00)


3

19.03.2017, 21:03

Danke, werde heute reinschauen.

Sneyke

Frischling

Beiträge: 33

Beruf: Softwareentwickler

  • Private Nachricht senden

4

20.03.2017, 09:23

Ich würde es ganz simpel mit 2 dimensionalen Array machen. Eine Klasse GameField(int indexX, int indexY, Gelaende gelaende, usw...) erstellen und in das Array dann die Objekte geben. Die indexe habe ich nochmal als Parameter mitgegeben dass du bei listener-sachen einfach über das Objekt gehen kannst, statt immer dann über das Array mit equals abzugleichen.

Theoretisch würde auch ein eindimensionales reichen. Aber so finde ich es einfacher zu benutzen.

Edit:

In dieser Variante musst du natürlich das Grafische dann Extra machen. Z.B. (In pseudo Java):

In deinen Properties dann festlegen: fieldSize = (64, 64);


Dann noch eine View-Klasse erstellen

GameFieldTile(GameField field){

this.setTexture(field.gelaende.texture());
showFieldOnPosition(field.getIndexX * fieldSize.x, field.getIndexY * fieldSize.y);

}


dann über den gameloop painten

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sneyke« (20.03.2017, 09:30)


5

20.03.2017, 09:42

Wie wäre es einfach die datenstruktur in eine klasse weg zu kapseln sodass der Nutzer gar nicht weiß was drinnen steckt. Dann hast du setter und getter die 2d Koordinaten erwarten und hast die Freiheit das erstmal rudimentär zu bauen und bei Bedarf dann entsprechend nochmal zu verbessern. Weil wie schon richtig erkannt, ein normales Array würde vollkommen reichen.

Werbeanzeige