Hallo,
Nach nun endlosen Versuchen komme ich trotzdem nicht dahin wo ich hin möchte. Ich bin momentan dabei ein kleines Spiel zu programmieren, jedoch weiß ich nicht wie ich dieses richtig designen soll. Im Internet bin ich auch noch nicht viel weiter gekommen und deswegen frage ich jetzt hier. Also, Ich habe eine GameMain Klasse:
Diese ruft die Klasse GameFrame auf:
Diese ruft wiederum die Klasse GameLabel auf:
Jetzt habe ich eine Player Klasse von der ich ein Objekt zeichnen lassen möchte:
Jetzt ist mein Problem, dass ich die Verlinkung der beiden Klassen nicht richtig hinbekomme. Ich hatte vorher folgendes Modell:
und hatte dann dementsprechend meine GameLabel Klasse:
Allerdings wurde mir gesagt, dass es so wie Ich es gemacht habe kein guter Stil ist. So wie ich es verstanden habe, gebe ich den einzelnen Klassen zu viel Sichtbarkeit untereinander. Nun weiß ich jedoch nicht, wie ich dann meinen Player zeichnen soll. Irgendwie muss dieser ja auf mein Label kommen.
Vielen Dank für eure Antworten!
Nach nun endlosen Versuchen komme ich trotzdem nicht dahin wo ich hin möchte. Ich bin momentan dabei ein kleines Spiel zu programmieren, jedoch weiß ich nicht wie ich dieses richtig designen soll. Im Internet bin ich auch noch nicht viel weiter gekommen und deswegen frage ich jetzt hier. Also, Ich habe eine GameMain Klasse:
Java:
public class GameMain {
public GameMain() {
new GameFrame();
}
}
Diese ruft die Klasse GameFrame auf:
Java:
public class GameFrame extends JFrame {
public GameFrame() {
new GameLabel(this);
}
}
Diese ruft wiederum die Klasse GameLabel auf:
Java:
public class GameLabel extends JLabel {
private GameFrame gameFrame;
public GameLabel(GameFrame gameFrame) {
}
@Override
public void paintComponent(Graphics g) {
}
}
Jetzt habe ich eine Player Klasse von der ich ein Objekt zeichnen lassen möchte:
Java:
public class Player {
public Player() {
}
public void paintPlayer(Graphics g) {
}
}
Jetzt ist mein Problem, dass ich die Verlinkung der beiden Klassen nicht richtig hinbekomme. Ich hatte vorher folgendes Modell:
Java:
public class GameMain {
private GameFrame frame;
private GameLabel label;
private Player player;
public GameMain() {
frame = new GameFrame(this);
label = new GameLabel(this, frame);
player = new Player(this);
}
public GameFrame getFrame() {
return frame;
}
public GameLabel getLabel() {
return label;
}
public Player getPlayer() {
return player;
}
}
Java:
ublic class GameLabel extends JLabel {
private GameMain main;
public GameLabel(GameMain main) {
this.main = main;
}
@Override
public void paintComponent(Graphics g) {
main.getPlayer().paintPlayer(g);
}
}
Vielen Dank für eure Antworten!