Hi,
ich arbeite gerade an einem Projekt, genauer, an einem Applet-Spiel.
Es handelt sich um eine "Tower Defense" das sollte vll einigen hier was sagen. In dieser Tower defense geht es darum, ankommende Monster durch Türme (Tower ) zu eliminieren.
Ursprünglich findet man das in Spielen wie Starcraft und Warcraft wieder.
Ich studiere Physik und im Zuge dessen auch Informatik als Nebenfach. Es ist zwar erst das erste Semester in Java, aber ich denke mir wurde in Bezug auf Datenstrukturen etc. schon einiges mitgegeben.
Wie dem auch sei, durch das Projekt musste ich mir einige Sachen aneignen die wir noch nicht behandelt haben, z.B. Threads, Applets etc.
Ich versuche in mein Applet Klassen einzubinden wie z.B. Türme. Diese Klassen werden in der paint() Methode des Applets angesprochen, und besitzen eine malen(Graphics g) Methode um sich selbst darzustellen.
Nun wurden die Türme bislang durch gefüllte Kreise dargestellt, ich möchte nun aber Grafiken benutzen, so wie ich das jedoch sehe kann ich Grafiken per getImage() nur in einer Klasse benutzen die vom Applet erben.
Meine Klasse Turm sieht Ursprünglich etwa so aus:
Die Klasse Geschoss ist ähnlich aufgebaut wie der Turm nur bekommt Sie ein Creep übergeben, also ein "Monster" um z.B. auf die x bzw. y Koordinate jenes zugreifen zu können (Zur Zielerfassung z.B.).
Für den gefüllten Kreis würde ich nun gerne Grafiken benutzen, nur erkennt er die Methode getImage() nicht wenn ich die Klasse Turm nicht vom Applet erben lasse.
Kann man dies irgendwie umgehen? Gibt es Komplikationen wenn ich die Klasse Turm vom Applet erben lasse? Dann würde ich ja sozusagen ein Applet in einem Applet einbinden.
Und Allgemein, ist diese Art von Strukturierung elegant? Applets machen mir z.Zt noch eingies zu schaffen, ich hab zwar schon ein paar Bücher durchsucht, aber wirklich intensiv geht von meinen leider keins auf Applets ein.
/EDIT Ich hab den Konstruktor der Klasse Turm nun so abgeändert, dass er noch ein Image und einen ImageObserver übergeben bekommt, die Grafik wird nun also im Applet selber geladen, das stellt mich zwar nicht gerade sehr zufrieden aber es funktioniert, dennoch würde ich mich über Verbesserungsvorschläge freuen
ich arbeite gerade an einem Projekt, genauer, an einem Applet-Spiel.
Es handelt sich um eine "Tower Defense" das sollte vll einigen hier was sagen. In dieser Tower defense geht es darum, ankommende Monster durch Türme (Tower ) zu eliminieren.
Ursprünglich findet man das in Spielen wie Starcraft und Warcraft wieder.
Ich studiere Physik und im Zuge dessen auch Informatik als Nebenfach. Es ist zwar erst das erste Semester in Java, aber ich denke mir wurde in Bezug auf Datenstrukturen etc. schon einiges mitgegeben.
Wie dem auch sei, durch das Projekt musste ich mir einige Sachen aneignen die wir noch nicht behandelt haben, z.B. Threads, Applets etc.
Ich versuche in mein Applet Klassen einzubinden wie z.B. Türme. Diese Klassen werden in der paint() Methode des Applets angesprochen, und besitzen eine malen(Graphics g) Methode um sich selbst darzustellen.
Nun wurden die Türme bislang durch gefüllte Kreise dargestellt, ich möchte nun aber Grafiken benutzen, so wie ich das jedoch sehe kann ich Grafiken per getImage() nur in einer Klasse benutzen die vom Applet erben.
Meine Klasse Turm sieht Ursprünglich etwa so aus:
Code:
import java.awt.Image;
import java.awt.Graphics;
public class Turm {
private int x,y;
private Geschoss bam;
private Image Bild;
public Turm(int px, int py){
x = px;
y = py;
bam = null;
}
public void malen(Graphics g){
if(bam != null){
bam.male(g);
}
g.fillOval(x-25, y-25, 50, 50);
}
public void knall(Creep p_Creep){
bam = new Geschoss(x,y,p_Creep);
}
public Geschoss getBam(){
return bam;
}
}
Die Klasse Geschoss ist ähnlich aufgebaut wie der Turm nur bekommt Sie ein Creep übergeben, also ein "Monster" um z.B. auf die x bzw. y Koordinate jenes zugreifen zu können (Zur Zielerfassung z.B.).
Für den gefüllten Kreis würde ich nun gerne Grafiken benutzen, nur erkennt er die Methode getImage() nicht wenn ich die Klasse Turm nicht vom Applet erben lasse.
Kann man dies irgendwie umgehen? Gibt es Komplikationen wenn ich die Klasse Turm vom Applet erben lasse? Dann würde ich ja sozusagen ein Applet in einem Applet einbinden.
Und Allgemein, ist diese Art von Strukturierung elegant? Applets machen mir z.Zt noch eingies zu schaffen, ich hab zwar schon ein paar Bücher durchsucht, aber wirklich intensiv geht von meinen leider keins auf Applets ein.
/EDIT Ich hab den Konstruktor der Klasse Turm nun so abgeändert, dass er noch ein Image und einen ImageObserver übergeben bekommt, die Grafik wird nun also im Applet selber geladen, das stellt mich zwar nicht gerade sehr zufrieden aber es funktioniert, dennoch würde ich mich über Verbesserungsvorschläge freuen
Zuletzt bearbeitet: