Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 制作3D网格的最佳方法?_Java_Multidimensional Array_Landscape - Fatal编程技术网

Java 制作3D网格的最佳方法?

Java 制作3D网格的最佳方法?,java,multidimensional-array,landscape,Java,Multidimensional Array,Landscape,创建三维网格的最佳方法是什么 在java中,我正在制作一个游戏,它发生在一个有点像Minecraft风格的世界中。我需要一个3D网格来绘制每个区块,但我仍然有点困惑,不知道应该如何将其全部放进去 我正在使用LWJGL,希望它能让我的生活变得更加轻松。但是如果有更好的东西可以使用,请告诉我 链接到一个可下载的基于minecraft world的教程将非常棒!我还没有找到关于这个主题的任何教程(或下载这些教程) 世界基本理念: 生成一个1024 x 1024 x 128的三维网格 不同的地块类型,

创建三维网格的最佳方法是什么

在java中,我正在制作一个游戏,它发生在一个有点像Minecraft风格的世界中。我需要一个3D网格来绘制每个区块,但我仍然有点困惑,不知道应该如何将其全部放进去

我正在使用LWJGL,希望它能让我的生活变得更加轻松。但是如果有更好的东西可以使用,请告诉我

链接到一个可下载的基于minecraft world的教程将非常棒!我还没有找到关于这个主题的任何教程(或下载这些教程)

世界基本理念:

  • 生成一个1024 x 1024 x 128的三维网格
  • 不同的地块类型,具有灵活的土地顶部/底部(因此土地更“真实”)
  • 基于区块的土地系统,可分为16 x 16 x 128区块

    • 这取决于你想做什么。。。您想在哪里应用它?就我个人而言,我相当喜欢数组。这通常是最便宜、最直接的解决方案

      复杂的数据结构通常只在您看到未来的变化时才需要(例如,数据结构将发生变化等)


      您能否提供有关应用程序的更多详细信息?

      如果您希望更改大小或在此网格上实现复杂的逻辑,最好基于列表创建您自己的数据结构。但在大多数情况下(仅保存数据),普通数组是合适的。

      我会创建一个“块”对象,表示空间中的坐标(x,y,z),块可以有“textureTop”和“textureBottom”等成员,以及其他任何需要绘制的对象

      然后,因为你的空间看起来是固定大小的,所以只需将它们做成一个3D阵列

      Block [] [] [] space = new Block [1024][1024][128];
      

      然后,如果您想创建块,只需定义另一个对象块,它基本上是一个16x16x128块数组。

      那么它最终会是一个3深数组吗?(对于x、y和z值?)