Ich bräuchte nur den Teil eines Objekts

Hallo, Experten,

Die Fragestellung:
Für ein Spiel definiere ich ca. 25 Männchen, die viele Eigenschaften haben: x-y-Position, Größe, Haarfarbe, Geschwindigkeit u.v.m.

Zur Steuerung ihrer Bewegung errechne ich jeweils 5 zukünftige Positionen (damit sie einander ausweichen können). Dazu brauche ich aber nur einen Bruchteil der Information eines Männchen-Objekts (z.B. die x-y-Position).

Ich habe nun die folgenden Möglickeiten:

  1. Ich rechne einfach mit den x,y-Werten usw., z.B. in Form eines Arrays. Nachteil: Unelegant, denn meine schönen Methoden zum Rechnen mit den Männchen-Objekten (z.B. abstand(m1, m2)) lassen sich dann auf die „zukünftigen“ Männchen nicht anwenden.

  2. Ich definiere statt eines 1D-Arrays mit 25 Männchen einen 6*25-2D-Array mit 25 Männchen und ihren je 5 zukünftigen Positionen. Aber ist das nicht eine ganz schöne Verschwendung, weil ich ja nur einen kleinen Teil der Info brauche ?

  3. Ich definiere eine Klasse mit „Männchen light“, in die ich nur die relavanten Information übertrage. Dann müsste ich die Methoden aber auf die light-Objekte beziehen, und auch dann mit light-Männchen arbeiten, wenn dies gar nicht erforderlich ist (damit die Mehoden passen).

Wie macht man so was am elegantesten ?

mfg
Klaus

P.S. Die Adresse der besagten Homepage ist http://www.kanitri.de

Hallo, Experten,

Die Fragestellung:
Für ein Spiel definiere ich ca. 25 Männchen, die viele
Eigenschaften haben: x-y-Position, Größe, Haarfarbe,
Geschwindigkeit u.v.m.

Zur Steuerung ihrer Bewegung errechne ich jeweils 5 zukünftige
Positionen (damit sie einander ausweichen können). Dazu
brauche ich aber nur einen Bruchteil der Information eines
Männchen-Objekts (z.B. die x-y-Position).

da ja bei deiner Simulation die Bewegung im Vordergrund steht, und die Grafik eigentlich nur an 2. Stelle steht, würde ich das umstrukturieren

Objekt bewegung;
x,y -koordinaten
x,y -richtung
v - geschwindigkeit
bewegung[] next - array der nächsten 5 Positionen
Aussehen aus;(nur ein Zeiger)

und Aussehen
-haarfarbe Grösse …
als die 4 Standard-Männiken, die du hast

für die Steuerung/ausweichen, empfehle ich die mal nach
„Kollisionsabfrage“ zu googlen, es gibt effektivere wege, als die next 5 Positionen zu bestimmen :wink:

Auch hallo.

Objekt bewegung;
x,y -koordinaten
x,y -richtung
v - geschwindigkeit
bewegung[] next - array der nächsten 5 Positionen
Aussehen aus;(nur ein Zeiger)

und Aussehen
-haarfarbe Grösse …
als die 4 Standard-Männiken, die du hast

für die Steuerung/ausweichen, empfehle ich die mal nach
„Kollisionsabfrage“ zu googlen, es gibt effektivere wege, als
die next 5 Positionen zu bestimmen :wink:

Alternativ könnte man sich einer 3D Beschreibungssprache bedienen, da diese solche Aktionen automatisch umsetzen können. Java3D wäre so ein Kandidat (benötigt aber auch eine Java3D Runtime, z.B. die von http://www.blackdown.org/java-linux/java-linux-d1.html)
Der jeweilige Nutzer braucht diese dann aber auch.

Hier ein paar links: http://www.grafikprogrammierung.de
http://www.sys-con.tv/ (suche nach Java3D) , http://www.j3d.org

HTH
mfg M.L.

Hallo Klaus,
wäre es nicht am einfachsten die Methoden ( wie z.B. abstand als Methode der Männchenklasse zu nehmen, so daß du dann m1.abstand(m21);
oder m1.abstand(x,y) hast.