2012-07-06 121 views
3

所以製作了地上,我在開始的HTML5/JavaScript的項目,其模擬這種類型的2.5D風格很感興趣: http://superflashbros.net/2009/02/22/blue-rabbits-climate-chaos/HTML5/JavaScript的2.5D - 在其自身平面

我個人努力遠離第三方腳本,並保持純JavaScript代碼的核心。然而,我對trig的瞭解並不是最好的,那麼解決這個問題的最合適的方法是什麼呢?我基本上想要用2D精靈製作的遊戲,但是地面飛機(也許建築物,如在Flash遊戲中)傾斜,以使其具有3D感覺。根據我的理解,我不想製作「模式7」引擎(即像馬里奧卡丁車這樣的SNES遊戲)。

任何建議或資源,我應該看看?

回答

5

我只是要求你閱讀更多關於這方面的內容,只是你知道,我試圖做到這一點,並取得了很好的結果,但由於我的新工作,我停止了這個項目。

無論如何,你可以考慮使用JavaScript編寫的對於初學者一些遊戲引擎,這裏是你可能會發現有趣的著名遊戲引擎的列表:

1- Three.Js

2- GameQuery (JQuery Plugin)

3- Isogenic engine

您還可以檢查這個博客帖子獲取更多信息66+ Open Source JavaScript Game Engine for Serious Developers

注: 我知道你喜歡編寫自己的JavaScript和信任我,這是一個很好習慣,但是我的建議是嘗試至少一個的Javascript遊戲引擎(如果你可以嘗試不止一個這將是很好的),看看不同的引擎是如何工作的,以及它們如何在引擎蓋下運行,我的朋友會激勵你,並幫助你理解這些引擎甚至製造你自己的引擎(這是不可能不是)。

我並不是說你應該儘可能多地嘗試(因爲這將顯然毫無意義),但我告訴你用選擇的引擎做出小的(如果可能的話)遊戲,我的意思是獲得一個關於Javascript遊戲引擎如何在2D中工作的想法,然後轉向使用WebGL技術的2.5D甚至3D。

+0

謝謝你,我一定會看看這些引擎作爲一種形式的靈感。 – clicheName 2012-07-15 10:35:22

2

我查了一下你的參考遊戲,明白你的意思是「2.5D」。根據我的理解,解決此問題的最佳方法是通過變換對象的x,y座標來創建僞三維。你會有一個功能爲你做轉換,這裏是我對一個例子的最好猜測。

// This function takes in a x- and y-coordinates of an object corner and returns the 
// coordinates of the corresponding back corner of an object. 
var transform = function(x,y) { 
    // The farther the character is from the object, the more skew there would be. 
    // Here "char" is your globally recognized game character. If it was not in the scope 
    // of the function you'd have to pass it as a parameter. 
    var skew = (char.x > x) ? (char.x - x) : (x - char.x); 
    var newx = (skew * 0.1); // obviously this would be variable depending on your liking 

    // If the object corner is not on the ground (y == 0) then subtract from it's value, 
    // otherwise add. 
    var newy = (y > 0) ? (y - 10) : (y + 10); 
}; 

在我的例子10是距離單位來改變該量y座標。這就是你的示例遊戲所做的。希望我的輸入幫助,

里根

+1

這對我感興趣的方向來說是一個好的開始。我只是不知從哪裏開始,所以謝謝。 – clicheName 2012-07-15 10:36:59