当我到达x的末尾时,我正在生成我的世界(随机,无限和2d),其中x是由y形成的部分。如果在第一节中我有丘陵,我怎么能这样做,以便在第二节那些丘陵将继续?是否有某种方式可以让这种情况发生?Procedural World Generation
因此,这将是这个样子
1 =产生土地
2 =非产生的土地,将在两个那些填补
我得到这个现在:
有什么办法可以让这个流程更好?
当我到达x的末尾时,我正在生成我的世界(随机,无限和2d),其中x是由y形成的部分。如果在第一节中我有丘陵,我怎么能这样做,以便在第二节那些丘陵将继续?是否有某种方式可以让这种情况发生?Procedural World Generation
因此,这将是这个样子
1 =产生土地
2 =非产生的土地,将在两个那些填补
我得到这个现在:
有什么办法可以让这个流程更好?
这似乎只是一个算法问题。你的生成机制需要一个起点。在最初的调用中,它将是0,在随后的调用中它将是前一个“块”的结束位置。
如果我正在这样做,我可能会使用某种分布 - 例如使用某种分布来创建下一个点的加号,例如0-3。 10%的时间是+/1 3,25%的时间是+/- 2,25%的时间是0和40%的时间是+/- 1。
如果我理解正确的问题,这里是一个解决方案:
如果产生的山丘之间的增量(差异),并在一个固定值上限(这样的变化是从来没有过大),那么你可以随身携带当生成新的一个山时,从上一节的最后一个山的价值,并将第一个随机生成的(新节的)三角洲应用到结转山的大小。
如果你'按顺序生成这些“山丘”,我会创建一个访问器方法,为所述山丘的延续提供一个值,以开始下一部分。看起来你正在为山坡创建一个随机的高度,当在一个单独的部分中绘制一座山时,它已经被某个值限制了。使用这种新的访问器方法扩展该功能。
我对此有一个可能的实现。
public class DrawHillSection {
private int index;
private int x[50];
public void drawHillSection() {
for(int i = 0; i < 50; i++) {
if (i == 0) {
getPreviousHillSectionHeight(index - 1)
}
else {
...
// Your current implementation to create random
// height with some delta-y limit.
...
}
}
}
public void getPreviousHillSectionHeight(int index)
{
return (x[49].height);
}
}
我看到你的山从上到下继续。你是什么意思,他们不连续? – Adrian 2012-03-26 02:53:27
翻转效果是由于截图功能中的图像镜像,问题在于悬崖截断 – blazingkin 2012-03-26 03:43:13