私はグリッドに物事をスナップしようとしています。グリッドにJavaスナップ
int finalCalcX = (mouseX/Handler.gridSpace32) * Handler.gridSpace32;
int finalCalcY = (mouseY/Handler.gridSpace32) * Handler.gridSpace32;
変数名が自分自身のために話すと思う:
これは私がスクリーン自体にスナップする方法です。 マウス座標を32x32ピクセルのタイルで割ったもので、再びグリッドにスナップする機能を得るための時間です。
これは画面上でうまく動作しますが、「マップ」自体に追加したいときは、マップxとyのオフセットを追加するだけではうんざりしてしまいます。
私は約2日間それを使って遊んだし、マップ自体にもスナップするようにしましたが、私は両方の軸上のマップの途中でmouseXとmouseYがグリッドを乱していますものアップ。 私は説明するのは難しいですが、0、0(すべての原点の位置、画面さえも)からのオフセットは、原点から離れるときにオフセットを加え、カーソル自体と私がテストに使用している透明なスナップツーグリッドタイル。 基本的に、マップ原点とカメラの間のオフセットは、何らかの理由でカーソルと透明タイルの間の同じオフセットになります。したがって、マップに移動するにつれて、タイルがカーソルから離れ、最終的に画面の幅と高さの外に移動します。 さらに地図に移動すると、どこにいても私はどこにいても変わらない。
for (int y = startY; y < endY; y++) {
for (int x = startX; x < endX; x++) {
gridSpace(graphics, (int) (x * Handler.gridSpace32 - handler.getCamera().getOffsetX()),
(int) (y * Handler.gridSpace32 - handler.getCamera().getOffsetY()));
checkHighlight(graphics);
}
}
gridSpaceグリッド自体である:
方法をレンダリング。私のひどい説明スキルの
がint finalCalcX = (mouseX/Handler.gridSpace32) * Handler.gridSpace32;
int finalCalcY = (mouseY/Handler.gridSpace32) * Handler.gridSpace32;
graphics.setColor(new Color(100, 200, 100, 3));
graphics.fillRect(finalCalcX, finalCalcY, Handler.gridSpace32, Handler.gridSpace32);
申し訳ありませんが、それは私ができる最善だ: はここで、現時点ではハイライトには何があります。 私は何が間違っていますか?
レンダリング方法を投稿 –
完了、更新されました。 – Vauxe