# Isometrischer KartenEditor mit Animierten Objekte



## Black_Divil (14. Dez 2008)

Hallo,
Ich hab da mal ne frage an die allgemeinheit...
Seit einigen Monaten arbeite ich an einen Isometrischen karteneditor der auch weitgehends funktioniert... nun erreich ich bald den punkt an dem ich gerne Animierte Objekte auf der karte Darstellen will... wie z.B. einen LKW... der fährt dann logischer weise über die fliesen... 
Meine frage ist wie würdet ihr das realisieren ... 

ich hab mir da bis jetzt 2 wege einfallen lassen:

1. ich lass die Objekte von den Fliesen selbst zeichnen... würde aber bedeuten das ich beim übertreten von einer Fliese in eine andere beide Fliesen neu zeichen müsste und das Objekt quasi pixel für pixel... (erscheint mir sehr aufwändig.)

2. Ich lege ein Extra panel über meine fliesen in dem die Objekte dann gezeichnet werden...
Da weis ich aber noch nicht was da für problemchen auf mich zu kommen .. ich mein die sollen dann einer strasse nachfahren die eigentlich nicht da ist... das wird dann abfragen technisch recht groß denk ich... 

für die die sich jetzt die frage stellen an was ich arbeite... 
Eigentlich an nix bestimmtes ;-)

Es soll einfach erst mal ein Karten Editor werden der sehr funktionell ist... und darüberhinaus für viele Spielchen einsetzbar sein. 

Ich hoffe ihr habt ein paar gute Ideen... 
Danke schon mal im vorraus...
sers...


----------



## SegFault (14. Dez 2008)

Sollte sich das Objekt nicht selber Zeichnen können ? Rein OOP Technisch gesehen würde ich eine art Paint Methode für das Objekt programmieren dem ich dann z.B. die Koordinate bzw die Fliese übergebe an der sich das Objekt selber Zeichnen soll. 

Wenn das Design richtig stimmt (Strikte Trennung von Model und Anzeige) ists dann auch nicht schwierig heraus zu finden ob in der Kachel sich z.B. eine Straße befindet.


----------



## Black_Divil (19. Dez 2008)

Ok,
Ich glaub ich versteh was du meinst, aber wie das gehen soll ist mir nicht ganz klar... ich hab eine Klasse names Fliese und schreib der nun eine methode die das objekt malt...
Das Problem seh ich darin das das Objekt auch mal die Fliese verlässt und dann in 2 Fliesen wieder auftaucht(in der alten und in der neuen. zwecks flüssingen übergangs.)... ich denke das währ immernoch machbar... aber ziemlich aufwändig... oder denk ich zu kompliziert?

Ich bin schon der meinung das sich das Objekt OOP technisch selbst definieren sollte ... also mit all seinen eigenschaften und darüber hinaus mit sein aussehen... ich kann nur nicht her gehen und ein auto in ein array packen das eigentlich Fliesen erwartet... ich mein selbst das währ wohl mit einer gemeinsamen oberklasse zu machen aber ich dachte vieleicht hat jemand noch eine andere ... simplere lösung parat...


Hier mal ein link zur vorläufigen Project page...
Ist auch ein Bild davon drauf, wie heist es immer so schön 1 Bild sagt mehr als 1000 Worte.

IsoEditor Homepage


----------



## Templon (19. Dez 2008)

Black_Divil hat gesagt.:
			
		

> der denk ich zu kompliziert?


Joa, glaub schon 

Mal ein bisschen Pseudocode:


```
abstract class GameObject {
	abstract update(double deltaT); // Zeit seit letztem mal update
	abstract draw(Graphics g);
	...
}

class Train extends GameObject {
	double x;
	double y;
	...
}

class Map extends GameObject {
	List<GameObject> objects; // z.B. Züge oder was auch immer =)
	Sprite[][] map;
	update() {
	// objects update
	}

	draw() {
	// map[][] zeichnen - deine isometrische karte
	// objects zeichnen
	}
}

class Game {
	gameLoop() {
	// Map updaten
	// Map zeichnen	
	}
}
```

So würde es bei mir etwa aussehen. Hoffe das hilft ein wenig weiter =)


----------

