Sto cercando di far partire un animazione su delle immagini ogni immagine ha un hitbox ovvero un oggetto Rectangle che lo definisce. il problema sta nel fatto che quando verifico se il cursore si trova all'interno dell'hitbox mi ritorna sempre false.
ecco il codice:
questa è la mia classe MouseInput e il metodo dove parte l'evento
@Override
public void mouseEntered(MouseEvent e) {
switch (Gamestate.state) {
case CARICAMENTO:
break;
case PLAYING:
this.panel.getGame().getGioco().mouseEntered(e);
break;
case VINCITA:
break;
case PERDITA:
break;
default:
System.exit(0);
break;
}
}
questo evento va a chiamare mouseEntered dall'oggetto gioco
questo è il metodo chiamato:
public void mouseEntered(MouseEvent e) {
for(int i : this.allFish.keySet()) {
if(isIn(e, this.allFish.get(i))) {
this.allFish.get(i).mouseEntered(e);
}
}
}
e inoltre questo è il metodo isIn
public boolean isIn(MouseEvent e, TypeBet c) {
return c.getBounds().contains(e.getX(), e.getY());
}
public boolean isIn(MouseEvent e, Fish c) {
return c.getBounds().contains(e.getX(), e.getY());
}
pero mentre per Typebet funziona alla perfezione per Fish non funziona, ho controllato l'hitbox di Fish e si trova con le coordinate esatte e dimensioni dell'immagine ma isIn ritorna sempre false.
come mai per Typebet funziona alla perfezione e per Fish no? perche per TypeBet il metodo è uguale solo che viene ciclata un'altra HashMap di TypeBet.
se vi servono altre informazioni per aiutarmi a capire ditemelo che ve le mando.