2014-11-25 94 views
0

這可能很簡單,但我找不到我需要的搜索引擎...(這就像他們曾經更好地知道我在找什麼)公式遊戲xy到圖像(像素)xy

我需要將遊戲中的座標轉換爲圖像上的「座標」,以便我可以添加......在圖像上表示像素以表示遊戲內座標的位置。

該圖像是一張地圖,大小爲2384x2044(寬x高)。 遊戲中的0,0 =遊戲中的地圖中間,這也是圖像的中間部分。 因此,很容易找到xy在圖像中間打印像素: 2384:2 = 1192和2044:2 = 1022,因此圖像中0,0遊戲中的xy爲1192,1022。例如,如果我向上移動並略微向左側遊戲中座標變成:-141.56,1108.11 - 如何計算圖像的正確xy?

圖像:http://i.imgur.com/yfiwfO7.png?1

+0

我認爲你只需要抵消它們並對它們進行縮放。圖像是你的整個遊戲場?遊戲座標有多大?例如如果說它在y軸上是-10000.0到+10000.0遊戲座標,並且圖像是2044高,那麼你需要計算'1022 +(game_y * 1022/10000.0)'。 – Rup 2014-11-25 10:45:54

+0

圖像是整個遊戲場是的,遊戲中的總數在x和y軸都會在-3000到+3000左右。請注意如果我向上移動遊戲內座標的Y值,而圖像的Y值需要減小。 – Santy 2014-11-25 10:55:29

回答

0

總括來說,要-3000遊戲座標擴展到兩個軸+3000和偏移他們他們居中在圖像上;在這種情況下,你想要的計算是

pixel_x = 1192 + (game_x * 1192/3000.0) 
pixel_y = 1022 - (game_y * 1022/3000.0) 

請注意y線上的減號以反轉偏移的方向。你的遊戲座標是浮點數,所以我通過增加一個.0來做出3000s的浮點數 - 你沒有說你在用什麼語言,所以這可能是也可能不是正確的語法。

但是你可能應該避免把常量放到這裏,以防你想改變遊戲區域或圖像的大小。這將是更好的

  • 設置常量,在程序的球場尺寸
  • 設置常量或全局變量的圖像的大小:您可以從圖像加載它
  • 閱讀
  • 預先計算值1192/3000.0和1022/3000.0(但使用圖像常量)爲每個比例保存一個浮點運算?儘管現在可能不值得它作爲速度優化,並且在尾數末尾可能會犧牲一點浮點精度,但在這裏並不重要。
+0

是的,就是這樣!準確性對我的需求來說相當好。很多。 – Santy 2014-11-25 11:52:04