2012-07-06 120 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