2015-10-15 99 views
0

我在Java上是一个初学者,并根据我阅读,观看,在线收听创建了一个简单的游戏。只是一个简单的游戏,可以帮助我巩固技术和语法。如何搜索并返回多暗数组中的特定值?

它具有的功能之一是随机(有点)地形生成。这是一个2D飞行游戏,我所做的是创建一个int [] [],绘制一条线。它使用for循环遍历数组,然后使用随机数生成器来确定下一个“块”是更高,更低还是处于相同级别的像素。

int a = lengthOfLand; 
    int b = startHeightOfLand; 
    int[][] land = new int[a][500]; 

    land[0][b] = 1; 
    int y = b; 
    for(x = 1; x < a; x++){ 
     switch(getRandomNumber(3)){ 
      case 0: land[x][y - 1] = 1; 
       y--; 
      case 1: land[x][y] = 1; 
      case 2: land[x][y + 1] = 1; 
       y++; 

(我敢肯定有随机地形生成一百万更好的办法,但我刚开始交手的一切,学习新技术,所以这种方式对我的作品)。

以上都是在我的初始化类中调用的。在游戏的渲染区域,我们取数组并说出值是否为1,在提供的x,y值处绘制此图像。显然,数组中的所有其他值= 0,所以这些不会被渲染。所以我看到的是,每次我运行游戏时,都会出现一些起伏不平,所有产生(半),随机和(最重要)不同的线条。基本上,我使用这个多暗阵列来绘制屏幕上的每个像素。 = 1的值被渲染为土地的顶部。完善。

但是,我想要做的是启动一个单独的阵列,将这块土地留在这个地方。所以我需要能够从地面阵列中抽取我们结束的高度(每次游戏运行时都会因为随机元素而有所不同)。基本上,当y = 1和x = a时,我需要找出y的指数。因此,搜索并返回多dim数组的某个“列”中的特定值。

我该怎么做?我假设我可以使用Array Class中的一个方法,但作为初学者,我并不知道该在哪里寻找以及如何处理它。

+0

数组是地狱。在大多数情况下,你想实现一个自定义类,它完全符合你的需求 –

回答

-2

使用嵌套了:)这样

for (x = 0; x < a; x++) { 
     for (i = 0; i < 500; i++) { 
      land[x][i]; 
      if (your condition here){ 
      } 
     } 
    } 
+0

这应该是一个评论。 – Midnightas

相关问题