Написать своё событие вместо функции

Пишу танчики на JavaFX. Цикл сверяет на пересечение узлов препятствий и танка по Y-координате. Суть в том, что нужно написать собственное событие столкновения объектов танка и препятствий вместо используемой функции (intersects).

     for (GameObject platform : PlayField.platforms) { 
                if (getImage().getBoundsInParent().intersects(platform.getImage().getBoundsInParent()))
                    if (moveDown) {
                        if (imageView.getTranslateY() + (PlayField.BRICK_SIZE - 14) == platform.getImage().getTranslateY()) {
                            imageView.setTranslateY(imageView.getTranslateY() - 1);
                            return;
                        }
                    } else {
                        if (imageView.getTranslateY() == (PlayField.BRICK_SIZE) + platform.getImage().getTranslateY()) {
                            imageView.setTranslateY(imageView.getTranslateY() + 1);
                            return;
                        }
                    }
                }

Сложность в том, что не знаю как. Попробовал сделать пустой класс и интерфейс.

interface EventCollisionListener  {
    void eventListener (EventCollision e);
}

public class EventCollision  {
 
    public final void addEventCollisionListener(EventCollisionListener listener){

    }
}

Конечный код должен выглядеть как-то так, но тут отсутствует проверка на пересечение узлов препятствий и танка


for (GameObject platform: PlayField.platforms) {
              EventCollision eventCollision = new EventCollision();
              eventCollision.addEventCollisionListener(new EventCollisionListener() {
                  @Override
                  public void eventListener(EventCollision e) {
                      if (moveRight) {
                          if (imageView.getTranslateX() + (PlayField.BRICK_SIZE - 14) == platform.getImage().getTranslateX()) {
                              imageView.setTranslateX(imageView.getTranslateX() - 1);
                              return;
                          }
                      } else {
                          if (imageView.getTranslateX() == (PlayField.BRICK_SIZE) + platform.getImage().getTranslateX()) {
                              imageView.setTranslateX(imageView.getTranslateX() + 1);
                              return;
                          }
                      }
                  }
              });
              }

Ответы (0 шт):