2016-04-10 11 views
0

まず、私のコードは含まれないと言いたいのは、関連するコードが多くの関数やファイルに広まっているからです。私は何かが間違っていたかどうかを尋ねるだけです、そうでなければ、あなたは無限のコードであなたに疲れません。Javafx GridPane子アライメント

私はJavaとJavaFXを使ってゲームを作成しようとしています。私はStackPaneに積み重ねられた、異なるグラフィックスを含む複数のGridPaneオブジェクトを作成しました(現在はすべてのプレースホルダです)。 1つのGridPaneには、シャドウオブジェクトが含まれています。シャドウオブジェクトは、不透明度の低い黒い四角形で、実際の環境に配置されています。関数は、四角形を網掛けするかどうかを決定し、次にGridPaneのその場所に黒い四角形のインスタンスを追加します。

次の画像のようにすべて正常に動作していますが、GridPaneはそれ自身の領域に分割されています。 垂直または水平25マスごとに、GridPaneは空白のピクセル行を追加し、その他のものをすべて、またはその両方にオフセットしているようです。

パディングがすべて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); 
     } 
    } 
} 

shadow error1

shadow error2

+0

実際には問題はありませんが、別の 'ImageView'に同じ画像ファイルを使用すると、そのデータを単一の' Image'インスタンスにロードして 'ImageView'のデータとして使用する必要があります。 (しかし、この場合は 'Rectangle'sでも十分です。) – fabian

+0

いいキャッチ、ありがとう! – Sotos

+0

シャドウグリッドが一定の割合のスクリーンを包み込むと、シャドウグリッドがカットされているようです。私はまだこれが起こっているのかどうか分かりません。助け、誰ですか? – Sotos

答えて

0

(これは、長年の懸案であるかもしれないが、私は解決策を見つけました私は同じ問題があったので)。

つまり、あなたが呼び出す必要があります:

GridPane.setHalignment(objectYouWantToCenter, HPos.CENTER); 

を、あなたのshadowGridにそれを追加する前に。これはshadowGridではなく、オブジェクトGridPaneで呼び出されることに注意してください。

関連する問題