Hallo Leute,
ich bin neu hier. Ich hoffe es ist das richtige Unterforum;
Mein Problem ist, dass ich ein Spiel programmieren muss und dafür ein großes Hexagon zeichnen muss, auf dem wiederum eine Art Hexagon zu sehen ist. Auf diesem zweiten Hexagon laufen sechs querbalken zu den Ecken des ersten Hexagons.
Meine Idee war nun zwei Hexagon zu zeichnen, ein normales Hexagon und ein zweites, auf welchem die Querbalken dargestellt werden.
Das erste habe ich ganz normal mit den paintmethoden als JPanel auf einem Frame realisiert. Allerdings funktioniert das mit dem zweiten nicht so ganz.
Wie schaffe ich es, dass ich in der selben Klasse eben jenes zweite Hexagon zeichnen kann und das dann auch angezeigt wird.???
Wäre echt dankbar wenn ihr mir helfen könntet.!!!
Wenns denn möglich wäre sehr ausführlich. Bin eben noch Anfänger mit den ganzen paint geschichten.
Gruß
Felix
Anbei mein bisheriger Quellcode:
ich bin neu hier. Ich hoffe es ist das richtige Unterforum;
Mein Problem ist, dass ich ein Spiel programmieren muss und dafür ein großes Hexagon zeichnen muss, auf dem wiederum eine Art Hexagon zu sehen ist. Auf diesem zweiten Hexagon laufen sechs querbalken zu den Ecken des ersten Hexagons.
Meine Idee war nun zwei Hexagon zu zeichnen, ein normales Hexagon und ein zweites, auf welchem die Querbalken dargestellt werden.
Das erste habe ich ganz normal mit den paintmethoden als JPanel auf einem Frame realisiert. Allerdings funktioniert das mit dem zweiten nicht so ganz.
Wie schaffe ich es, dass ich in der selben Klasse eben jenes zweite Hexagon zeichnen kann und das dann auch angezeigt wird.???
Wäre echt dankbar wenn ihr mir helfen könntet.!!!
Wenns denn möglich wäre sehr ausführlich. Bin eben noch Anfänger mit den ganzen paint geschichten.
Gruß
Felix
Anbei mein bisheriger Quellcode:
Java:
package test;
import javax.swing.*;
import java.awt.*;
import java.awt.Graphics.*;
import java.awt.Graphics2D.*;
import java.awt.Polygon.*;
public class View extends JFrame {
public View() {
JMenuBar menu = new JMenuBar();
JMenu data = new JMenu("Datei");
JMenu about = new JMenu("Extras");
JMenuItem exit = new JMenuItem("Beenden");
JMenuItem aboutGame = new JMenuItem("Über das Spiel");
data.add(exit);
about.add(aboutGame);
menu.add(data);
menu.add(about);
setJMenuBar(menu);
setTitle("Banca");
setSize(1024, 768);
add(new PolygonsPanel());
add(new QuadratPanel());
//add(sf);
}
/** Main method */
public static void main(String[] args) {
View frame = new View();
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
// Zeichnet das Polygon auf das Panel
class PolygonsPanel extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int xCenter = getWidth() / 2;
int yCenter = getHeight() / 2;
int radius = (int)(Math.min(getWidth(), getHeight()) * 0.5);
// Erzeugt ein Objekt der Klasse Polygon
Polygon polygon = new Polygon();
Color color = new Color(85,107,47); //85,107,47
Graphics2D g2d = (Graphics2D) g;
// Fügt dem Polygon die einzelnen Punkte hinzu
polygon.addPoint(xCenter + radius, yCenter);
polygon.addPoint((int)(xCenter + radius *
Math.cos(2 * Math.PI / 6)), (int)(yCenter - radius *
Math.sin(2 * Math.PI / 6)));
polygon.addPoint((int)(xCenter + radius *
Math.cos(2 * 2 * Math.PI / 6)), (int)(yCenter - radius *
Math.sin(2 * 2 * Math.PI / 6)));
polygon.addPoint((int)(xCenter + radius *
Math.cos(3 * 2 * Math.PI / 6)), (int)(yCenter - radius *
Math.sin(3 * 2 * Math.PI / 6)));
polygon.addPoint((int)(xCenter + radius *
Math.cos(4 * 2 * Math.PI / 6)), (int)(yCenter - radius *
Math.sin(4 * 2 * Math.PI / 6)));
polygon.addPoint((int)(xCenter + radius *
Math.cos(5 * 2 * Math.PI / 6)), (int)(yCenter - radius *
Math.sin(5 * 2 * Math.PI / 6)));
// Draw the polygon
g.drawPolygon(polygon);
g2d.setPaint(color);
g2d.fill(polygon);
}
//Hier soll das zweite Panel hin, habs zur Probe nur mit nem Quadrat ausprobiert
class QuadratPanel extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
}
}
}