问题标签 [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.

0 投票
1 回答
592 浏览

algorithm - 如何从鼠标坐标接收细胞的等距索引?

我用瓷砖64x32绘制等轴测图:

图片,说明此代码:http: //i.imgur.com/tgCxF.png

亲爱的专业人士,请帮助在单元格的等距索引中转换鼠标坐标的公式。示例:(105; 100) -> [1; 4]。

谢谢。

PS 请原谅我的英语不好。我只是在学习...

0 投票
2 回答
5864 浏览

map - 在 AndEngine 中使用 TMX 文件

我有一个用“平铺”创建的等距 .TMX 文件,我使用的是 AndEngine GLES1。我想用它作为背景或地图。如果可能的话,我还希望将我的“玩家”运动与瓷砖联系起来。我知道有一些问题处理这个问题,但我需要实际的代码来显示背景。

这是我唯一的java文件

编辑切换到 GLES2 后,这给了我一些错误。我正在使用一个新类并插入提供的代码。我需要为其中任何一个创建类吗?是否通过属性链接 TMXproject - android 和该页面底部的“添加”框?谢谢

0 投票
1 回答
2267 浏览

html - 等轴测图的平滑拖动滚动 - Html5

我已经实现了一个基本的等距平铺引擎,可以通过用鼠标拖动地图来进行探索。请看下面的小提琴并拖走:

http://jsfiddle.net/kHydg/14/

分解的代码是(CoffeeScript):

绘图功能

鼠标拖动滚动控制

问题

正如您从小提琴中看到的那样,拖动动作还可以,但并不完美。我将如何更改代码以使拖动动作更流畅?我想要的是您单击的地图点,以便在拖动时保持在鼠标点下方;和他们在这里做的一样:http: //craftyjs.com/demos/isometric/

0 投票
1 回答
2087 浏览

javascript - html画布中的等距立方体投影

你如何在canvas 2d中做等距立方体?我已经按照HTML5 Canvas 的 True Isometric Projection来获得立方体的顶部,但是你如何做左侧和右侧呢?

注意:我想使用 Kinetic.js 对象,其事件处理功能完好无损。

这就是我现在所拥有的:

​</p>

演示:http: //jsfiddle.net/F5SzS/

0 投票
1 回答
1918 浏览

java - 渲染等距网格

我正在为等距游戏制作地图编辑器,但在渲染等距引导网格(显示对象放置位置的网格)上有点卡住。也就是说,我需要在 Graphics 对象上画线,使其形成一个具有可变宽度和高度的单元格的网格。我该怎么做才能做到这一点?

到目前为止,我有:

但这只是从左侧开始绘制从左下角到右上角的线。

0 投票
0 回答
725 浏览

java - 检查对象是否在等距平铺/块的范围内

如何检查对象是否在等距块的范围内?例如,我有一个播放器,我想检查它是否在这个等距块的范围内。我使用 OpenGL Quads 绘制等距块的图块。

我的第一次尝试是检查方形图案之类的东西:

这里发生的是它检查块周围的 SQUARE,而不是真正的等距边界。图片示例:(红色是程序检查边界的地方)

我现在拥有的:

矩形检查

所需检查:

等距检查

最终我想对块中的每个图块做同样的事情。

额外信息:

到目前为止,我在游戏中所拥有的是你只能逐个地块移动,但现在我希望它们自由移动,但我仍然需要它们有一个图块位置,所以无论它们在图块上的哪个位置,它们的图块位置都是确定的瓦。然后,当它们位于不同图块的边界框内时,它们的图块位置将成为新图块。块也是如此。玩家确实有一个区域,但在这种情况下该区域无关紧要。只要 X 和 Y 在边界框内,它就应该返回 true。他们不必完全在瓷砖上。

0 投票
1 回答
607 浏览

sdl - 防止等轴测艺术中的过度绘制

背景:

我正在创建一个以等距视角呈现世界的游戏,通过绘制等距瓷砖来实现。我目前的实现是幼稚的,使用画家的方法,从后到前,从下到上,使用平铺图像中的表面块。

问题:

我担心透支(可能是过度的,如果是这种情况,请告诉我)。这是单层瓷砖的小快照:

透支

以粉红色高亮显示的区域是从后到前、从下到上的方法不止一次将像素传送到画布上的区域。这是一个小而人为的例子,但在实践中我希望完成更多的事情:

信用 eBoy

(图片来源 eBoy

对于如此复杂的图像,以及基于 tile 的实现,在合成最终图像之前,每个屏幕像素都会被绘制多次,感觉效率非常低。由于这些只是 2D 图像,最终带有一位 alpha 蒙版,因此没有 3D 的担忧(例如,没有浪费的照明或变换数学),但似乎仍然应该有一个更优雅根据最终合成中是否会被遮挡来确定是否应绘制像素的方法。

解决方案?

到目前为止,我提出的最佳解决方案是:

  • 颠倒绘制顺序,从前到后,从上到下绘制。
  • 每个像素保留一位假 z 缓冲区,用于记录像素是否已被绘制。
  • 仅在其覆盖的某些像素尚未绘制时才绘制图块。

有一个更好的方法吗?blit 操作是否超级高效,我在这里对风车倾斜?

0 投票
1 回答
968 浏览

java - 等距平铺生成

所以我的问题是,通常当我生成我的地图时,我会使用以下内容:

你可以得到公正的。无论如何,我几乎需要以实用的方式在等距/45 度旋转中做到这一点。

说你要添加新 Tile(width / 2, 0) 的第一个循环。

下一个循环,您将添加 new Tile((width / 2) - 1, 0) 和 new Tile((width / 2) + 1, 0)。

我已经尝试了几种不同的方法来做到这一点,但没有取得太大的成功。

0 投票
2 回答
1810 浏览

python - 在 Python 中正交渲染 3D 模型

我想用 Python 编写一个工具来帮助我从 3D 模型创建等距图块。你看,我不是一个非常熟练的艺术家,免费的 3D 模型很多,在 3D 中创建像桌子或椅子这样的东西比在绘画中容易得多。

该脚本将在正交投影中加载 3D 模型并从四个方向拍照,以便在游戏中使用。我在 Blender 中尝试过,但结果不一致,很难控制并且需要很长时间才能创建简单的精灵。

滚动我自己的脚本也可能让我做一些整洁的事情,尤其是批量生成,也许是纹理更改、着色等。游戏本身可能会用 Python tpp 制作,所以也许我可以即时生成。(编辑:当他们面对镜头时自动创建透明墙)

现在我的问题是,哪些 Python 库可以做这样的事情?我已经检查了 Pyglet 和 Panda3D,但我什至无法加载模型,更不用说将其设置为正交投影。

0 投票
1 回答
958 浏览

math - 计算变换平面所需的旋转

我目前正在尝试在等距(html5 画布 2d 上下文)中渲染多边形网格。
我的工作几乎完成了,除了我找不到正确的计算/算法来找到平面旋转。

在示例中,我有由 2 个向量 Ox, Oy 定义的平面 A 和 B

我想找到 alpha(围绕 Ox 旋转)、beta(围绕 Oy 旋转)和 gamma(围绕 Oz 旋转)以应用于平面 A 以使平面 A 与平面 B 具有相同的法线。