Hallo,
ich stehe wieder vor einem Problem. Diesmal wollte ich, dass in der Gui-class mit einem MouseListener die x- und y-Position des Mausklicks abgefragt wird. Danach sollten diese Werte in die CalcVector-class übergeben werden. Dort wird dann aus den player_x und player_y Werten, die in der main-Class als Parameter an CalcVector übergeben werden, sowie den mousex und mousey Werten, die aus der gui-Class kommen, eben ein Richtungsvektor ausgerechnet werden.
Mein Problem liegt darin, dass die mousex und mousey Position irgendwie nicht an CalcVector weitergegeben werden möchten.
Main:
Gui:
CalcVector:
Ich danke schon einmal für jegliche Art von Hilfe!
ich stehe wieder vor einem Problem. Diesmal wollte ich, dass in der Gui-class mit einem MouseListener die x- und y-Position des Mausklicks abgefragt wird. Danach sollten diese Werte in die CalcVector-class übergeben werden. Dort wird dann aus den player_x und player_y Werten, die in der main-Class als Parameter an CalcVector übergeben werden, sowie den mousex und mousey Werten, die aus der gui-Class kommen, eben ein Richtungsvektor ausgerechnet werden.
Mein Problem liegt darin, dass die mousex und mousey Position irgendwie nicht an CalcVector weitergegeben werden möchten.
Main:
Java:
package m_events;
import javax.swing.JFrame;
public class main {
public static void main(String[] args) {
Gui g = new Gui();
CalcVector cv = new CalcVector();
g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
g.setSize(300, 300);
g.setVisible(true);
while(true){
cv.update(500, 500);
//System.out.println(cv.getVectorX()+" "+cv.getVectorY());
System.out.println(cv.getMouseX()+" "+cv.getMouseY());
System.out.println(g.getMouseX()+" "+g.getMouseY());
try {
Thread.sleep(30);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Gui:
Java:
package m_events;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Gui extends JFrame{
private JPanel mousepanel;
private int m_posx;
private int m_posy;
public Gui(){
super("title");
mousepanel = new JPanel();
mousepanel.setBackground(Color.WHITE);
add(mousepanel, BorderLayout.CENTER);
HandlerClass handler = new HandlerClass();
mousepanel.addMouseListener(handler);
mousepanel.addMouseMotionListener(handler);
}
private class HandlerClass implements MouseListener, MouseMotionListener{
public void mouseClicked(MouseEvent event){
m_posx=event.getX();
m_posy=event.getY();
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
public int getMouseX(){
return m_posx;
}
public int getMouseY(){
return m_posy;
}
}
CalcVector:
Java:
package m_events;
public class CalcVector {
private float playerx;
private float playery;
private int mousex;
private int mousey;
private float vector_x;
private float vector_y;
Gui g = new Gui();
public void update(float px, float py){
mousex=g.getMouseX();
mousey=g.getMouseY();
playerx=px;
playery=py;
// Calculating Vector and speed
vector_x=mousex-playerx;
vector_y=mousey-playery;
}
public float getVectorX(){
return vector_x;
}
public float getVectorY(){
return vector_y;
}
public int getMouseX(){
return mousex;
}
public int getMouseY(){
return mousey;
}
}
Ich danke schon einmal für jegliche Art von Hilfe!