我在XNA中有一個精靈對象。
它有一個大小,位置和旋轉。
如何將點從屏幕座標轉換爲精靈座標?
謝謝,
SW在XNA中將屏幕座標轉換爲精靈座標
0
A
回答
0
您可能會發現下面的XNA採摘樣品有用:
0
一種解決方案是擊中測試精靈的原始,未旋轉的邊框。 所以給定的2D屏幕矢量(X,Y):
- 翻譯2D矢量入本地精靈空間:(X,Y) - (spritex,spritey)
- 應用逆子畫面旋轉
- 執行打對邊框的測試
當然,通過考慮精靈形狀,命中測試可以更準確。
0
我認爲這可能就像在Rectangle
上使用Contains
方法一樣簡單,矩形就是你的精靈的邊界框。我已經在XNA中以這種方式實現了拖放功能;我相信Contains
測試基於x和y是屏幕座標。
+0
但是邊框是否考慮到了精靈旋轉? – 2009-12-18 07:38:04
3
你需要計算變換矩陣爲你的精靈,反轉是(所以變換現在從世界空間老話 - >本地空間)並通過倒置矩陣變換鼠標位置。
Matrix transform = Matrix.CreateScale(scale) * Matrix.CreateRotationZ(rotation) * Matrix.CreateTranslation(translation);
Matrix inverseTransform = Matrix.Invert(transform);
Vector3 transformedMousePosition = Vector3.Transform(mousePosition, inverseTransform);
相關問題
- 1. Xna將3D座標轉換爲2D屏幕座標
- 2. 將屏幕鼠標座標轉換爲窗口座標
- 3. 將屏幕座標轉換爲libgdx中的相機座標?
- 4. 將點座標轉換爲JavaFX中的屏幕座標?
- 5. Cocos2D iPhone - 屏幕座標x精靈的內部座標
- 6. C++/OpenGL將世界座標轉換爲屏幕(2D)座標
- 7. 將屏幕座標轉換爲圖片座標
- 8. android opengl es 2.0將屏幕座標轉換爲世界座標
- 9. 如何將工作區座標轉換爲屏幕座標?
- 10. 如何將頂點座標轉換爲屏幕像素座標?
- 11. 將Excel工作表座標轉換爲屏幕座標
- 12. 將對象座標轉換爲屏幕座標Android OpenGL ES
- 13. 將屏幕座標轉換爲陣列網格座標
- 14. 將屏幕座標轉換爲模型座標
- 15. OpenGL:如何將世界座標轉換爲屏幕座標?
- 16. MonoTouch/MonoDroid - 將原始觸摸座標轉換爲屏幕座標
- 17. 將屏幕座標轉換爲世界座標
- 18. 將NSTextView座標轉換爲屏幕座標
- 19. 將屏幕座標轉換爲OpenGL座標
- 20. 如何將Windows屏幕座標轉換爲屏幕截圖像素座標?
- 21. 座標系和精靈轉換
- 22. 在屏幕座標中轉換對象
- 23. 轉換屏幕座標爲世界座標
- 24. 使用投影在Three.js中將世界座標轉換爲屏幕座標
- 25. 在OpenGL ES中,如何將屏幕座標轉換爲世界座標?
- 26. 轉換NSPoint在屏幕座標窗口座標
- 27. WPF:在屏幕座標和WPF座標之間轉換
- 28. 將2D屏幕座標轉換爲C++中的3D空間座標?
- 29. 如何將2D屏幕座標轉換爲openGL中的2D地圖座標?
- 30. 如何將世界座標轉換爲OpenGL ES 2.0中的屏幕座標
不知道你在問什麼。精靈的位置在屏幕座標中,不是嗎? – 2009-12-16 21:52:15
我想將點擊屏幕上的鼠標點擊到精靈圖像的X/Y(如果點擊在精靈內)。 – 2009-12-16 22:15:42