0
我正在爲Java視頻遊戲開發Perlin噪聲生成器。問題是,每當我運行我的發生器時,我得到的唯一輸出就是0.由於我是Perlin Noise的新手,我不確定要嘗試什麼,因此除了對數字進行調整而沒有任何改變之外,我沒有嘗試過任何其他的東西。Perlin僅生成噪音0
這裏是我的柏林噪聲代碼:
package PerlinGen;
import java.util.*;
public class PerlinNoiseGenerator {
private Random random;
private int octaves, x, y;
private int[][][] heightMap;
public PerlinNoiseGenerator(int octaves, int x, int y, long seed){
heightMap = new int[octaves][x][y];
this.octaves = octaves;
this.x = x;
this.y = y;
random = new Random(seed);
}
public int[][] generate(int ic){
for(int co=1;co<=octaves;co++){
for(int cx=0;x<x;x+=Math.pow(2, co)){
for(int cy=0;y<y;y+=Math.pow(2, co)){
square(co, cx, cy, (int) (cx + Math.pow(2, co) - 1), (int) (cy + Math.pow(2, co) - 1), random.nextInt(co));
}
}
for(int ci=0;ci<ic;ci++){
for(int cx=1;x<(x - 1);x++){
for(int cy=1;y<(y - 1);y++){
heightMap[co][cx][cy] = (
heightMap[co][cx][cy] +
heightMap[co][cx + 1][cy] +
heightMap[co][cx - 1][cy] +
heightMap[co][cx][cy + 1] +
heightMap[co][cx][cy - 1]
)/5;
}
}
}
}
int[][] perlinNoise = new int[x][y];
for(int cx=1;x<(x - 1);x++){
for(int cy=1;y<(y - 1);y++){
perlinNoise[cx][cy] = 0;
for(int co=1;co<=octaves;co++){
perlinNoise[cx][cy] += heightMap[co][cx][cy];
}
}
}
return perlinNoise;
}
private void square(int o, int sx, int sy, int ex, int ey, int v){
for(int x=sx;x<ex;x++){
for(int y=sy;y<ey;y++){
heightMap[o][x][y] = v;
}
}
}
}
謝謝你在前進的人誰幫助我:)!