Also...der Titel gibt nicht hundertprozentig mein Problem wieder.
Ich erläuter das mal (oder versuchs zumindest^^...bin ein ziemlicher java-einsteiger):
Also ich habe die Aufgabe mit JFrame und JPanel quasi die basis für ein dynamisches Schiffeversenken zu erstellen. Das muss grafisch nicht aufwendig sein, sollte aber folgende Kriterien erfüllen: Feld 600x600 pixel, mausklick setzt ein schiff (kann auch ein viereck oder so sein), die schiffe sollen auswählbar sein, ein klick nach dem auswählen eines schiffes soll einen richtungsvektor setzen, in dessen richtung die bewegung des schiffes geht, mit + und - soll das ausgewählte schiff schneller bzw langsamer werden, verlässt ein schiff den panelbereich soll es an der entgegengesetzten stelle wieder eintreten, jedes schiff soll einen eigenen thread bekommen (das soll angeblich die animation flüssiger machen...ich hab davon ehrlich gesagt keine ahnung...)
also mit diesem ganzen grafischen kram bin ich gar nicht vertraut...wenn ich bis jetzt was programmieren musste war das delphi in der schule oder an der uni programme zur umsetzung numerischer/linearalgebraischer verfahren--> ich fühl mich im moment noch ziemlich überfordert.
das einzige was mir halbwegs klar ist ist, wie die klassenstruktur auszusehen hat (glaube ich T_T); bis jetzt sieht das wie folgt aus:
class Spiel --> die Hauptklasse
public class Spiel_Frame extends JFrame
public class Spiel_Panel extends JPanel
public class Ship extends Thread (hab wie gesagt keine ahnung wie ich das ausnutzen soll bzw generell nicht wie ich diesen setzen und bewegen/beschleunigen-teil machen soll)
wär cool, wenn mir da jemand behilflich sein könnte, da ich nur noch bis zum 26. Zeit habe.
mfg Wolfone
edit: das is das was ich bis jetzt hab...ich kriegs ja noch nichtmal hin rote rechtecke auf blauem grund zu erzeugen bei mausklick...aaaaaahhhhhhhh!!!
Ich erläuter das mal (oder versuchs zumindest^^...bin ein ziemlicher java-einsteiger):
Also ich habe die Aufgabe mit JFrame und JPanel quasi die basis für ein dynamisches Schiffeversenken zu erstellen. Das muss grafisch nicht aufwendig sein, sollte aber folgende Kriterien erfüllen: Feld 600x600 pixel, mausklick setzt ein schiff (kann auch ein viereck oder so sein), die schiffe sollen auswählbar sein, ein klick nach dem auswählen eines schiffes soll einen richtungsvektor setzen, in dessen richtung die bewegung des schiffes geht, mit + und - soll das ausgewählte schiff schneller bzw langsamer werden, verlässt ein schiff den panelbereich soll es an der entgegengesetzten stelle wieder eintreten, jedes schiff soll einen eigenen thread bekommen (das soll angeblich die animation flüssiger machen...ich hab davon ehrlich gesagt keine ahnung...)
also mit diesem ganzen grafischen kram bin ich gar nicht vertraut...wenn ich bis jetzt was programmieren musste war das delphi in der schule oder an der uni programme zur umsetzung numerischer/linearalgebraischer verfahren--> ich fühl mich im moment noch ziemlich überfordert.
das einzige was mir halbwegs klar ist ist, wie die klassenstruktur auszusehen hat (glaube ich T_T); bis jetzt sieht das wie folgt aus:
class Spiel --> die Hauptklasse
public class Spiel_Frame extends JFrame
public class Spiel_Panel extends JPanel
public class Ship extends Thread (hab wie gesagt keine ahnung wie ich das ausnutzen soll bzw generell nicht wie ich diesen setzen und bewegen/beschleunigen-teil machen soll)
wär cool, wenn mir da jemand behilflich sein könnte, da ich nur noch bis zum 26. Zeit habe.
mfg Wolfone
edit: das is das was ich bis jetzt hab...ich kriegs ja noch nichtmal hin rote rechtecke auf blauem grund zu erzeugen bei mausklick...aaaaaahhhhhhhh!!!
Code:
import javax.swing.*;
import java.awt.event.*;
public class Spiel {
public static void main(String[] args) {
Spiel_Frame gui = new Spiel_Frame ();
}
}
Code:
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class Spiel_Frame extends JFrame {
private Spiel_Panel Wasser;
public Spiel_Frame (){
this.setTitle("Schiffeversenken");
this.setSize(600,600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(false);
this.setLocation(100,100);
Wasser = new Spiel_Panel();
this.getContentPane().add (Wasser, BorderLayout.CENTER);
}
}
Code:
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.applet.*;
import javax.swing.*;
public class Spiel_Panel extends JPanel implements MouseListener {
public void paint (Graphics g){
g.setColor(Color.BLUE);
g.fillRect(0,0,600,600);
}
public void mouseClicked(MouseEvent e) {
int xkoordinate = getX();
int ykoordinate = getY();
new Ship(xkoordinate,ykoordinate){};
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
}
Code:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.*;
public class Ship extends Thread{
int position_x, position_y;
public void paint (Graphics g){
g.setColor(Color.BLACK);
g.fillRect(position_x,position_y,20,20);
}
Ship (int xkoordinate, int ykoordinate){
position_x = xkoordinate;
position_y = ykoordinate;
}
}
Zuletzt bearbeitet: