Für ein kleines Spiel muss ich Maus und Tastatur Signale abfangen( Ist ja klar).
Da ich es aber leid bin in meine Programme immer die ganzen Methoden der Interfaces zu implementieren.ueh: Habe ich daran gedacht alle Methoden in eine Klasse zu Kapseln.
Code:
Jetzt kommt aber das Problem:
Ich weiß nicht wie ich überprüfen soll ob ein Knopf released wurde.
Wenn das Hilft in meinem Gameloop warte ich 20 MilliSekunden vor dem nächsten durchlauf.
Da ich es aber leid bin in meine Programme immer die ganzen Methoden der Interfaces zu implementieren.ueh: Habe ich daran gedacht alle Methoden in eine Klasse zu Kapseln.
Code:
Java:
public final class Mouse extends MouseInputAdapter{
private static final long serialVersionUID=1L;
private int x;
private int y;
private int oldX;
private int oldY;
private boolean dragged;
private boolean rightButton;
private boolean middleButton;
private boolean leftButton;
public Mouse(){
init();
}
public void init(){
setX(0);
setY(0);
oldX=x;
oldY=y;
dragged=false;
rightButton=false;
middleButton=false;
leftButton=false;
}
public void mousePressed(MouseEvent e) {
if(e.getButton()==1)
leftButton=true;
if(e.getButton()==2)
middleButton=true;
if(e.getButton()==3)
rightButton=true;
updateCoord(e);
}
public void mouseReleased(MouseEvent e) {
if(e.getButton()==1){
leftButton=false;
}
if(e.getButton()==2){
middleButton=false;
}
if(e.getButton()==3){
rightButton=false;
}
updateCoord(e);
dragged=false;
}
public void mouseDragged(MouseEvent e) {
updateCoord(e);
dragged=true;
}
public void mouseMoved(MouseEvent e) {
updateCoord(e);
dragged=false;
}
private void updateCoord(MouseEvent e){
oldX=x;
oldY=y;
setX(e.getX());
setY(e.getY());
}
public int getX(){
return x;
}
private void setX(int x){
this.x=x;
}
public int getY(){
return y;
}
private void setY(int y){
this.y=y;
}
public Point2D.Float getLocation(){
return new Point2D.Float(getX(),getY());
}
public boolean wasMoved(){
if(oldX!=x||oldY!=y){
oldX=x;
oldY=y;
return true;
}
return false;
}
public boolean isDragged(){
return dragged;
}
public boolean isRightButtonPressed(){
return rightButton;
}
public boolean isMiddleButtonPressed(){
return middleButton;
}
public boolean isLeftButtonPressed(){
return leftButton;
}
}
//Hilfe aus ApoCommand
Jetzt kommt aber das Problem:
Ich weiß nicht wie ich überprüfen soll ob ein Knopf released wurde.
Wenn das Hilft in meinem Gameloop warte ich 20 MilliSekunden vor dem nächsten durchlauf.