Hallo Liebe Java-Community.
Ich bin neu hier im Forum und freue mich, in euren Reihen balde
begrüßen zu dürfen.
Nun will ich nicht um den "Heißen Brei" rumreden, sondern direkt zu meinem Problem kommen.
Ich programmiere Zurzeit ein Java-Spiel, welches im RPG-Genre gestaltet ist
und auf der Basis von Texten läuft (also das gute alte Text-Adventure, für die, die sowas noch kennen!)
Mein Code bezüglich eines Drag and Drop Systems ist noch frisch und nichtmals anährend fertig^^
Jedoch komm ich dort nicht weiter, weil ich bei den Componenten scheitere.
Ich poste euch mal den Code.
Mein Problem ist einfach, dass ich mehrere Objekte wie
[g.fillRect(objectX, objectY, objectSize, objectSize);]
erstellen möchte, die ich einzelnt bewegen und setzen kann.
Wenn ich mehrere Objekte erzeuge bewegen sich alle gleichzeitig.
Wenn ich versuche in dem
mehrere parameter vom typ Graphics g2.... etc zu erzeugen (und natürlich das Override wegmach)
erzeugt er keine Componenten mehr.
Wie kann ich also mehrere Componenten erzeugen, die sich einzelnt bewegen und setzen lassen?
Danke schonmal im worraus und entschuldige meine Unkenntnisse. Ich programmiere noch nicht sehr lange und habe es hauptsächlich 2 Jahre in meinem Fachabitur in It-Technik gelernt und möchte
gerne Anwendungsentwickler werden, wofür ich mich dieses Jahr bewerbe.
Hochachtungsvoll,
Christopher T.
Ich bin neu hier im Forum und freue mich, in euren Reihen balde
begrüßen zu dürfen.
Nun will ich nicht um den "Heißen Brei" rumreden, sondern direkt zu meinem Problem kommen.
Ich programmiere Zurzeit ein Java-Spiel, welches im RPG-Genre gestaltet ist
und auf der Basis von Texten läuft (also das gute alte Text-Adventure, für die, die sowas noch kennen!)
Mein Code bezüglich eines Drag and Drop Systems ist noch frisch und nichtmals anährend fertig^^
Jedoch komm ich dort nicht weiter, weil ich bei den Componenten scheitere.
Ich poste euch mal den Code.
Java:
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.*;
import javax.swing.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Inventar extends JPanel implements MouseListener,
MouseMotionListener {
private int objectX = 186;
private int objectY = 5;
private int objectSize = 60;
private Image image;
private boolean objectDragging = false;
private int objectDraggingOffsetX = 0;
private int objectDraggingOffsetY = 0;
public Inventar() {
super();
this.addMouseListener(this);
this.addMouseMotionListener(this);
}
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
this.image = image;
image = Toolkit.getDefaultToolkit().getImage("../RPG_Game/Inventar.jpg");
repaint();
if (objectDragging) {
g.fillRect(objectX, objectY, objectSize, objectSize);
} else {
g.fillRect(objectX, objectY, objectSize, objectSize);
}
}
@Override
public void mouseReleased(MouseEvent arg0) {
objectDragging = false;
repaint();
}
@Override
public void mousePressed(MouseEvent arg0) {
int mouseX = arg0.getX();
int mouseY = arg0.getY();
// Ist der Mausklick auf dem Objekt?
if (mouseX >= objectX && mouseX <= objectX + objectSize
&& mouseY >= objectY && mouseY <= objectY + objectSize) {
objectDragging = true;
objectDraggingOffsetX = mouseX - objectX;
objectDraggingOffsetY = mouseY - objectY;
repaint();
}
}
@Override
public void mouseExited(MouseEvent arg0) {
}
@Override
public void mouseEntered(MouseEvent arg0) {
}
@Override
public void mouseClicked(MouseEvent arg0) {
}
@Override
public void mouseDragged(MouseEvent arg0) {
if (objectDragging) {
objectX = arg0.getX() - objectDraggingOffsetX;
objectY = arg0.getY() - objectDraggingOffsetY;
repaint();
}
}
@Override
public void mouseMoved(MouseEvent arg0) {
}
}
Mein Problem ist einfach, dass ich mehrere Objekte wie
[g.fillRect(objectX, objectY, objectSize, objectSize);]
erstellen möchte, die ich einzelnt bewegen und setzen kann.
Wenn ich mehrere Objekte erzeuge bewegen sich alle gleichzeitig.
Wenn ich versuche in dem
Java:
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
this.image = image;
image = Toolkit.getDefaultToolkit().getImage("../RPG_Game/Inventar.jpg");
repaint();
if (objectDragging) {
g.fillRect(objectX, objectY, objectSize, objectSize);
} else {
g.fillRect(objectX, objectY, objectSize, objectSize);
}
}
erzeugt er keine Componenten mehr.
Wie kann ich also mehrere Componenten erzeugen, die sich einzelnt bewegen und setzen lassen?
Danke schonmal im worraus und entschuldige meine Unkenntnisse. Ich programmiere noch nicht sehr lange und habe es hauptsächlich 2 Jahre in meinem Fachabitur in It-Technik gelernt und möchte
gerne Anwendungsentwickler werden, wofür ich mich dieses Jahr bewerbe.
Hochachtungsvoll,
Christopher T.