问题标签 [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 回答
173 浏览

actionscript - 是否有可能并合理地为内置于 actionscript 的等距游戏中的角色添加 3d 模型?

我正在开发一个等距游戏,但我希望用户能够看到他们角色的各个方面。是否可以将 3d 模型导入动作脚本(flash)?这也是个好主意吗?还是我应该坚持基本的 2d sprite 想法?

0 投票
1 回答
546 浏览

actionscript-3 - as3isolib:如何使用相同的 IsoView 大小进行缩放?

(开发平台:Flex 4)

语境:

  • 网格大小:64 x 64 单元格
  • 视图:760 x 600 像素

提供 2 个缩放级别:

  • 最低级别:在我的 IsoView 中显示所有网格(64 x 64 单元格)
  • 最大级别:在我的 IsoView 中仅显示 16 x 16 单元格

我怎样才能做到这一点 ?

非常感谢,

问候,

安东尼

0 投票
2 回答
2346 浏览

math - C# XNA Isometric Tile Engine 问题

我目前正在做一个学校项目,我需要开发一个等距游戏。不幸的是,由于我的老师对游戏开发一无所知(已经专注于切换到新学校),我被困住了。

现在我可以轻松绘制游戏地图,但它停止了。当我添加角色时,我看到它正在渲染,但我无法移动它。很可能我搞砸了 IsoToScreen 和 ScreenToIso 数学问题。

当我尝试将我的角色移动 1 像素时,由于某种原因,它会立即离开屏幕。

这是我用来将简单 2D 转换为 2.5D Isometric 的 IsoMath 类

}

我的 Player 类只是一个带有 Draw(SpriteBatch sp, vector2 playerPostition); 的占位符。顾名思义,在给定位置绘制角色的方法(该位置在主 Draw 方法中预先计算)

这就是我将角色绘制到屏幕上的方式。它适用于固定的 x14,y14 位置(浮点数),但是当我将 1f 添加到这两个值中的任何一个时,找不到该字符。

我使用以下代码(在绘制字符之前)来渲染我的地图。大量的 if 语句用于剔除屏幕图块。

如果您认为我没有提供足够的信息,您可以单击此处 (1.13Mb)下载整个项目的 zip 存档。

0 投票
3 回答
5454 浏览

javascript - 二维等距网格中的点击检测?

我已经从事网络开发多年了,我正在慢慢地参与游戏开发,对于我目前的项目,我有这张等距地图,我需要使用算法来检测正在点击的字段。顺便说一句,这一切都在带有 Javascript 的浏览器中。

地图
看起来像这样,我添加了一些数字来向您展示字段(图块)的结构及其 ID。所有字段都有一个中心点(x,y 数组),四个角在绘制时基于该中心点。
如您所见,它不是菱形,而是锯齿形地图并且没有角度(自上而下的视图),这就是为什么考虑到所有文章和计算通常都基于菱形,我自己找不到答案的原因有一个角度。

数字
这是一张动态地图,所有大小和数字都可以更改以生成新地图。
我知道这不是很多数据,但地图是根据地图和字段大小生成的。
- 地图大小:x:800 y:400
- 区域大小:80x80(角落之间)
- 所有区域的中心位置(x,y)

目标
提出一种算法,告诉客户端(游戏)在任何给定事件(点击、移动等)中鼠标位于哪个字段。

免责声明
我确实想提一下,我自己已经提出了一个可行的解决方案,但是我 100% 肯定它可以以更好的方式编写(我的解决方案涉及很多嵌套的 if 语句和循环),并且这就是我在这里问的原因。

是我的解决方案的一个示例,我基本上在最近的 4 个已知位置找到一个带角的正方形,然后根据两个最近的字段之间的最小正方形得到我的结果。这有任何意义吗?

问我是否遗漏了什么。

0 投票
2 回答
710 浏览

html - 以正确的顺序绘制一系列等距敌人或处理脏矩形?

我想知道是否有人可以帮助我确保我的......呃...... Z-index(糟糕的双关语,你马上就会明白为什么)的顺序错误。我已经连续这样做了几个小时了,我的眼睛开始瞎了 - 但是 - 也许在一夜之间在 Stack 上留下一个问题将有助于将其推向正确的方向。

我一直在为https://github.com/AlexChesser/jsSprite编写代码,并且我已经进行了第 6 次测试。使用 W 键运行,A 和 D 向左和向右转:http ://chesser.ca/jsSprite/06-brainnsss....php(Gettit?Z-Index?!搞笑)。

不管怎样,你会注意到,如果你在屏幕上跑了一会儿。单个僵尸的白色方块/脏矩形与其他僵尸的方块重叠。当使用多个重叠的精灵时,如何确保它们都被绘制而不会扰乱任何其他精灵?

(您会看到 z 代表僵尸,但 z 索引就像您在 CSS 中处理重叠时一样 - 当您连续编码几个小时时可能会更有趣)。

谢谢你的脑洞......

0 投票
1 回答
1360 浏览

c# - c# 图像转换为平行四边形

快速的问题,可能是一个简单的答案。我有一个方形图像,但我想将其挤压成平行四边形(这样我就可以等距绘制一些立方体)

我目前将我的图像存储在一个Image类中。

0 投票
1 回答
1156 浏览

c++ - 如何在 DirectX 10 中绘制大量(500 多个)精灵来构建等距平铺地图?

所以,我一直在翻阅几本关于 DirectX 的书(特别是 10 本书),并且正在尝试构建一个使用它的游戏,但我被一个似乎没有一本书提到的问题难住了:我我用精灵构建了一个等距地图,随着棋盘变大,程序的速度急剧下降。每个瓦片是 64x45,当我用精灵构建一个 36x19 (684) 瓦片图时,我的应用程序加载大约需要 6 秒,每帧之间大约需要 5 秒。由于断点调试没有产生任何好的线索,我已经缩小了当前代码中问题出在这个特定部分的区域:

任何帮助,将不胜感激。

0 投票
1 回答
5218 浏览

c++ - 如何用等距透视渲染?

可能重复:
使用opengl进行真正的等距投影

我想使用 Blender3d 使用的相同等距渲染进行渲染,我该怎么做?只需调用 glMultMatrix() 就可以了吗?我尝试使用谷歌搜索,但找不到任何会导致这种渲染模式的工作矩阵。我试过这个http://en.wikipedia.org/wiki/Isometric_projection但它只是变得很奇怪。

这是我现在使用的以正常视角渲染的矩阵:

我该如何改变它,它会导致: http://rvzenteno.files.wordpress.com/2008/10/rvz_018.jpg

0 投票
1 回答
1182 浏览

actionscript-3 - 计算等距矩形网格中的列数和行数

我正在尝试扩展基于 as3isolib 的等距 Flash 游戏。该游戏仅支持菱形网格,但我也必须实现具有矩形网格的可能性。请参阅我的示例网格

我已经设法创建了网格。这是代码:

使用20px的单元大小(等距宽度和长度),上面显示的网格单元的等距位置是:

  • [DataNode (col:0, row:0, x:0, y:0)]
  • [数据节点(列:0,行:1,x:20,y:0)]
  • [DataNode (col:0, row:2, x:20, y:20)]
  • [数据节点(列:0,行:3,x:40,y:20)]
  • [数据节点(列:0,行:4,x:40,y:40)]
  • [DataNode (col:0, row:5, x:60, y:40)]
  • [数据节点(列:0,行:6,x:60,y:60)]
  • [DataNode (col:1, row:0, x:20, y:-20)]
  • [DataNode (col:1, row:0, x:20, y:-20)]
  • [DataNode (col:1, row:1, x:40, y:-20)]
  • [数据节点(列:1,行:2,x:40,y:0)]
  • [DataNode (col:1, row:3, x:60, y:0)]
  • [DataNode (col:1, row:4, x:60, y:20)]
  • [DataNode (col:1, row:5, x:80, y:20)]
  • [DataNode (col:1, row:6, x:80, y:40)]
  • [DataNode (col:2, row:0, x:40, y:-40)]
  • [DataNode (col:2, row:1, x:60, y:-40)]
  • [DataNode (col:2, row:2, x:60, y:-20)]
  • [DataNode (col:2, row:3, x:80, y:-20)]
  • [数据节点(列:2,行:4,x:80,y:0)]
  • [DataNode (col:2, row:5, x:100, y:0)]
  • [DataNode (col:2, row:6, x:100, y:20)]

问题是所有对象和化身仍然像网格一样被放置为菱形。这是因为基于等距 x/y 位置计算列数和行数的公式仅适用于菱形网格:

有人知道矩形网格的公式应该如何吗?

0 投票
1 回答
2733 浏览

android - Android 中的等距平铺地图

我想知道如何在 android 上使用等距平铺地图。

要创建正交地图,您可以使用 Tile Map Editor 和 libigdx,但 libigdx 不支持等距地图。

我想创建他们在 CityVille 或塔防游戏中使用的瓷砖......你是怎么做到的?