java - 在内存中存储等距网格的最佳方法是什么?

标签 java isometric

作为一次学习经历,我正在尝试使用 Java+ObenGL 制作一款回合制策略游戏,我从正方形作为地形图 block 开始。现在我决定我宁愿有一个等距视角,从那以后我一直在与自己争论如何在内存中表示这些图 block 的坐标。

我看到两种选择:

  1. 二维数组,其中 X 轴和 Y 轴穿过菱形的顶点,从而在渲染的网格上形成一条直线。

  2. 二维数组,其中 X 轴和 Y 轴跟随单元格的侧面(就像使用普通矩形网格所做的那样),而不是顶点,从而在渲染的网格中产生对角轴。

在这些情况下通常会做什么?这个比那个好吗?有更好的方法让我失踪吗?

最佳答案

显示模式和数据是两个不同的东西。如果每个单元格中都有值,则二维数组就可以了。对于显示,找出当前可见的网格部分并相应地访问数组。通过简单的二维自顶向下 View ,您可以在网格和阵列之间直接映射。从另一个角度来看,你需要做一些预测。

关于java - 在内存中存储等距网格的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15006581/

相关文章:

actionscript-3 - As3Iso : Why use a secondary display list?

javascript - 等距屏幕映射

c - 等距瓷砖拾取/选择算法

java - 使用代码加载tomcat

java - Hibernate Criteria with Projections.groupProperty 无法返回完整的 hibernate 对象 (ClassCastException)

java - 如何删除 Spring Data 预测的 JSON 响应中的额外字段 'decoratedClass'?

构建器模式中的 java 类型推断

java - 使用不同的参数循环调用每个类的 update() 方法

javascript - 如何使用canvas在javascript上制作一个游戏,使 Sprite 看起来在跳跃

unity3d - 当成为新父对象的父对象时,如何自由地(在内部)移动子对象?