2009-10-19 51 views
3

我正面臨一個在遊戲設計中可能非常普遍的問題。2D世界設計問題

  1. 讓我們假設我們有一個2D世界
  2. 世界上尺寸爲M×N的矩形
  3. 世界可能包含在它
  4. 的項目有(X,Y)COORDS一些項目
  5. 世界可以通過物理(mxn)大的窗口瀏覽。
  6. 瀏覽器窗口可以放大/縮小
  7. 瀏覽器窗口可以向上/向下+向左平移,而在世界範圍內的範圍內。

我應該如何去實施?我特別關注瀏覽器窗口。任何人都可以推薦任何好的內容

這不是一項家庭作業 - 它更多的是我自己完成的任務。

+0

你的意思是瀏覽器爲網頁瀏覽器嗎? 此外,我認爲5中的mxn與2中的MxN不同。 – Tordek 2009-10-19 19:18:36

+1

這是一個web應用程序嗎?這個問題並不清楚。 – 2009-10-19 19:21:03

+0

它是否是一個網絡應用程序是無關緊要的。我試圖專注於問題本身,而不是部署方法:) – Maciek 2009-10-19 20:07:33

回答

0

你也許能夠脫離dhtml,但是flash或silverlight會更容易實現這樣的事情。

看看google maps背後的代碼,獲取一些靈感。他們正在做類似於你想要的純HTML的東西。

+0

讓我們假設我是html受損的,說實話我討厭diggin,雖然它大聲笑 – Maciek 2009-10-19 19:28:16

1

實現它就像你實現谷歌地圖的特殊標記。

+1

和我將如何實施谷歌地圖?大聲笑 – Maciek 2009-10-19 19:30:11

+2

那麼,你有一個div('position:relative'),裏面有一堆世界貼圖('position:absolute')。那些相對於你的角色在世界上的位置得到移動。當用戶的視口超出當前加載圖塊集合的範圍時,您將添加更多圖塊(並在它們隱藏時刪除圖塊)。你的世界地圖是一個圖層('z-index:1'),你的敵人在另一圖層('z-index:2'),你的角色在另一圖層('z-index:3')。根據您的遊戲邏輯,每個圖塊都會移動('position:absolute; top:39px; left:107px')。 – 2009-10-20 02:25:54

1

基本上你將一個區域的矩形子集映射到另一個矩形,即。瀏覽器窗口。這實際上只是2個操作 - 翻譯之一,將查看區域定位在世界範圍內,然後進行縮放,以便將該任意可視區域縮放到窗口。與此不同的是放大和縮小的問題,這實質上是修改了查看區域的大小。

在遊戲開發中有幾種方法可以解決這個問題。通常,您可以自定義視圖投影以根據需要顯示儘可能多的世界(即,從世界座標轉換爲查看座標,通常是正交投影),並簡單地翻譯世界或視圖以放置視域,使其成爲指向你想看到的東西。如果您已正確設置對象的位置,3D硬件將繪製您所期望的內容。