我試圖讓一個矩形從固定的位置移動到我的遊戲中的點擊點。我已經開始使用鼠標監聽器類中的e.getX和e.getY方法獲得良好的座標。我也有通過增加和減少位置X和Y值直線移動到一邊或上下的矩形,但我需要一種方法將其移動到任何點,我點擊,基本上我需要設置在X和y。我想的方法是從點擊點和起始點計算線的上升和下降,然後將x和y值設置爲上升和下降。如果我這樣做,我需要一種方法來減少上升和運行的價值下降到最低的條件,所以它流動性。或者,如果有一種方式我沒有想到,你可以提供任何有幫助的指導。試圖將一個對象從一個固定的起點移動到一個鼠標的座標點擊
回答
你現在怎麼畫?下面是我用來在一個小遊戲中拍攝子彈的方法,這個小遊戲是我製作/真的應該在某個時候完成的。
這絕不是你需要的所有代碼,在某些地方有更好的方法來做事情(我相信人們會在評論部分後開始告訴我:)),但它應該給你一個工作的基礎。
有一件事從這個缺失調整重新繪製速度(fps),抱歉,但我不記得現在這樣做的簡單方法(需要回到我的實際工作!)希望它幫助。
它的準系統將會是這樣的:
//these set out the current position of your rectangle
double recX, reYy, recH, recW;
//this gives something to manage speed
int speed;
public void paintComponent(Graphics g) {
g.drawRectangle(recX,rexY,recH,recW);
}
//here we work out the movement
public void clickedScreen(double x, double y){
double newX = x;
double newY = y;
//calculate the speed to move at
vX = newX - recX;
vY = newY - recY;
//get the distance
length = Math.sqrt((v1*v1)+(v2*v2));
//make it a unit vector
v1 = v1/length;
v2 = v2/length;
}
public moveRec(){
recX = recX+(v1*speed);
recY = recY+(v2*speed);
}
while(true) {
moveRec();
repaint();
}
您可以使用'Thread.sleep'來控制動畫的速度。我在Swing中使用這種方法遇到了一些麻煩,因爲它暫停了事件調度線程。爲了克服這個問題,你可能必須使用'SwingWorker'。但可能有更好的方法來控制速度,我只是不知道... – BitFiber
是的,可以工作,或變得凌亂!我有一個循環,我從一個Java遊戲書籍中得到了很好的效果,但它只有在你期望不斷的動畫時才真正有用。 –
謝謝大家。這給了我一個很好的起點。我真的很感激它:-) – user519670
- 1. 移動鼠標一個圓圈點擊
- 2. 又一次:點擊移動圖像後獲取鼠標座標
- 3. 如何移動到另一個視圖上點擊鼠標
- 4. 一個點相對於一個參考座標系的座標
- 5. 在Swift中將註釋從一個座標點移動到另一個座標點
- 6. 讓一個gameobject移動到另一個被鼠標點擊選中的gameobject?
- 7. 有一個固定的div抓住鼠標點擊?
- 8. 隨着鼠標移動一個對象
- 9. 如何將2d點從一個座標系映射到另一個座標系
- 10. 的iOS - 轉換點從一個座標系到另一個
- 11. 基於持續時間將對象從一個點移動到另一個點
- 12. 遊戲開發 - 將對象從一個點移動到另一個點
- 13. 阿賈克斯點擊鼠標移動的不同,但有一個點擊
- 14. 如何顯示一個div並將其移動到鼠標的位置點擊
- 15. 如何在點擊3次鼠標後發起一個動作
- 16. 檢測鼠標點擊一個遊戲對象
- 17. C#將一個點從一個屏幕座標變換到另一個屏幕座標
- 18. 如何用swing在一個JAVA中移動一個標籤(圖片)點擊鼠標的位置
- 19. 點擊一個一個移動數組
- 20. 將視圖從一個座標移動到另一個座標的正確方法是什麼?
- 21. 使對象從一個點移動到另一個自定義的速度
- 22. 讓精靈一步一步移動到鼠標點擊位置
- 23. Highcharts - 旋轉餅圖將點擊的部分對齊到一個固定點(180°)
- 24. CodedUi:鼠標點擊座標
- 25. 轉換點到另一個座標
- 26. 在另一個div內放置一個div點擊鼠標
- 27. 如何將一個點移動到C++的另一個點上?
- 28. 轉換點座標到一個新的座標系
- 29. 如何畫一條線,從第一個鼠標點擊到第二個,用easel.js
- 30. 如何將位圖從一個座標移動到另一個座標 - Android開發
你說的是旋轉右? –
是的,我很抱歉,應該指定 – user519670
正確,我希望它以固定的速度從起點移動到點擊點。 – user519670