好了,所以我試圖讓事情捕捉到網格我有。Java的網格對齊
這是我捕捉到畫面本身:
int finalCalcX = (mouseX/Handler.gridSpace32) * Handler.gridSpace32;
int finalCalcY = (mouseY/Handler.gridSpace32) * Handler.gridSpace32;
變量名稱說明了一切,我認爲。 鼠標座標除以我的圖塊爲32x32像素,再次獲得抓取到網格功能的次數。
現在這工作正常畫面,但是當我想將它添加到「地圖」本身,我不能只是添加我的地圖x和y偏移到,它就會搞砸。
我已經玩了大約兩天了,我也用它來捕捉到地圖本身,但是當我說,在兩個軸上的地圖中途,mouseX和mouseY都會使網格東西了。 這是一種我很難解釋,但是從0,0偏移量(每起源位置,甚至是屏幕)PLUS,當你從原點搬開地圖偏移,被添加到光標本身和之間的距離透明的單元格對齊網格,我正在使用它來測試。 基本上,地圖原點和相機之間的偏移是由於某種原因光標和透明圖塊之間的偏移量相同。因此,進一步進入地圖我移動,漸行漸遠的瓷磚從遊標獲取,並最終移動屏幕寬度和高度的外部... 當我進一步移動到地圖,我要捕捉到網格功能保持一致,無論我在地圖上的哪個位置。
Render方法:
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