Изображение (здесь узел с именем hero
) перемещается в соответствии с нажатой клавишей KEY. Но используется метод с именем getBoundsInLocal()
. Я не могу понять цель этого метода. Помогает ли это получить ширину и высоту изображения?javaFX- что такое getBoundsInLocal(), метод getBoundsInParent()?
private void moveHeroBy(int dx, int dy) {
if (dx == 0 && dy == 0) return;
final double cx = hero.getBoundsInLocal().getWidth()/2;
final double cy = hero.getBoundsInLocal().getHeight()/2;
double x = cx + hero.getLayoutX() + dx;
double y = cy + hero.getLayoutY() + dy;
moveHeroTo(x, y);
}
private void moveHeroTo(double x, double y) {
final double cx = hero.getBoundsInLocal().getWidth()/2;
final double cy = hero.getBoundsInLocal().getHeight()/2;
if (x - cx >= 0 &&
x + cx <= W &&
y - cy >= 0 &&
y + cy <= H) {
hero.relocate(x - cx, y - cy);
}
}
Этот метод вызывается с помощью AnimationTimer
по этому пути:
AnimationTimer timer = new AnimationTimer() {
@Override
public void handle(long now) {
int dx = 0, dy = 0;
if (goNorth) dy -= 1;
if (goSouth) dy += 1;
if (goEast) dx += 1;
if (goWest) dx -= 1;
if (running) { dx *= 3; dy *= 3; }
moveHeroBy(dx, dy);
}
};
timer.start();
Я нашел подобный метод с именем getBoundsInParent(). что делают эти два метода & В чем отличия?
Итак, для образа, который преобразующей я должен использовать getBoundsInLocal() в противном случае окно просмотра будет делать работу? –