问题标签 [isometric]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
webgl - WebGL 等距投影
好吧,这里要疯了。我正在做一些 WebGL,我正在尝试制作一个等距立方体。我不想使用 Three.js。我想先了解我的代码出了什么问题。我一直在研究,我能找到的唯一教程似乎是针对 OpenGL
无论如何-这是我的drawScene函数:
并且渲染功能是
相当行人。我用它来画立方体。无论如何,在 OpenGL 示例中,它们似乎取消了透视功能,但在这里如果我忽略它,我的场景是空白的。我知道lookAt 函数工作正常,我必须对透视矩阵做一些事情。一点帮助将不胜感激。谢谢!
2d - 使用旋转对象绘制等距游戏世界
在不旋转对象的情况下绘制等轴测世界非常简单,在此讨论:
简单的方法,就是取每个物体的地面碰撞矩形,并按它的中心排序(屏幕上的垂直坐标)
但在某些情况下,例如屏幕上有对角线物体 - 游戏中的机车或栅栏,它可以旋转! 物体 AB 和 C 的物体地面碰撞形状
没有对象 C,这很简单,首先我们绘制对象 B(因为它更高),然后绘制 A。
考虑到 C,我们需要首先绘制对象 A,然后是对象 B,最后是 C(在这种情况下,顺序完全相反)。
但是如何定义正确的排序运算符(或其他排序方式),以正确绘制图像/对象?
java - 为具有菱形图块的游戏转换鼠标位置背后的数学原理是什么?
我正在开发一个轴测图(等轴测图,但有角度视图)基于图块的游戏。
我的磁贴系统工作得很好,现在我正在处理输入问题。
瓷砖在视觉上与它们背后的逻辑(数组)不匹配(未对齐/偏移的菱形)。
在我使用“google-fu”找到的许多方法中,对输入应用转换(“旋转”)似乎是一种(代码量方面)易于实现且性能良好的方法。
问题是,对于我找到的所有来源,我无法真正掌握数字来自哪里,也无法掌握公式对它们的作用。
所以,我想解释一下“仿射变换”的数学公式(如果这是它的名字,因为我不确定......)
@Yochai_Timmer 对这个问题的回答是我想要使用的,但我不明白这些值的来源(主要是*),也不知道对它们做了什么。
[大部分*]:“28”是瓷砖宽度和全高的一半,“14”是半高,“56”是全宽......可能......但这几乎就是我从中得到的全部,无论正确与否,我还是被卡住了。
如果它可以帮助您给我一个更清晰的答案,我自己的图块是80 width
by 46 height
,我正在使用相同的方法应用(渲染)它们(图块的右上角1x2y
位于图块的中心1x1y
,依此类推.. .)
此外,我使用的是 Java,API 是 Slick2D。因此,如果您知道任何有助于公式数学的隐藏函数/类(例如:Math.sen()
、、Math.cos()
...)或一般问题,也欢迎您指出它们,因为它可能对我有很大帮助。
actionscript-3 - 大物体的等距深度排序问题
我目前正在构建一个 as3 等距游戏,但我在深度排序方面遇到了很多问题。我已经寻找解决方案,但没有找到任何与我的问题匹配的东西(矩形对象)。
这是我的游戏截图:
如您所见,深度排序在 1x1 平铺对象之间时效果很好。我只是使用它们的 x 和 y 坐标(相对于等轴测图)对它们进行排序。
当我有更大的物体时,问题就出现了,比如 2x2 或 1x4 或 4x1。
知道我应该如何处理深度排序吗?
javascript - 等距平铺地图中的 Z 轴
我正在 JavaScript 和 HTML5 Canvas 中试验 Isometric Tile Map。我将 Tile Map 数据存储在 JavaScript 2D 数组中。
并画
但是这个函数意味着所有瓦片Z轴都等于零。
也许有人有想法以及如何做mapData[0][0]
Z轴等于3的事情;mapData[5][5]
Z轴等于5;?
我有想法:为草、污垢编写函数并将此函数存储到 2D 数组并绘制和稍后mapData[0][0].setZ(3);
。但是为每个图块编写函数是个好主意吗?
3d - 在等距瓷砖游戏中实现和设计墙壁的最佳方式是什么?
我正在考虑在哪里应用这个解决方案的游戏,是一个可以更改图块的游戏,有点像编辑器。您将需要为 2 种类型的墙壁制作图形:朝西和朝东或朝北/朝西。
在等距瓷砖游戏中,似乎有两种方法可以设置墙壁:
- 将它们稍微画在图块之外(《模拟人生 1》、《主题医院》、《铁血联盟 2》、《僵尸计划》)
- 将它们设为 1x1(tile) 大并将它们绘制在自己的 tile 上(Ultima 8,每个 rougelike)
示例图
第二种方法似乎是最简单的方法。由于墙壁占据了整个瓷砖,您不必担心重叠到地砖中并且必须围绕其设计图案。但是,如果您想制作与网格不同大小的图案,您确实会遇到另一个问题。就像你想拥有相当纤薄的墙壁一样。然后,您的网格也需要更大。从好的方面来说,只需要 1 个墙片。
第一种方法需要一些代码来检测墙外的变化以进行绘制,并且可能看起来有点奇怪,除非围绕它设计地砖。它还需要至少 4 件。
哪种方法是解决此问题的首选方法,为什么?
javascript - HTML5 Canvas 等距地图深度排序
我对等距有问题。我不知道如何命名这个“问题”,但我会向您展示一些我得到的和我需要得到的东西。
我的代码现在绘制类似:http: //2.bp.blogspot.com/_rqhF_8E1nlA/R59d_PmoREI/AAAAAAAAAGo/3yHpmy55moc/s400/lore2.png
但我需要画这样的东西:http: //3.bp.blogspot.com/_rqhF_8E1nlA/R59epfmoRFI/AAAAAAAAAGw/cE_o-A0bvm0/s400/lore3.png
我听说这是“深度排序”但它是什么?我如何应用到我的代码以及我在哪里可以学习这个?
我的代码:http: //jsdo.it/keichioor/exU1
actionscript-3 - As3Iso:为什么要使用辅助显示列表?
我正在移植 as3iso 以与我的抽象显示列表一起使用,但我看不到作者决定使用辅助显示列表(节点层次结构)的原因。除了能够获得显示对象的子数组之外,我无法想到这样做的必要性。对于(i in 0...numChildren)getChildAt 与获取 children 数组,性能真的有那么大吗?这也可以通过在覆盖时维护子数组来缓解。
唯一的另一个原因是 flash.display.DisplayObject 的某些属性是最终的,并且希望 x 和 y 与 isoX/isoY 相关,但 worldX/worldY 是一个合理的 API。
我对辅助显示列表没有任何问题,但我看不到重点,我倾向于让我的 iso 显示对象从我的 DisplayObject 扩展。
另外,我曾假设 Flash 不需要标记不在屏幕上或 scrollRect 之外的对象可见 = false,并且通常在渲染中,因为这是/应该在渲染器级别处理?flash软件渲染器是这种情况吗?
javascript - JS/HTML5 等距游戏引擎,类似“simcity”
我需要选择一个游戏引擎/库来启动一个“simcity”项目,比如针对浏览器+facebook的游戏。到目前为止,我发现了两个看起来很有前途的引擎(示例不会导致渲染伪影):
http://www.isogenicengine.com/(付费) http://libcanvas.github.com/(开源测试版)
任何人都可以使用这些或其他等距游戏(回合制)引擎。或者我应该重新发明轮子:)
提前致谢!