Hallo Jungs und Mädels,
ich bastele gerade an einem einfachen Damespiel. Nix schick-schnöseliges. Einfach erstmal nur das basisding. Mensch gegen Mensch.
Mein stand ist folgender. Brett gezeichnet. Startaufstellung. Mausklicks mit Koordinaten abfangbar.
ich hab ein peinliches Problem. Ich bin ein Frischling in der visuellen Programmierung und weis noch nicht wie paint() so richtig funktioniert...
mein frage ist. wie verwende ich paint() (oder etwas anderes) um die ganze Geschichte neuzuzeichnen? Würde z.B. als Test ein Feld markieren(andere Farbe).
zur erklärung des Quelltextes:
paint() schaut nach, was in Brett.brett[][]steht. zeichnet es nach.(1 -schwarz feld, 0 weißes feld)
in Brett.steine[][] steht zunächst die startaufstellung.
ich hatte mir gedacht. beim klick auf ein feld wird in Brett.brett[][] eine 3 reingeschreiben. das soll mein paint() nochmal zeichnen
auf anfrage kann ich auch die anderen klassen reinstellen/ schicken
ich hoffe mir kann geholfen werden.
MfG Wurmi
ich bastele gerade an einem einfachen Damespiel. Nix schick-schnöseliges. Einfach erstmal nur das basisding. Mensch gegen Mensch.
Mein stand ist folgender. Brett gezeichnet. Startaufstellung. Mausklicks mit Koordinaten abfangbar.
ich hab ein peinliches Problem. Ich bin ein Frischling in der visuellen Programmierung und weis noch nicht wie paint() so richtig funktioniert...
mein frage ist. wie verwende ich paint() (oder etwas anderes) um die ganze Geschichte neuzuzeichnen? Würde z.B. als Test ein Feld markieren(andere Farbe).
zur erklärung des Quelltextes:
paint() schaut nach, was in Brett.brett[][]steht. zeichnet es nach.(1 -schwarz feld, 0 weißes feld)
in Brett.steine[][] steht zunächst die startaufstellung.
ich hatte mir gedacht. beim klick auf ein feld wird in Brett.brett[][] eine 3 reingeschreiben. das soll mein paint() nochmal zeichnen
Java:
package dame;
import java.awt.*;
import java.awt.event.*;
public class dame extends Panel{
void wStein(int x, int y,Graphics g){//grauer Stein
g.setColor(Color.LIGHT_GRAY);
g.fillOval(x*50,y*50,50,50);
g.setColor(Color.BLACK);
g.drawOval(x*50+5,y*50+5,40,40);
}
void rStein(int x, int y,Graphics g){//ROTER Stein
g.setColor(Color.RED);
g.fillOval(x*50,y*50,50,50);
g.setColor(Color.BLACK);
g.drawOval(x*50+5,y*50+5,40,40);
}
public void paint(Graphics g){
for(int x=0;x<=7;x++){
for(int y=0;y<=7;y++){
if(Brett.brett[x][y]==0){
g.setColor(Color.WHITE);
g.fillRect(x*50,y*50,50,50);
}
else if(Brett.brett[x][y]==1){
g.setColor(Color.DARK_GRAY);
g.fillRect(x*50,y*50,50,50);
}
if(Brett.steine[x][y]==1) wStein(x,y,g);
if(Brett.steine[x][y]==2) rStein(x,y,g);
}
}
}
public void spiel(Panel p){
int wer = 1;
while(spielregeln.istEnde()==false){
System.out.println("Spieler "+wer+" ist am Zug");
new MausAbfrage().mouseAction(p);
}
}
public boolean handleEvent(Event e) {
if (e.id == Event.WINDOW_DESTROY)
System.exit(0);
return super.handleEvent(e);
}
public static void main(String [] strg){
Brett.brett_initialisieren();
Brett.startaufstellung();
Frame myFrame = new Frame();
Panel p = new dame();
//---------------------Frame
myFrame.add(new dame());
myFrame.add("Center",p);
myFrame.setSize(500,500);
myFrame.setVisible(true);
//-----------Menu
MenuBar myMenuBar = new MenuBar();
Menu startMenu = new Menu("Start");
myMenuBar.add(startMenu);
myFrame.setMenuBar(myMenuBar);
MenuItem m1 = new MenuItem("Neues Spiel beginnen");
MenuItem m2 = new MenuItem("Spiel Verlassen");
startMenu.add(m1);
startMenu.add(m2);
new MausAbfrage().mouseAction(p);
myFrame.addWindowListener(new WindowAdapter(){//shcliessen
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
}
}
auf anfrage kann ich auch die anderen klassen reinstellen/ schicken
ich hoffe mir kann geholfen werden.
MfG Wurmi