2013-07-10 27 views
0

我在電暈中使用以下代碼在隨機位置創建隨機圖像 每次我運行我的代碼,但是當我運行代碼時,我得到所有隨機選擇 圖像在屏幕上的同一位置在電暈sdk隨機位置創建隨機圖像

這裏是我的代碼,請大家給建議..謝謝提前

----在創建場景此代碼是地方

letterHolder = {} 
numOfImages = 10 

for i=1,numOfImages do 
    letterHolder[i] = display.newImageRect("images/myImage.png", 20, 20) 
    letterHolder[i].x = math.random(0, display.contentWidth) 
    letterHolder[i].y = math.random(0, display.contentHeight) 
end 
+3

我試過你的代碼,它似乎確定,他們隨機在不同的位置,你可以指定你的問題更多? – NaviRamyle

+2

這是你粘貼的整個代碼嗎?當我搞亂隨機種子時,我遇到了類似的問題。隨機種子的問題是,對於相同的種子,您將獲得相同的一組隨機數。無論如何..如果這是整個事情嘗試在for循環之前添加math.randomseed(os.time())。確保您不會每秒更多次地調用此代碼! – Krystian

回答

0

剛剛嘗試以下會見HOD。這可能會幫助你:

local letterHolder = {} 
local numOfImages = 10 
local xPosArray = {} 
local yPosArray = {} 
local randX,randY = 0,0 
local xExists,yExists = 0,0 



local function positionImages(i) 
    randX = math.random(display.contentWidth) 
    randY = math.random(display.contentHeight) 

    if(i==1)then 
    xPosArray[i] = randX 
    yPosArray[i] = randY 
    else 
    xExists = table.indexOf(xPosArray, randX) 
    yExists = table.indexOf(yPosArray, randY) 
    if(xExists~=nil and yExists~=nil and xExists==yExists)then 
     print("Place already occuped") 
     positionImages(i) 
    else 
     print("Can place here") 
     xPosArray[i] = randX 
     yPosArray[i] = randY 
    end 
    end 
end 

for i=1,numOfImages do 
    letterHolder[i] = display.newImageRect("images/myImage.png", 20, 20) 
    positionImages(i) 
end