Hallo,
ich habe da ein kleines Problem, das mir jedoch Kopfschmerzen bereitet...
Wir haben gerade an der Uni die Aufgabe ein Brettspiel zu implementieren und ich schreibe gerade an dem Spielmenü.
Benutzt wird die jMonkey-Engine für den 3D Part und Swing-Elemente fürs Menü. Ich habe es so bewerkstelligt, das für jedes Menübild, also Status ein JMEDesktop herhält, der dann gerendert wird, falls das entsprechende Menü gerade aktiv ist.
Das Problem tritt bei der Auswahl Mensch oder KI auf. Ich benutze eig überall JLabels als Buttons mit Text bzw. Images.
Hier benutze ich zur Navigation des Gegners Pfeilimages.
Wenn man jetzt auf den Pfeil drückt, ändert sich beim JLabel der Text. Eben z.B. Mensch oder KI.
Doch dann steht das label nachm Drücken plötzlich oben am Bildschirm, vorher wars mittig mit festen Positionsangaben angelegt.
Achja, die Labels sind auf einem JPanel, das von mir überschrieben wurde, damits Hintergrundbilder zeichnet.
Aber hier mal Codeausschnitte der jeweiligen Stellen:
Und hier die MouseListener-Methode:
In der Methode wird halt der aktuelle index erhöht/verringert, um in einem Array zwischen Mensch/KI-Leicht/KI-Mittel/KI-Schwer zu navigieren. Ich habe halt feste Positionen genommen, da wir fest mit einer Auflösung von 800x600 arbeiten, und man damit einfacher Texte richtig bez. Backgroundimage anordnen kann.
Hoffe, das mir einer helfen kann.
ich habe da ein kleines Problem, das mir jedoch Kopfschmerzen bereitet...
Wir haben gerade an der Uni die Aufgabe ein Brettspiel zu implementieren und ich schreibe gerade an dem Spielmenü.
Benutzt wird die jMonkey-Engine für den 3D Part und Swing-Elemente fürs Menü. Ich habe es so bewerkstelligt, das für jedes Menübild, also Status ein JMEDesktop herhält, der dann gerendert wird, falls das entsprechende Menü gerade aktiv ist.
Das Problem tritt bei der Auswahl Mensch oder KI auf. Ich benutze eig überall JLabels als Buttons mit Text bzw. Images.
Hier benutze ich zur Navigation des Gegners Pfeilimages.
Wenn man jetzt auf den Pfeil drückt, ändert sich beim JLabel der Text. Eben z.B. Mensch oder KI.
Doch dann steht das label nachm Drücken plötzlich oben am Bildschirm, vorher wars mittig mit festen Positionsangaben angelegt.
Achja, die Labels sind auf einem JPanel, das von mir überschrieben wurde, damits Hintergrundbilder zeichnet.
Aber hier mal Codeausschnitte der jeweiligen Stellen:
Java:
final myPanel localGamePanel = new myPanel(ladeImage(new File("data/localGame.png")));
localGame.getJDesktop().add(localGamePanel);
localGamePanel.setBounds(0, 0, 800, 600);
//Pfeil 1 Links
final JLabel arrow1Left = new JLabel();
arrow1Left.setIcon(left_y);
arrow1Left.setBounds(120, 200, 15, 30);
localGamePanel.add(arrow1Left);
//Label Spieler1
final JLabel lPlayer1 = new JLabel("MENSCH");
lPlayer1.setBounds(160, 200, 170, 35);
lPlayer1.setFont(sFont.deriveFont(25f));
lPlayer1.setForeground(Color.BLACK);
localGamePanel.add(lPlayer1);
Player1 = 1;
//Pfeil 1 Rechts
final JLabel arrow1Right = new JLabel();
arrow1Right.setIcon(right_y);
arrow1Right.setBounds(330, 200, 15, 30);
localGamePanel.add(arrow1Right);
Und hier die MouseListener-Methode:
Java:
else if( over.equals("arrow1Left")){
Player1--;
if(Player1 < 1) Player1 = 4;
lPlayer1.setText(player[Player1-1]);
}
else if( over.equals("arrow1Right")){
Player1++;
if(Player1 > 4) Player1 = 1;
lPlayer1.setText(player[Player1-1]);
}
Hoffe, das mir einer helfen kann.
Zuletzt bearbeitet: