這是我的方法來找到我的世界的自由空間。世界由可碰撞和不可碰撞的塊組成。我不希望暴徒在可以碰撞的方塊中產卵,因爲他們不能移動。但是,這種方法無法正常工作,我該如何改進它以使代碼實際上在自由空間中產生所有小怪?更高效的羣體產卵算法
所有的塊都是隨機生成的。
public int findSpawnX(int limit) {
int xx = random.nextInt(limit)/16; //find a random x coordinate and divide it by 16 to snap it to a block.
if (getBlock(xx, 0).solid()) findSpawnX(limit); //check if xx is at a solid block, if so then redo the method.
return xx; // if it is not solid then return the coordinate.
}
此代碼有效。但是有些怪物會以塊狀產生。我希望所有隨機生成的小怪都不會在實體模塊中產生。
您是否擔心效率或效果?在我看來,我們應該弄清楚它爲什麼不起作用,而且我們幾乎肯定沒有足夠的信息。 – ChrisCM
原始代碼有效。然而,在一個固體塊中產生1或2個怪物通常是個例外。我想讓這100%準確,因爲所有的地形都是隨機生成的。 – Jadd23
看看我的編輯。問題是,儘管遞歸,你仍然返回原來的xx值。我的編輯從基本的功能角度來修正你的代碼。簡單地留下效率問題。 – ChrisCM