static elemente
-
also bisher hatte ich folgende struktur meiner alien klasse:
alle hatten das selbe bild , also habe ich es als static pic_alien
deklariert und dann mit einer init-funktion festgelegtnun wollte ich verschiedene aliens, zunächst sollten sie sich nur in den eigenschaften (geschwindigkeit,...) unterscheiden aber immer noch das selbe bild verwenden also habe ich einige klassen von alien abgeleitet
nun will ich aber dass verschiedene aliens verschieden aussehen?
kann man irgendiwie die staticeigenschaft überschreiben?also was ich will ist dass alle alienklassen das alte bild verwenden nur einige bestimmte sorten sollen andere bekommen, ist das möglich?
-
beginner233 schrieb:
nun wollte ich verschiedene aliens, zunächst sollten sie sich nur in den eigenschaften (geschwindigkeit,...) unterscheiden aber immer noch das selbe bild verwenden also habe ich einige klassen von alien abgeleitet
Nach der Beschreibung bräuchte man keine Vererbungshirachie, sondern würde einfach unterschiedliche Objekte der Alienklasse (mit unterschieden in den Eigenschaftswerten) erstellen.
beginner233 schrieb:
nun will ich aber dass verschiedene aliens verschieden aussehen? kann man irgendiwie die staticeigenschaft überschreiben?
Nein, zumindestens nicht so wie du es dir wohl vorstellst.
In der Regel würde ich bei einer optional anderen Darstellung in den Objekten einen Zeiger verwenden. Wenn dieser 0 ist nimmt man dann den das Bild aus dem statischen Membervariable, sonst das, auf den der Zeiger verweist.
cu André
-
beginner233 schrieb:
alle hatten das selbe bild , also habe ich es als static pic_alien
deklariert und dann mit einer init-funktion festgelegtWieso hast du es nicht gleich bei der Definition initialisiert?
beginner233 schrieb:
nun will ich aber dass verschiedene aliens verschieden aussehen?
kann man irgendiwie die staticeigenschaft überschreiben?Statische Klassenvariablen haben klassenweit den selben Einsatzzweck, sind also unabhängig von irgendwelchen Instanzen der Klasse. Ich würde eine Art Bild-Datenbank erstellen (z.B. Container mit eigener Klasse), die unterschiedliche Bilder verwaltet. Und dann können die einzelnen Alien-Objekte eine Referenz auf die entsprechende Bild-Instanz erhalten. Mit einer Referenz bist du zwar weniger flexibel als mit einem Zeiger, aber wenn ein Alien während seiner gesamten Lebensdauer dasselbe Bild haben soll, sind Referenzen geeignet.