# Grafiken zuordnen



## System.exit(0) (1. Dez 2015)

Hallo zusammen,

ich arbeite gerade mit meinem Sohn daran, ein kleines Spiel zu entwickeln.
Dabei werden wir für Aliens und Waffen usw. natürlich Grafiken brauchen.

Nun bin ich mir nicht sicher, wie ich am geschicktesten Objekten und Grafiken zuordne.
Mache ich 
- eine Textdatei, die die Grafiknamen und bezüge speichert,
- schreibe ich in die Klassen die Namen der Dateien,
- schreibe ich die Namen der Dateien in die csv-Dateien, die die Leveldaten enthalten oder
- mache ich irgend etwas anderes Sinnvolleres?

Danke

mfg

System.exit(0)


----------



## Major_Sauce (2. Dez 2015)

Morgen 

kommt ganz au fie Anzahl der benötigten Grafiken drauf an.
Du kannst auch sagen dass alle Grafiken in einem Ordner liegen und dann einfach der Name der Klasse als Grafikname benutzt wird, also zum Bleistift Alien.getName().
Ich persönlich verwende ganz gerne Enums dafür, in denen ich den Pfad deklariere, bietet sich aber nur an wenn die die Enums sowieso schon brauchst. Ist alles Auslegungssache und kommt auf die Situation drauf an.

mfg Major


----------



## InfectedBytes (2. Dez 2015)

Kommt auch drauf an wie komplex dein Projekt allgemein werden soll.
Wenn das Spiel beispielsweise aus sehr vielen verschiedenen Waffen besteht, welche sich nur durch parameter unterscheiden, so ist es meistens angenehmer diese in Konfigurationsdateien zu speichern. In diesen Dateien kann man dann auch direkt die zu verwendende Grafik angeben. 
So eine Datei könnte man z.B. wie folgt aufbauen:

```
[
  { "path" : "assets/weapons/a.png", "damage" : 123, "reloadtime" : 5 },  
  { "path" : "assets/weapons/b.png", "damage" : 10, "reloadtime" : 1 },  
  { "path" : "assets/weapons/c.png", "damage" : 200, "reloadtime" : 20 },
]
```
Diese Datei kannst du dann zum Start einlesen und parsen und damit dann die verschiedenen Waffen Objekte erzeugen und die entsprechenden Bilder laden


----------



## System.exit(0) (2. Dez 2015)

Danke, so in etwa hab ich mir das vorgestellt. War mir aber nicht sicher, ob das zu overengineered wäre


----------



## InfectedBytes (2. Dez 2015)

man spart sich halt viel aufwand damit^^
und vor allem muss man nicht bei jeder kleinen parameter änderung neu kompilieren^^


----------

