Прежде всего я хотел бы сказать, что я не буду включать какой-либо из моего кода, поскольку соответствующий код широко распространен во многих функциях и файлах. Я только прошу узнать, не сделал ли я что-то вопиюще неправильно, иначе я не буду утомлять вас бесконечными строками кода.Javafx GridPane дочернее выравнивание
Я пытаюсь написать игру, используя Java и JavaFX. Я создал несколько объектов GridPane
, содержащих разную графику (теперь все заполнители), все сложенные на StackPane
. Один GridPane
содержит теневые объекты, которые представляют собой черные квадраты с низкой непрозрачностью, лежащие над реальной средой. Функция определяет, должен ли квадрат быть заштрихован или нет, а затем добавляет экземпляр черного квадрата в это место GridPane
.
Хотя все работает нормально, как вы можете видеть на следующих изображениях, GridPane
разбивается на области. Кажется, что каждые 25 квадратов по вертикали или по горизонтали, GridPane
добавляет пустую строку пикселя, компенсируя все остальное в сторону, ниже или и то, и другое.
Я проверил, что все paddings равны 0, и поскольку теневые изображения добавляются целыми значениями, я не могу понять, почему это происходит. Есть идеи?
(В очень короткий фрагмент кода, эта функция добавляет теневые квадраты)
shadowGrid.getChildren().clear();
for (int j=0;j<MAPYSIZE;j++){
for (int i=0;i<MAPXSIZE;i++){
if (isShaded(i,j)){
ImageView shadow=new ImageView(shadowBlock);
shadow.setOpacity(0.5);
shadowGrid.add(shadow,i,j);
}
}
}
Не имеет отношения к проблеме, но если вы используете один и тот же файл изображения для разных 'ImageView', вы должны загрузить данные на один экземпляр «Image» и использовать его в качестве данных для 'ImageView'. (Однако в этом случае 'Rectangle's тоже хватит.) – fabian
Хороший улов, спасибо! – Sotos
Кажется, что сетка тени срезается, если она окутывает определенный процент экрана. Я все еще не понимаю, почему это происходит. Любая помощь, кто-нибудь? – Sotos