標題說明了這一切,在我的Slick2D狀態中,我正在跟蹤MouseX和MouseY座標,並且我希望X位於8 < MouseX < 944與Y之間 MouseY < 573.以下是代碼關心位(如果需要的話...):如何聲明具有最小值和最大值的Int?
int xpos = Mouse.getX();
int ypos = Mouse.getY();
標題說明了這一切,在我的Slick2D狀態中,我正在跟蹤MouseX和MouseY座標,並且我希望X位於8 < MouseX < 944與Y之間 MouseY < 573.以下是代碼關心位(如果需要的話...):如何聲明具有最小值和最大值的Int?
int xpos = Mouse.getX();
int ypos = Mouse.getY();
這裏有一個解決方案:
int xpos = Math.max(Math.min(Mouse.getX(), 944), 8);
int ypos = Math.max(Math.min(Mouse.getY(), 573), 8);
謝謝,這個作品! – MrGreenJam
你必須使用一個Setter
來實現這一目標:
public void setXPos (int x){
if (x < 8){
this.xPos = 8;
} else if (x > 944){
this.xPos = 944;
} else {
this.xPos = x;
}
}
感謝您非常快速的回答,在試圖在我的代碼中實現這個之後,java似乎拒絕了'public void setXPos(int x)'告訴我'void是一個無效類型的變量setXPos',但是在我取出無效,更多的錯誤到達告訴我刪除'int'並添加';'來完成變量聲明。 (對不起,如果我做這個非常錯誤,坦率地說,我從來沒有真正使用過setters和getters)。 – MrGreenJam
也許你應該發佈整個代碼。 –
int
和Integer
都無法將VALU綁定e到一個範圍。你需要自己編程這個邏輯。
你應該如何以及在哪裏實現邏輯取決於你試圖達到的目標。
我dont't得到你的問題,你到底要什麼 –
你是說你想MouseX'的'價值觀和'MouseY'是在這些範圍內,或者鼠標光標本身被限制在這些範圍內(即你不能將光標移動到矩形外)? –