Articles of 2.5d

2.5d游戏角度自上而下的透视摄像头

我有一个使用Unity的2D工具和正交相机创建的2D游戏: 通过以编程方式生成网格,为每对三角形分配纹理,并将法线设置为-Vector3.forward来创建瓦片。 我现在想切换到一个透视摄像机,为瓦片添加3D感觉,同时仍然使用精灵(以及跟随玩家): 我该如何设置这种types的相机,还有可能保留玩家在我的游戏逻辑中大量使用的x / y坐标。 提前致谢! 更新:我已经意识到,就我原来的网格和精灵而言,我只需要交换vectorY和Z坐标,以便在场景中很好地定位拼贴和精灵,但是我仍然不确定如何很好地定位相机并将其置于播放器上。

3d到2d碰撞

我有一个围绕我的屏幕旋转的3D模型,它总是在Z轴= 0,我的2D图像的一切。 我的2D图像飞出中心,变大,让视图越来越近。 我试图检测到一个碰撞,所以我可以禁用我的2D图像加载到游戏中的新的。 我的碰撞检测根本不起作用,我想知道是否有人可以解释这一点。 foreach (coins coin in coins) { coin.Update(_graphics.GraphicsDevice); if ((coin.getCoinXPosition() + scale < getModelXPosition() – scale) && (coin.getCoinXPosition() – scale > getModelXPosition() + scale) && (coin.getCoinYPosition() + scale < getModelYPosition() – scale) && (coin.getCoinYPosition() – scale > getModelYPosition() + scale)) { coin.coinVisible = false; score++; //coins.Remove(coin); } }

如何实现不受低帧率和快速移动的二维碰撞检测?

我正在尝试使用Three.js来实现我自己的2.5d体素平台变形器的碰撞检测。 我的执行方式有问题 – 如果帧率太低或角色移动太快(通常是从高处跌落),则会出现问题。 有没有办法提高碰撞检测免疫这样的问题? 这是我如何检测碰撞: function render(){ requestAnimationFrame(render); setVelocity(); animate(); manageCollisions(); renderer.render(scene, camera); } function manageCollisions(){ //Check every game object for collision -> TODO: implement broad phase when dealing with many objects for(i=0; i < world.length; i++){ //Check for bottom collision <- ALWAYS check (unless moving up) if(velocityY<0) { if( (character.position.y – character.height/2) < […]

如何制作适当的广告牌树? (Unity3D和C#)

我做了一个像Doom,Nukem 3D 3D和Daggerfall这样的2.5D第一人称游戏。 一般来说,我对Unity和游戏开发并不陌生,所以对于某些人来说这很明显,我感到抱歉。 我想要的是让树木的2D精灵像老游戏那样顺利地展示广告牌。 看看这个video,了解我的意思: https : //www.youtube.com/watch?v=xPwGXf8y6XA&t=277s 我已经在http://wiki.unity3d.com/index.php?title=CameraFacingBillboard上尝试过这个建议的解决scheme,它不能按照我想要的方式工作,这是不可思议的,并且不适合它的工作方式。 请帮帮我。

什么是等距游戏?

有像等距或2.5D游戏的理解。 据我所知,这些都是一样的东西。 但是我完全不明白它是什么。 是关于如何绘制游戏的艺术? 我的意思是说,如果艺术是从一个角度(从[自上而下]的角度或侧面看到的)看到游戏场景,而不是垂直的,这是等距的吗? 或者有一些编程技巧可以使游戏等距,比如英雄能够在三维空间中移动,而实际上它只能像2D游戏(忍者神龟或者双龙)一样在2D中移动。 请解释这个理解。

如何从二维空间中的三维物体获取表面位置

我正在使用JavaScript和PixiJS进行简单的拖放游戏。 游戏本身是二维的,但我有一些伪3D对象(我猜等距),我试图得到这些对象的位置。 我的问题是如果有任何math方程或algorithm来解决我的问题: 我有一些水果物品,用户应该把这些物品放在我下面的篮子里,但是只能放在图片下方的黄色表面。 目前,我正在使用下面的代码来检查对象是否在篮子内,但是这将检查整个纹理,而不是黄色的表面! isInside() { if (this.object.x > basket.x1 && this.object.x <= basket.x2 && this.object.y > basket.y1 && this.object.y <= basket.y2) { return true; } else { return false; } } 我可以使用哪种algorithm只检查黄色表面?

创建3d / 2.5d环境的语言

我想挑选一种能够创建2D / 3D游戏环境的语言。 我来自web开发使用PHP,JS,XML,理想情况下,我想能够与这些语言进行集成。 我想部署到networking和PC / Mac。 我正在考虑Java,Actionscript 3或C的一些变体 我很擅长select新的语言,所以这不是一个考虑因素。 我简要地尝试了Java和ActionScript 3,问题在于我很难看到每种语言的优势(那就是没有学习整个语言)。 所以如果有几个人可以支持他们的select工具,那么它为游戏开发提供了什么样的优势/弱点(可以自由地包含商业优势!),这肯定会对我有帮助,也可以帮助其他人。

为2D等距游戏创建假3D角色。

在我的2D等距游戏中的角色由对应于特定身体部位(头部,躯干,上臂,下臂等)的几个精灵组成,这使我可以在游戏中广泛地定制我的角色并做骨骼animation。 我想避免在所有八个方向创建animation,因为我不能使用3D模型 – 有很多原因,请不要使用3D – 我正在寻找一种方法来伪造3D,使角色可以自由旋转在所有的方向,但只使用一个animation。 我想这个假的3D可以通过改变身体部位位置(x,y),它们的比例(xscale,yscale)和绘图顺序的algorithm来实现。 我将如何去做呢? 我应该添加到每个精灵一个假Zvariables? 然后怎样呢? 有没有类似的东西的例子? 给我一些想法

拿起另一本书或淹没XNA

完整阅读Head First C#。 我应该从这里阅读一些其他的东西或者与XNA私下交stream吗? 有链接? 编辑:业余爱好。 有兴趣在2D和2.5D gamedev个人的乐趣,没有什么严重的。 多人(2D / 2.5D游戏)对我来说也是一个非常有趣的话题。 基本上不知道现在从哪里走。

用于复杂,密集型2Dgraphics的现代硬件有多强大?

我正在着手大规模(图像质量,文件大小,高帧数)项目。 我仍然在研究这个基本的引擎,但是在开始testing之前,我有一个很大的问题需要回答。 (这需要大量的工作来testing,可能会失败,不得不重新创建所有精灵表,所以如果我错了,答案可以帮助我节省数周的工作。) 这个游戏完全是二维的,具有2.5D的视野。 我想最终有40个animation,都必须在8个方向animation。 我希望每个方向/animation都有自己的精灵表。 这相当于数百个spritesheet和数千个文件。 在明显的解决scheme之前“降低文件大小的质量!” 我想尽一切可能来防止质量下降,animation帧数和图像大小。 在我的解决scheme之前,一个角色的内存(LOL!)是350MB,但是这个角色很快就被固定到了每个角色10-20MB。 那是…如果我在所有方向(8)加载所有(40)animation。 所以如果我把320张精灵表加载到内存中,那么每个内存中的字符数就会非常大。 我的问题是这样的: 在任何给定的点上,我应该将多less(总精灵表)加载到内存中? 我只能将CURRENT spritesheet(Direction + Animation)加载到内存中吗? 现代硬件足够快,可以随时交换纹理吗? 玩家可以随时改变方向。 这将改变整个spritesheet。 同样的animation。 因此,在一瞬间,游戏将不得不加载一个特定的新的spritesheet,卸载旧的(或最终卸载),并在一瞬间渲染。 只要他们在实时游戏中animation或改变方向,就必须为每个角色完成一次。 幸运的是,屏幕上同时显示的字符数量将受到2D游戏的限制,但是我希望能够在平庸的计算机上最大限度地减less性能问题。 是纹理交换,文件加载,从硬盘和内存即时渲染 – 所有这些与现代硬件如此之快,我什至不需要担心任何这一点? 我只是不想在所有这些spritesheet(从我已经拥有的成千上万的图像)工作,只是为了找出我的performance将是可怕的,必须重做所有的spritesheets。 即使要testing,因为我有一个分层设备系统,创建spritesheet是一个耗时的任务。 也就是说,直到我find一个解决scheme来处理这些更快(自动化,我做手动目前,使用程序)