# Spiel Renderer Images und Strings



## Bananabert (27. Sep 2013)

Nabend Community,

ich bin gerade dabei in meinem Spiel selbst erstelles Menüs zu implementieren.
Bisher habe ich nur ein Fenster welches ich umherziehen kann und schließen.
Jetzt wollte ich eine Dialog Klasse erstellen welche von "BaseMenu" erbt.
Nur stehe ich gerade vor der Problem, wie Render ich die Strings.

Also meine GameScreen Klasse bekommt aus dem GameLoop die GameObjekte (Default Klasse für Spiel Objekte, BaseMenu/Entity/Skill erben hier von) die zu Rendern sind. Loop über diese und holt sich dort, das zu rendernde Image.
Hier kann ich natürlich nicht die Texte rausholen, da eine GameObject an sich sowas nicht kennt.
Meine erste überlegung war, ein Interface zu erstellen, welche die möglichkeit des Rendern anbietet und dass sich die GameObjecte selber rendern können. Somit wäre jedes Object selber für seine darstellung zuständig.

Fällt hier sonst jemanden eine bessere Idee ein?


----------



## Hestalon (28. Sep 2013)

UML Diagramm ?
oder kurze Auszüge vom Code?

Aber ansich könnte dabei ein Interface helfen ja.


----------



## Bananabert (30. Sep 2013)

Im Grund sieht das ganze Plain so aus.

GameLoop

```
public class GameLoop implements Runnable
{
	GameScreen screen;
	
	public void run()
	{
		while(isRunning())
		{
			for(GameObject go : gObjL)
				go.update(delta);

			screen.render(gObjL);
		}
	}
}
```

GameScreen

```
public class GameScreen
{
	public void render(List<GameObject> gObjL)
	{
		for(GameObject go : gObjL)
			this.graphics.drawImage(go.getImage(), null, go.getX(), go.getY());
	}
}
```

GameObject

```
public abstract class GameObject
{
	public abstract void render(double delta);
}
```


----------



## BuddaKaeks (30. Sep 2013)

Arbeitest du mit swing?

-> graphics.setFont(java.awt.Font);
-> graphics.drawString(...)


----------



## Vancold (1. Okt 2013)

Hallo!

Du könntest einfach die Texte transparent abspeichern.
Also Schrift ohne Hintergrund; bzw transparenten und einfach oben aufs Menu zeichnen, oder sie gleich in das Menu einbauen, das du Button-grafiken machst. 
So bräuchtest du nicht etwas extra machen sondern nur eine render Aufruf machen, da es sich ja um ein GameObject handelt.

Also wenn ichs jetzt richtig verstanden hab 


lg

Rene


----------

