2014-03-12 48 views
0

我想在屏幕上顯示隨機物體我有一個球,但生成的物體與球重疊我想獲得球的協調,並根據只能移動隨機對象。我想下面的代碼片段。在電暈中顯示隨機物體而不與屏幕上的其他物體重疊

local ballX=ball.x 
local ballY=ball.y 

local xPos=generate_random(40,600) 
local yPos=generate_random(40,920) 
if(xPos>=ballX and xPos<=ballX) or (yPos>=ballY and yPos<=ballY) then 
    objplace.x=xPos+150 
    objplace.y=yPos+150 
else 
    objplace.x=xPos 
    objplace.y=yPos 
end 
+0

這是否有幫助:http://stackoverflow.com/questions/21857322/finding-free -space式方對產卵敵人/ 21859304#21859304 – Schollii

回答

1

你是不是檢查,如果球重疊,你只是檢查,如果其中心位於同一位置,如果這樣你就轉向他們。你需要考慮球的整體面積(因此它的半徑)。爲了使這個完美,你將不得不使用一些代數/幾何(因爲半徑可以在不同的角度被看作一個直角三角形,其中xPos將是基礎長度,yPos將是側面高度)。

要簡單(不完美)將是這樣的:

while((xPos>=(ballX + ballRadius) || xPos<=(ballX - ballRadius)) || 
    (yPos>=(ballY + ballRadius) || yPos<=(ballY - ballRadius))){ 
    xPos = xPos + 150; 
    yPos = yPos + 150; 
} 
objplace.x = xPos; 
objplace.y = yPos; 

再次做到這一點非常糟糕,對錯誤檢查結束一點,那裏是應該考慮到更爲參數使事情完美。如果你真的需要我通過它,我可以,但這可能是一個很好的項目來磨練你的邏輯推理能力:)

相關問題