Guten Abend Nachtschwärmer
Ich baue mir gerade ein kleines RTS zusammen, dabei benutze ich
um Einheiten aus zu wählen.
Meine Einheiten erben von Rectangle2D.Double und das ganze sieht wie folgt aus:
Jetzt bin ich immer davon ausgegangen, dass getPoint() die Spitze des Coursers ist... oder zu mindestens der obere Bereich aber ich habe mich da wohl getäuscht. Der Bereich, ab dem
anfängt zu reagieren liegt ungefähr bei einem Bereich, der um die Hälfte des Rectangle2D nach oben verschoben wurde. (Rectangle2D - (Rectangle2D / 2)) <-- jeweils in der X sowie der Y Achse.
Woher kommt das?
Kann ich außer gegenrechnen etwas machen?
Oder liegt es vielleicht am Code?
Prinzipiell habe ich meine Programm auf der Grundlage von dem Wirklich guten Tutorial von Quaxli entwickelt.
Ich bin für jeden Tipp dankbar
Grüße Skanky
Ich baue mir gerade ein kleines RTS zusammen, dabei benutze ich
Code:
MouseEvent.getPoint()
Meine Einheiten erben von Rectangle2D.Double und das ganze sieht wie folgt aus:
Java:
@Override
public void mouseMoved(MouseEvent e) {
for (Iterator<Sprite> it = actors.iterator(); it.hasNext();) {
Sprite r = it.next();
if (r instanceof Unit) {
Unit unit = (Unit) r;
if (unit.contains(e.getPoint())) {
unit.setMouseOver(true);
break;
} else {
unit.setMouseOver(false);
}
}
}
}
}
Jetzt bin ich immer davon ausgegangen, dass getPoint() die Spitze des Coursers ist... oder zu mindestens der obere Bereich aber ich habe mich da wohl getäuscht. Der Bereich, ab dem
Code:
unit.contains(e.getPoint())
Woher kommt das?
Kann ich außer gegenrechnen etwas machen?
Oder liegt es vielleicht am Code?
Prinzipiell habe ich meine Programm auf der Grundlage von dem Wirklich guten Tutorial von Quaxli entwickelt.
Ich bin für jeden Tipp dankbar
Grüße Skanky