我在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. 將屏幕座標轉換爲座標
- 2. 將點座標轉換爲JavaFX中的屏幕座標?
- 3. Cocos2D iPhone - 屏幕座標x精靈的內部座標
- 4. OpenGL:如何將世界座標轉換爲屏幕座標?
- 5. 將屏幕座標轉換爲模型座標
- 6. 將屏幕座標轉換爲世界座標
- 7. MonoTouch/MonoDroid - 將原始觸摸座標轉換爲屏幕座標
- 8. 如何將頂點座標轉換爲屏幕像素座標?
- 9. 將對象座標轉換爲屏幕座標Android OpenGL ES
- 10. 將屏幕座標轉換爲圖片座標
- 11. 將屏幕座標轉換爲OpenGL座標
- 12. 將屏幕座標轉換爲陣列網格座標
- 13. C++/OpenGL將世界座標轉換爲屏幕(2D)座標
- 14. 如何將Windows屏幕座標轉換爲屏幕截圖像素座標?
- 15. 座標系和精靈轉換
- 16. 在屏幕座標中轉換對象
- 17. 轉換屏幕座標爲世界座標
- 18. 使用投影在Three.js中將世界座標轉換爲屏幕座標
- 19. 在OpenGL ES中,如何將屏幕座標轉換爲世界座標?
- 20. 轉換NSPoint在屏幕座標窗口座標
- 21. 將2D屏幕座標轉換爲C++中的3D空間座標?
- 22. 將座標轉換爲像素座標
- 23. 在Maya Api中將3d點轉換爲2D屏幕座標
- 24. 如何轉換屏幕座標以形成相對座標(winforms)?
- 25. 如何將屏幕鼠標座標轉換爲POINTS結構
- 26. 將十進制經度/緯度座標轉換爲iPad屏幕座標
- 27. QWidget/QPainter邏輯屏幕座標轉換
- 28. 屏幕座標到百分比轉換
- 29. 轉換pdfminer bbox座標到iOS屏幕
- 30. 將座標調查座標轉換爲有效的esri座標
不知道你在問什麼。精靈的位置在屏幕座標中,不是嗎? – 2009-12-16 21:52:15
我想將點擊屏幕上的鼠標點擊到精靈圖像的X/Y(如果點擊在精靈內)。 – 2009-12-16 22:15:42