Questions tagged «isometric»

从技术上讲,特定的3D透视图定义为所有3个轴都完全相距120度。在早期的视频游戏中,通常考虑到像素线条更平滑而略微偏离。


2
大多数2.5D等距游戏的视角透视角是多少[关闭]
我检查了几个非常流行的游戏,以确定它们使用的视角。为此,我创建了一个等轴测为45度和60度的网格,并将其放在屏幕快照(在本例中为Diablo II)中。这些网格都不符合游戏的视角。因此,我试图找到最适合透视图的角度,该角度接近53.5度。但是,这个数字似乎无处不在,我相信定义透视角度的数字背后有很强的逻辑。我尝试了9/16 * 90度和3/4 * 90度(来自屏幕分辨率16:9和4:3的比率),但我的所有假设似乎都不正确。这是我的意思的屏幕截图: 60度 45度 介于两者之间-53.5度-非常接近实数 我真的需要知道什么是真正的学位,以及它的来源。任何帮助都非常感谢!谢谢!

1
等轴测渲染和拾取?
我一直在寻找在菱形世界中绘制(世界->屏幕)和鼠标拾取(世界->屏幕)等距图块的公式。我尝试过的似乎总是不对劲。这样做的通常/正确方法是什么?

12
JavaScript / HTML5中的等距游戏引擎
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 是否有人知道JavaScript / HTML5的等距稳定(即超出Alpha)等距绘图引擎?我已经进行了一些Google搜索,但发现了一些,但它们大多处于仅限Alpha /仅邀请状态。 是否有足够成熟的东西可用于生产环境?还是我现在应该暂时放弃自己的实现,然后等待世界其他地区的追赶?

1
如何将鼠标坐标转换为等距索引?
我用图块64x32绘制等距图: const Offset = 160; int X, Y; for (int a=0; a < 6; a++) for (int b=0; b < 6; b++) { X = a * 32 - b * 32 + Offset; Y = a * 16 + b * 16; DrawTile(X, Y, tile); } 图片,说明此代码: 亲爱的专业人员,请提供有关细胞等轴测索引中的鼠标坐标转换公式的帮助。例如:(105; 100)-> …

9
如何将等距精灵按正确的顺序排序?
在正常的自上而下的2D游戏中,可以使用屏幕y轴对图像进行排序。在此示例中,树木已正确排序,但等轴墙却没有: 墙2比墙1低一个像素,因此它是在墙1之后绘制的,并在顶部结束。 如果按等轴y轴排序,则墙壁会以正确的顺序显示,但树木不会: 如何正确执行此操作?

3
在2D空间游戏中伪造等距图形
首先,我确切地知道我的绘图问题是什么,并且对于如何解决该问题我有各种想法。我在这里要弄清楚如何调整绘制的帧,以便保持等距的“幻觉”。 我正在编写在太空中进行的2D鸟瞰游戏。我试图在Up是北方的世界中使用等轴测图形,而游戏世界不会像传统的等轴测游戏那样旋转(请记住,游戏是在太空中进行的,没有地形)。这是我尝试使用的一个示例精灵:http : //cell.stat-life.com/images/stories/AsteroidOutpost/Spaceship64.png围绕其自身的垂直轴旋转了64次,视角为35度(又名iso)。图像已生成,因此可以更改。 为了清楚起见,我已指定北(上)为0度,东(右)为90度。 我的问题是,由于所使用的3D平面存在差异,我的精灵并不总是看起来像面对游戏一样。不知道我是否正确使用了术语,但是我的飞船是在一个平面上旋转的,而查看平面期望事物在其自身的平面上旋转。这是问题的描述: http://cell.stat-life.com/images/stories/AsteroidOutpost/ProjectionIssue.png 左边是侧视图,右边是自顶向下的视图。在顶部,我可以看到太空飞船/精灵表的世界。在底部,我具有将精灵绘制到屏幕上时的外观。 右上角是我的飞船如何旋转的简化版本(每帧之间的角度间隔均匀)。右下角是在屏幕上绘制特定角度时,精灵看起来像面对的角度。该问题在45度左右最为明显。这是一张覆盖有“屏幕平面”线的图像,该线指向该船应该面对的方向:http : //cell.stat-life.com/images/stories/AsteroidOutpost/Spaceship64RedLine.png红线应始终指向与船完全相同的方向,但是如您所见,投影问题正在引起问题。我希望我已经很好地描述了这个问题。 编辑: 红线在屏幕平面上旋转,而太空飞船在“船平面”上旋转,因此绘制时船角和屏幕角度之间存在较大差异。 结束编辑 当这艘船向应该向前方射击的一侧偏离目标的位置发射激光束时,看起来很奇怪。 所以...我想出的解决方案是: 停止尝试伪造等轴测图,变大或回家。已经旋转了我的世界。(PS:这可以解决我的问题,对吗?) 更改我的Sprite表(以某种方式),使其具有表示模型将被查看的“屏幕角度”的框架。因此,当我要求提供45度的图像时,它实际上看起来像是在屏幕上面对45度。 更改我的Sprite渲染系统以从Sprite工作表中抓取一个不同的帧(以某种方式),因为知道抓取“正常”帧看起来会很有趣。因此,与其抓取45度的框架,不如抓取33度的框架(只是猜测),使它对用户而言看起来是正确的。 只需使用3D!真是太容易了 例如:您会推荐哪种解决方案?我倾向于2,即使我知道这是错误的。请记住,我有权使用Sprite生成工具。方法3是我的第二选择。这两种方法都只需要我对角度应用一些数学运算即可得到所需的结果。顺便说一句,我在其中添加了#4作为玩笑,我不想转向3D。 对于两个:使用方法2或方法3,如何调整输入或输出角度?我对3D投影和3D矩阵(更不用说2D矩阵)以及任何其他数学方法可以达到我想要的结果都不太满意。 在这里大声思考:如果我将一个单位矢量面向我要看的船的方向(在屏幕平面上),然后将其投影到船平面上,然后找出那条投影线与飞机平面之间的夹角北方是,我应该具有要显示的船舶图形的角度。对?(#3的解决方案?)伙计...我无法解决。 编辑: 我知道这个问题是很难用静态图像可视化,所以我遵守我的雪碧库Visual测试仪显示的问题:http://cell.stat-life.com/downloads/SpriteLibVisualTest.zip它需要XNA 4.0此应用程序只需旋转精灵,然后从其中心向外以游戏认为船应面对的角度画一条线。 编辑9月8日 继续我的“大声思考”段落:我认为我可以采用朝北的单位矢量(0x,1y,0z),而不是使用投影(因为它看起来很难),而是使用矩阵将其旋转到角度精灵实际上是面向的,然后围绕X轴再次从“查看平面”向外旋转到“精灵平面”,然后……变平?仅使用X和Y(忽略Z),向量(基本上是将其投影)回到视平面上。然后,使用新的扁平化矢量,我可以确定其角度并将其用于...某物。我待会再考虑。 编辑9月8日(2) 我尝试从上面遵循我的想法,并取得了一些成功,是的!所以...为了使一条红线看起来像是从我的飞船中出来(仅出于测试目的),我做了以下工作: Vector3 vect = new Vector3(0, 1, 0); vect = Vector3.Transform(vect, Matrix.CreateRotationZ(rotation)); vect = Vector3.Transform(vect, Matrix.CreateRotationY((float)((Math.PI / 2) - MathHelper.ToRadians(AngleFromHorizon)))); Vector2 …

4
二维等距游戏中的实时阴影投射
我正在用C ++写一个小的2D等距引擎,并且试图实现实时阴影投射。我按照本页上描述的一种简单方法进行操作,结果是(光与黄色立方体位于同一位置): 结果非常好,但是在墙壁和立方体顶部缺少阴影。这是一个看起来像的示例(我用绿色绘制了预期的阴影): 所有绘制的立方体仅由位于XY位置且Z深度(z = x + y)的3个2D方形构成。我将OpenGL与正交矩阵(glOrtho)结合使用。使用模板缓冲区绘制阴影。 我正在寻找可以帮助我完成此影子投射实施的资源或解决方案。 非常感谢!


6
如何处理等距碰撞检测?
我想做一个等距的跳跃风格的平台游戏。玩家应该能够跳到地板上方的平台顶部,撞到物体的侧面等。 我将使用2D游戏引擎,所以我不想为未使用的尺寸模拟完整的3D碰撞。 我认为游戏中的对象应使用:X,Y,宽度,高度和Z表示深度。 使用这些值,我应该如何检测冲突?

4
如何确定等轴测视图Flash游戏中的绘制顺序?
这是用于Flash游戏的等轴测视图。我需要知道如何对对象进行排序,以便在绘制时无需进行z缓冲区检查。这似乎很容易,但是还有一个限制,一个场景可以有10,000+个对象,因此算法需要以小于O(n ^ 2)的速度运行。所有对象都是矩形框,场景中移动了3-4个对象。最好的方法是什么? 更新 在每个图块中只有一个对象(我的意思是对象不能彼此堆叠)。并且我们访问的对象图和对象图都有自己的位置。 更新2 看到这些数字: 首先应先绘制蓝色对象,然后绘制绿色,然后绘制红色。而在第二个中,您必须以相反的顺序绘制它们。您需要先绘制红色,然后绘制绿色,最后绘制蓝色的对象。如您所见,蓝色和红色物体的位置没有差异,它们与相机的距离都不同,依此类推。但是由于它们相对于绿色框的相对位置,您需要在两个图像之间更改其绘制顺序。这就是使这个问题变得一团糟的原因。 旁注:由于所有对象都是直角棱镜,因此在数学上可以证明至少有一个绘制顺序可以满足问题的需要。

4
等距交错地图:计算屏幕上点的地图坐标
我知道已经有很多相关资源,但是我还没有找到与我的坐标系相匹配的资源,因此在调整这些解决方案以满足我的需求时遇到了很大的麻烦。我了解到,做到这一点的最佳方法是使用转换矩阵。实现这没问题,但是我不知道我必须以哪种方式变换坐标空间。 这是显示我的坐标系的图像: 如何将屏幕上的点转换为此坐标系?

2
如何创建倾斜的(高度)等距图块
这也许最好用图形解释。我正在尝试创建一个2.5D等距游戏。我的目标是使游戏看起来像我的目标: 我不是图形艺术家,因此在创建“倾斜”图块以模拟不同高度的地形时遇到了一些麻烦。使用以下步骤很容易创建基本的等距图块: 创建图块的64x64正方形版本 旋转45度 将高度缩小2倍 创建“倾斜”图块更具挑战性。我可以使用Photoshop,但距离使用它还不是专家。这是我当前的问题: 我不确定如何操作顶点,否则会很容易,但是基本上,要从基本等距图块中获得“倾斜”图块,我要做的就是将底部和右侧顶点向下移动16个像素,同时固定其他两个顶点。这将生成我想要的图块。 有什么简单的方法可以做到这一点。Photoshop是正确的工具吗?有什么建议么?
11 tiles  isometric 

4
如何处理等距瓷砖中的动画门
我遇到了一个棘手的问题,我不确定该如何最好地解决:我有一个动画的门砖。当它关闭时,应该以一种方式进行排序,但是当它是openend时,则需要以不同的方式进行排序,因为它属于不同的(相邻拼贴)。 这是关着的门: 门开了: 我想可以覆盖此类图块的排序系统并根据框架调整排序,但感觉有些不客气。 有没有人遇到过类似的情况?有什么优雅的解决方案吗?

2
角色/对象交互动画在等距游戏中如何工作?
我正在计划一个等距的商业模拟游戏,玩家可以看到带有普通家具(例如书桌,白板等)的办公室。 游戏中的角色(工作人员/ NPC)应通过执行一些预定义的任务(例如,在办公桌上的键盘上打字或在白板上书写等)来与这些对象进行交互。 我特别感兴趣的是以下情况: 角色穿过办公室(1)移到他的办公桌(2),坐下并开始打字(3)。 据我了解,我会有一个用于角色移动的精灵表(1)和一个用于桌面的静态精灵(2),但是我不太了解如何处理第三步? 是否有同时包含桌子和角色的组合精灵?我假设没有,否则我将需要为每个桌子和角色组合使用一张精灵板。 通常如何处理? 编辑: 这是游戏主题医院的特定示例动画。您可以在此处观看视频。 据我所见,动画分为几个步骤。 步骤1-角色在桌子和椅子之间移动。 这表明椅子和桌子实际上是分开的精灵。 第2步-角色坐下动画 请注意,在最后一帧中椅子是如何离办公桌更近的。 第3步-桌面动画 第4步-站立动画 与坐下相同,但反向玩。 第5步-离开 使用普通的移动动画移开。 我的问题是如何最好地分离这些动画,图形艺术家通常将如何提供这些动画? 角色坐在桌子上打字实际上是三个不同的角色(桌子,角色和椅子)吗?有谁知道类似动画的示例精灵? 编辑2: 我想我最担心的是,我对精灵的实际外观有正确的期望。我不能自己绘制它们,所以我必须付钱给别人做,而且我认为有某种最佳实践可以制作这种动画?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.