jeudi 28 mai 2015

Problem beim Aufbau des Spielfelds

Hallo liebe Community.
Ich möchte ein Spiel programmieren basierend auf dem Spiel des Lebens aber mit Fragen um am Ende einen Steckbrief auszugeben. Man soll selbst an einem Rad drehen welches sichtbar ist. So viel mal grob zum Ziel des Ganzen.
Jetzt habe ich aber ein Problem beim Aufbau des Spielfelds:
Es wird zwar alles schön und gut erzeugt jedoch kann man den Spieler ( Kreis ) auf dem Feld nicht sehen.
Ich habe keinen Layoutmanager verwendet, da ich entweder keinen passenden gefunden oder überfordert war (*hust* GridBagLayout *hust*). Der Spieler wird auch erzeugt jedoch ist er immer hinter den Rechtecken, also dem Spielfeld.
Jetzt zu der Frage. Welcher Layoutmanager wäre dafür am hilfreichsten und auch am besten zu verstehen? Und kann ich das vielleicht auch ohne Regeln? Die Codes sind nur auf das grafische beschränkt, da dies momentan meine einzige Baustelle ist :D. Im Anhang ist noch ein Bild wie das Spielfeld aussieht bzw. aussehen soll.


Mit freundlichen Grüßen
Tomate

Java Code:

  1.  
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5.  
  6. class SPIEL {
  7. SPIEL(){
  8. JFrame fenster= new JFrame("Spiel des Lebens");
  9.  
  10. JPanel spieler1= new KreisPanel(Color.BLUE);
  11. JPanel panel1= new RectPanel(Color.RED);
  12. JPanel panel2= new RectPanel(Color.BLUE);
  13. JPanel panel3= new RectPanel(Color.GREEN);
  14. JPanel panel6= new RectPanel(Color.YELLOW);
  15. JPanel panel7= new RectPanel(Color.BLACK);
  16. JPanel panel8= new RectPanel(Color.GREEN);
  17. JPanel panel9= new RectPanel(Color.RED);
  18. JPanel panel10= new RectPanel(Color.BLUE);
  19. JPanel panel12= new RectPanel(Color.GREEN);
  20. JPanel panel13= new RectPanel(Color.YELLOW);
  21. JPanel panel14= new RectPanel(Color.BLACK);
  22. JPanel panel15= new RectPanel(Color.RED);
  23. JPanel panel16= new RectPanel(Color.WHITE);
  24.  
  25.  
  26. fenster.add(panel1);
  27. fenster.add(panel2);
  28. fenster.add(panel3);
  29. fenster.add(panel6);
  30. fenster.add(panel7);
  31. fenster.add(panel8);
  32. fenster.add(panel9);
  33. fenster.add(panel10);
  34. fenster.add(panel12);
  35. fenster.add(panel13);
  36. fenster.add(panel14);
  37. fenster.add(panel15);
  38. fenster.add(panel16);
  39.  
  40.  
  41. panel1.setVisible(true);
  42. panel2.setVisible(true);
  43. panel3.setVisible(true);
  44. panel6.setVisible(true);
  45. panel7.setVisible(true);
  46. panel8.setVisible(true);
  47. panel9.setVisible(true);
  48. panel10.setVisible(true);
  49. panel12.setVisible(true);
  50. panel13.setVisible(true);
  51. panel14.setVisible(true);
  52. panel15.setVisible(true);
  53. panel16.setVisible(true);
  54.  
  55.  
  56.  
  57. panel1.setBounds(100,0,200,100);
  58. panel2.setBounds(300,0,200,100);
  59. panel3.setBounds(500,0,200,100);
  60. panel6.setBounds(500,100,200,100);
  61. panel7.setBounds(100,200,200,100);
  62. panel8.setBounds(300,200,200,100);
  63. panel9.setBounds(500,200,200,100);
  64. panel10.setBounds(100,300,200,100);
  65. panel12.setBounds(500,300,200,100);
  66. panel13.setBounds(100,400,200,100);
  67. panel14.setBounds(300,400,200,100);
  68. panel15.setBounds(500,400,200,100);
  69.  
  70. fenster.add(spieler1);
  71. spieler1.setVisible(true);
  72. fenster.setVisible(true);
  73. fenster.setSize(1000,600);
  74. }
  75. }




Java Code:

  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.Graphics2D;
  4. import java.awt.geom.Rectangle2D;
  5.  
  6. import javax.swing.JFrame;
  7. import javax.swing.JPanel;
  8.  
  9. class RectPanel extends JPanel {
  10. RectPanel(Color r){
  11. j=r;
  12. }
  13. public void paintComponent(Graphics g) {
  14. g2d.setColor(j);
  15. g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
  16. g2d.setColor(j);
  17.  
  18. Rectangle2D.Double rechteck = new Rectangle2D.Double(0,0,10,100);
  19.  
  20. g2d.fill(rechteck);
  21. g2d.draw(rechteck);
  22. }
  23. }


Java Code:

  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.Graphics2D;
  4. import java.awt.geom.Ellipse2D;
  5.  
  6. import javax.swing.JFrame;
  7. import javax.swing.JPanel;
  8.  
  9. class KreisPanel extends JPanel {
  10. KreisPanel(Color d){
  11. c=d;
  12. }
  13. public void paintComponent(Graphics g) {
  14. g2d.setColor(Color.WHITE);
  15. g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
  16. g2d.setColor(c);
  17. int mx = 150;
  18. int my = 150;
  19. int r = 100;
  20. Ellipse2D.Double kreis = new Ellipse2D.Double(150,50,20,20);
  21. g2d.fill(kreis);
  22. g2d.draw(kreis);
  23. }
  24. }
Miniaturansichten angehängter Grafiken
Klicken Sie auf die Grafik für eine größere Ansicht  Name: Spielfeld.jpg  Hits: -  Größe: 23,4 KB  ID: 7811  


Problem beim Aufbau des Spielfelds

0 commentaires:

Enregistrer un commentaire