setOnMouseMoved между конкретными х - PullRequest
0 голосов
/ 30 апреля 2018

Я делаю игру Breakout и хочу двигать ею весло, следуя моим движениям мыши. Когда мышь покидает мой AnchorPane с именем windowPane, весло тоже наполовину исчезло. Я хотел бы попросить помощи: как заставить весло больше не следовать за мышью, когда я достигаю границ своей панели?

windowPane.setOnMouseMoved(new EventHandler<MouseEvent>() {

    @Override
    public void handle(MouseEvent event) {

        /**move Paddle with mouse *@author Can @author SziSzi */

        paddle.setLayoutX(event.getY());
        paddle.setLayoutX(event.getX()- paddle.getWidth()/2);

    }
});

1 Ответ

0 голосов
/ 30 апреля 2018

Проверьте, не нарушит ли положение весло границы панели:

double h = paddle.getHeight();
double pW = paddle.getWidth() / 2;

double x = event.getX();
double y = event.getY();

if (x >= pW && x + pW <= windowPane.getWidth() && y + h <= windowPane.getHeight()) {
    paddle.setLayoutY(y);
    paddle.setLayoutX(x - pW);
} // otherwise ignore the event
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...