我正在为我的2D游戏创建一个世界生成器,该游戏使用Java中的Diamond-Square算法,并且听说它仅在2 n +1(幂)个数下有效(或至少有效)二)。
用调用生成世界的方法generateWorld(width, height)
,但会产生问题。我希望能够输入一个,如果输入宽度不是width
,该函数将找到最接近的数字,该数字是2的幂。我真的不知道该怎么做,因此非常感谢所有帮助!
总结:如果一个数不是2功率,我想找到最近的号码的那一个,这是二的幂。
您可以向上舍入为2的更高幂(如果已经是2的幂,则不能更改),如下所示:
x = x - 1;
x |= x >> 1;
x |= x >> 2;
x |= x >> 4;
x |= x >> 8;
x |= x >> 16;
return x + 1;
如果不存在下一个更高的2的幂,则输入为0。
另一位候选人只不过是一半。然后取最近的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句