2015-10-25 27 views
0

標題說明了這一切,在我的Slick2D狀態中,我正在跟蹤MouseX和MouseY座標,並且我希望X位於8 < MouseX < 944與Y之間 MouseY < 573.以下是代碼關心位(如果需要的話...):如何聲明具有最小值和最大值的Int?

int xpos = Mouse.getX(); 
int ypos = Mouse.getY(); 
+1

我dont't得到你的問題,你到底要什麼 –

+0

你是說你想MouseX'的'價值觀和'MouseY'是在這些範圍內,或者鼠標光標本身被限制在這些範圍內(即你不能將光標移動到矩形外)? –

回答

1

這裏有一個解決方案:

int xpos = Math.max(Math.min(Mouse.getX(), 944), 8); 
int ypos = Math.max(Math.min(Mouse.getY(), 573), 8); 
+0

謝謝,這個作品! – MrGreenJam

0

你必須使用一個Setter來實現這一目標:

public void setXPos (int x){ 
    if (x < 8){ 
     this.xPos = 8; 
    } else if (x > 944){ 
     this.xPos = 944; 
    } else { 
     this.xPos = x; 
    } 
} 
+0

感謝您非常快速的回答,在試圖在我的代碼中實現這個之後,java似乎拒絕了'public void setXPos(int x)'告訴我'void是一個無效類型的變量setXPos',但是在我取出無效,更多的錯誤到達告訴我刪除'int'並添加';'來完成變量聲明。 (對不起,如果我做這個非常錯誤,坦率地說,我從來沒有真正使用過setters和getters)。 – MrGreenJam

+0

也許你應該發佈整個代碼。 –

0

intInteger都無法將VALU綁定e到一個範圍。你需要自己編程這個邏輯。

你應該如何以及在哪裏實現邏輯取決於你試圖達到的目標。