2014-12-03 84 views
0

我是libGdx的初學者。在棋盤遊戲上放置石塊/瓷磚

我正在構建一個棋盤遊戲(Fanorama遊戲)。我想用圖片作爲電路板,並將電路板上的部件放置在電路板精靈的頂部。是否有一種很好的方法可以預先確定板上精靈的(x,y)座標位置對於放置棋子有效。之後,當遊戲正在玩時,我想將棋子從一個位置移動到另一個位置。

現在,我能想到的唯一方法就是計算每塊位置的像素座標並將其硬編碼到一個數組中。我不確定是否有更好的方法來做到這一點,以及我學習的最佳實踐方式。我也擔心這是否會在用戶調整屏幕大小或使用不同大小的設備(手機)時受到影響。

請讓我知道你將如何解決這個問題。

在此先感謝您的幫助。

+0

你可能想嘗試http://gamedev.stackexchange.com/ – jwd 2014-12-03 21:27:22

回答

0

現在,我能想到的唯一方法就是計算每一塊位置的像素座標並將其硬編碼到一個數組中。

是的,這是免費模板的唯一途徑。如果棋子在棋盤邊緣移動,你可以使用一些數學運算。

我也擔心這是否會影響用戶調整屏幕大小或使用不同大小的設備。

是的。基本上你要做的是:

  • 確定圖像的顯示大小。
  • 確定顯示的大小和實際大小之間的比率。對於縮小的顯示圖像,這通常小於1.0。
  • 根據比率計算新件的位置像素座標。例如,如果一個片段的位置是(10,10),比率是0.9,那麼新片段的位置是(9,9)。基本上,將像素座標乘以比例。

祝你好運。

+0

謝謝你這麼快回答。 要確認,我會在ApplicationListener的resize()方法中執行此操作嗎?然後渲染方法應該使用新值來放置項目。 – user3024231 2014-12-03 22:28:25

+0

@ user3024231:是的,你有正確的方法。對於像遊戲這樣複雜的事情,一定要[分開你的模型,視圖和控制器](http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)。先創建模型,然後創建視圖。董事會地點將成爲模型的一部分。 – 2014-12-03 22:33:42