Articles of 等距

如何处理等距游戏上的两个不同的轴?

嗨! 以上是目前我遇到的问题。 我的游戏有两个不同的坐标系。 你有客户端或者canvas,在那里渲染游戏 – 一个标准的坐标平面; 不过,由于游戏的等距特性,我还有游戏坐标平面。 注意:服务器一次只向游戏提供大块的瓷砖,这使我无法翻译canvas。 我必须计算出拖动的数量和方向,并要求从服务器显示新的区块。 我的问题:我不知道如何计算移动瓷砖的数量(所以我可以发送该数据到服务器),因为我不知道如何确定用户移动地图有多less瓷砖和方向。 因为如果他们移动到左边,不仅改变游戏的x位置,而且改变游戏的y位置,因为由于等轴测图的性质,新的列和行将不得不被加载。 我希望这是有道理的,我尽我所能来解释这个问题,我不太确定我是否正确解释。

平铺的瓷砖 – 等轴测图

我正在尝试从Tiled中的斜映射(45度角)移动到等角(30度角)。 我在Photoshop中做了一个testing瓷砖: 做了一个等轴测图: 但是我的瓷砖显得完全扭曲,“等轴测图”只是以45度旋转的自顶向下的格子显示: 如何使用平铺创建适当的等距场景? 嗨,在你的例子( 这里 ),你的瓷砖网格是倾斜的。 正如你所看到的,我的出现在上面。 我如何configuration?

在地图上的等距圈

这是一个现有的例子: 我试图复制这个: 我知道那个船的圆的直径是6 blocks (因为圆与6 blocks的边缘重叠,这也是计数的)。 我知道等轴测图的大小是64*48 。 所以我复制了,这是我得到的输出: 你可以看到一些问题: 即使使用提供的尺寸信息,椭圆的大小也不尽相同。 即使尺寸相同,边缘也不会在所提供的图像中的相同位置处结束。 有我的实现,我相信我像往常一样做错了math: // The vessel radius (diameter / 2) int radious = vessel.getInfluenceRadius(); renderer.begin(ShapeRenderer.ShapeType.Line); renderer.setColor(Color.RED); // Calculate the size of the ellipse int width = radious * GameTile.TILE_WIDTH; int height = radious * GameTile.TILE_HEIGHT; // Draw ellipse, centered around vessel where xx and yy […]

坐标系交错等轴测图

我正在交错的菱形图案中建立一个等轴测图的游戏。 每个游戏物品将位于一个瓦片上,在瓦片或分数偏移内没有移动。 看来有两种常见的方法来安排我将称之为锯齿形和奇偶的瓷砖坐标。 在之字形方法中,X位置被分成两列,相邻的Y值彼此对角。 这似乎是在示例中看到的更常见的方法,并且使用X和Y值的每个配对作为二维数组,但是使对角线移动的算术不那么直观,并且导致以4:1物理缩放“方形”数组。 在奇偶方法中,每个列和行对于X和Y都是奇数或全部均匀,对角相邻的块在两个维度上始终相差+/- 1。 这种方法使对角线移动更简单一些,更好地对应于物理屏幕位置,但是使数据空间中的一半坐标无效。 对于存储,迭代,渲染和移动的机制,哪种方法更好? 由于对角线运动的一致性,我倾向于奇数偶数的方法,但曲折的stream行使我怀疑我是否错过了一些东西。 如果奇偶更好,你如何表示和迭代数据?

等轴测地图中的Z轴

我正在试验JavaScript和HTML5 Canvas中的等角拼贴地图。 我正在JavaScript二维数组中存储瓷砖地图数据。 // 0 – Grass // 1 – Dirt // … var mapData = [ [0, 0, 0, 0, 0], [0, 0, 1, 0, 0, … ] 并绘制 for(var i = 0; i < mapData.length; i++) { for(var j = 0; j < mapData[i].length; j++) { var p = iso2screen(i, j, 0); // […]

一般的等距方法

我目前发现了等轴测图的世界,现在我发现有两种方法来创建地图。 只要创建2:1比例的瓷砖图像并绘制这些图像。 创建正方形并将它们转换为2:1的比例。 开发等距游戏的一般方法是什么? 现在我想知道几件事情。 AOE1 / 2等更多已知游戏如何做到这一点? 这两种方法的优点/缺点是什么? 哪一种方法更适合在这个时代使用? 编辑添加了更多一般问题

等角投影坏coordonate

我有一个2D地图,每个元素我应用这个等轴测投影放置我的雪碧 //Element e; float[] f= projection(e.getX(), e.getY() ,z); // x and y represent Sprite Coordonate (tile_width and height depend of my // camera size and the number of elements in x and in y float x = f[0]*tile_width; float y = f[1]*tile_height; public float[] projection(float x, float y, float z) { return new float[]{ (( […]

等轴测图在不同的位置显示两个不同的图像

我创建了一个简单的使用HTML5和Javascript的等距游戏,但我似乎无法让显示器工作,现在我有9个具有X和Y位置的贴图,玩家有X和Y位置,玩家X和Y属性被设置为100,并且瓦片如图所示 tiles[0] = new Array(3); tiles[1] = new Array(3); tiles[2] = new Array(3); tiles[0][0] = new point2D( 100, 100); tiles[0][1] = new point2D( 160, 100); tiles[0][2] = new point2D( 220, 100); tiles[1][0] = new point2D( 100, 160); tiles[1][1] = new point2D( 160, 160); tiles[1][2] = new point2D( 220, 160); tiles[2][0] = new point2D( 100, 220); […]

如何看待高等量瓷砖重叠的玩家?

我正在做一个基于PHP,MySQL和Javascript的浏览器游戏。 它有一个等角的世界,玩家可以移动并看到其他玩家/ NPC。 但是,如果前景中的一块瓷砖如此之高以至于它与后面的瓷砖重叠(如建筑物或一组树木等),那么如何接近重叠的玩家呢? 我不希望玩家能够“躲”在高瓦后面,这样其他玩家或角色的角色就不可见。 我想通过“制作一个三明治”来实现透明度,在底部有一个瓷砖层,然后是玩家,然后是同一个瓷砖层,但是稍微透明。 但是当我尝试的时候,玩家看起来就像是一个漂浮在空中的鬼王,而玩家的立场并不清楚。 其他游戏(如帝国时代)通过显示重叠字符作为大纲来管理这一点,但据我所知,使用PHP这是非常复杂/ CPU密集型的。 我不知道如何解决这个问题。 有任何想法吗?

为什么在十二进制游戏中转换坐标?

转换坐标的优点是什么?因为你仍然可以绘制出具有正常2D坐标的等距图。