不幸的是,我一直使用的simplex / perlin噪声生成器非常臃肿且基于java,转移到c / obj-c会很痛苦。我正在寻找在iOS版游戏中使用的更好的课程,但我有一个奇怪的问题。
我的代码循环遍历2d背景的每个“tile” - 它应该计算每个tile的噪声值。在我的java实现中,它工作正常。
但是,每次运行代码时,它似乎在第一次命中断点时打印一个正确的值,但从那时起只返回零:
for (double x = 0; x < 2; x++){
for (double y = 0; y < 2; y++){
double tileNoise = PerlinNoise2D(x,y,2,2,1);
}
}
我尝试了两种不同的实现,目前是c perlin library。
断点第一次显示1.88858049852505e-308
之类的值,但是当我继续执行时,所有后续断点都显示为“0”。
我错过了什么?
答案 0 :(得分:1)
对于整数位置,Perlin噪声定义为零。尝试旋转,缩放或翻译你的空间,看看会发生什么:
double u = 0.1;
double v = 0.1;
for (double x = 0; x < 2; x++){
for (double y = 0; y < 2; y++){
double tileNoise = PerlinNoise2D(x+u,y+v,2,2,1);
}
}