我想實現一個函數,其中一個對象跟隨C++中的移動對象。任何提示如何做到這一點對我都有很大的幫助。跟在對象後面的對象
回答
這出色的狀態後,我從它引用:
球員的位置點1。敵人的位置是point2。首先 你需要找到x1和x2以及y1和y2之間的差別, (我會稱這些xd和yd)。然後,通過執行theta = atan(yd/xd),您可以得到兩個點之間的角度。現在,您應該能夠通過使用角度和想要傳播的距離(其中x3 =(d)(cos(theta))和y3 = 獲得新的x和y(我將稱爲x3和y3) (d)(SIN(THETA))。將敵人移至(x3,y3)。
d是敵人每次更新移動的速度。你可能不得不用 的符號弄明白方向(即如果敵人在 移動正確的x方向但錯誤的y方向然後改變 y的符號)。
尼斯邁克爾,這是我實現的幾乎相同的解決方案,除了我用acos來降低我的變量數量。 ;)謝謝,我會評價這是最好的答案。 – 2011-12-29 00:05:11
這假定玩家靜止。此外,這一切都是不必要的。艾薩克法伊夫描述了正確的計算。 – 2011-12-29 01:39:18
這真的取決於運動應該如何發生。得到一個共同的答案是不可能的。對於具有固定節點的地圖(或像網格那樣的簡單象棋板),使用A *等尋路算法。
對於開放/自由移動,您很可能想將目標(或其運動向量)轉向目標,然後加速/減速它。
但沒有進一步的細節,它是不可能給任何完美的答案。
感謝您的回覆,馬里奧。至於我Q.的關注,我實現了自由移動,沒有向量,xy定位移動。這個場景的任何提示? – 2011-12-28 23:26:18
只需使用X和Y,這是一個非常簡單的向量問題。
對方向使用單位矢量。乘以一個標量的距離,你希望跟隨者在一個單位時間內行進。這會給你你新的相對位置。單位矢量應該指向從追隨者到領導者的方向。
- 1. 在Storyboard中移動其他對象後面的對象
- 2. 跟蹤firstResponder對象
- 3. 畫布對象始終繪製在其他對象後面
- 4. 獲得對象的名稱,後面跟兩次關係(2x has_many)
- 5. 託管在對象後面的DirectX9 Drawtext
- 6. InvalidPipeArgument:'[對象對象],[對象對象],[對象對象],[對象對象],[對象對象],[對象對象],
- 7. 跟蹤深度的對象
- 8. OpenCV中的對象跟蹤
- 9. 根據對象的位置將對象排在前面或後面
- 10. 新對象驗證後的無對象
- 11. 在對象後面翻譯動畫
- 12. 通過OpenCV跟蹤對象
- 13. 保持跟蹤MKAnnotationView對象
- 14. 跟蹤對象和引用
- 15. Hibernate會話跟蹤對象
- 16. THREE.js跟蹤模型(對象)
- 17. 使對象跟隨鼠標
- 18. 數據庫對象跟蹤
- 19. 使用javaCV跟蹤對象
- 20. 跟蹤視頻對象
- 21. 跟蹤assinged對象分配
- 22. 對象檢測/跟蹤
- 23. 跟蹤在Ruby中創建的對象
- 24. 在PHP的面向對象
- 25. 面向對象,對象概念
- 26. 面向對象練習「空」對象
- 27. 使用面向對象的Python對象進行面向對象或精化
- 28. 如何獲取對象的歷史記錄或跟蹤對象
- 29. Vanilla JS:如何跟蹤另一個對象的對象屬性?
- 30. 在javascript對象後面隱藏(?)後面的文字
這很含糊,你想詳細說明一下嗎? – AusCBloke 2011-12-28 23:12:10
對象,如在OOP中?或對象在屏幕上的一個圓圈?還是其他什麼東西? – 2011-12-28 23:12:22
你必須提供更多信息。什麼對象,通過相機物理?聽起來像你在錯誤的論壇... – 2011-12-28 23:13:18