2013-02-12 25 views
3

加入解決增加 '' physics.addBody'本地imgpath盧阿

if (temp.imgpath == "badcloud.png") then 
    physics.addBody(randomcloud, "static", { density=.1, bounce=.1, friction=.2, radius=45 }) 
end 

======================== ================================================== ==

我想補充一個physics.addBody分享幫助所以它可以與Runtime:addEventListener("collision", onCollision)互動,但如果我這樣做:

local cloud4 = {} 
physics.addBody(cloud4, "static", {densit=.1, bounce=0.1, friction=.2, radius=45}) 
cloud4.imgpath = "badcloud.png"; 
cloud4.movementSpeed = 18000; 
table.insert(cloudTable, cloud4); 

我得到一個錯誤的參數錯誤,我該如何解決這個問題?

function initcloud() 
    local cloud1 = {} 
    cloud1.imgpath = "cloud1.png"; --Set Image Path for cloud 
    cloud1.movementSpeed = 10000; --Determines the movement speed of cloud 
    table.insert(cloudTable, cloud1); --Insert cloud into cloudTable 

    local cloud2 = {} 
    cloud2.imgpath = "cloud2.png"; 
    cloud2.movementSpeed = 12000; 
    table.insert(cloudTable, cloud2);    

    local cloud3 = {} 
    cloud3.imgpath = "cloud3.png"; 
    cloud3.movementSpeed = 14000; 
    table.insert(cloudTable, cloud3); 

    local cloud4 = {} 
    cloud4.imgpath = "badcloud.png"; 
    cloud4.movementSpeed = 18000; 
    table.insert(cloudTable, cloud4); 

    local cloud5 = {} 
    cloud5.imgpath = "cloud5.png"; 
    cloud5.movementSpeed = 21000; 
    table.insert(cloudTable, cloud5); 
end --END initcloud() 

的完整代碼

function createClouds() 
function initcloud() 
    local cloud1 = {} 
    cloud1.imgpath = "cloud1.png"; --Set Image Path for cloud 
    cloud1.movementSpeed = 10000; --Determines the movement speed of cloud 
    table.insert(cloudTable, cloud1); --Insert cloud into cloudTable 

    local cloud2 = {} 
    cloud2.imgpath = "cloud2.png"; 
    cloud2.movementSpeed = 12000; 
    table.insert(cloudTable, cloud2);    

    local cloud3 = {} 
    cloud3.imgpath = "cloud3.png"; 
    cloud3.movementSpeed = 14000; 
    table.insert(cloudTable, cloud3); 

    local cloud4 = {} 
    cloud4.imgpath = "badcloud.png"; 
    cloud4.movementSpeed = 18000; 
    table.insert(cloudTable, cloud4); 

    local cloud5 = {} 
    cloud5.imgpath = "cloud5.png"; 
    cloud5.movementSpeed = 21000; 
    table.insert(cloudTable, cloud5); 


end --END initcloud() 

function getRandomcloud() 
local temp = cloudTable[math.random(1, #cloudTable)] -- Get a random cloud from cloudTable 
local randomcloud = display.newImage(temp.imgpath); 
randomcloud.myName = "cloud"; 
randomcloud.movementSpeed = temp.movementSpeed; -- set the cloud cloudting point 
randomcloud.x = math.random(10, _W); 
randomcloud.y = -35; 
randomcloud.rotation = math.random(0, 20); -- move the cloud 
cloudMove = transition.to(randomcloud, { 
time = randomcloud.movementSpeed, 
y = 500, 
onComplete = function(self) 
self.parent:remove(self); 
self = nil; 
end 
}); 
end 

function cloudtGame() 
    cloudTimer1 = timer.performWithDelay(3000,getRandomcloud, 5) 
    cloudTimer2 = timer.performWithDelay(2000,getRandomcloud, 0) 
    cloudTimer3 = timer.performWithDelay(2400,getRandomcloud, 0)  
    cloudTimer4 = timer.performWithDelay(7000,getRandomcloud, 0)  
    cloudTimer5 = timer.performWithDelay(9000,getRandomcloud, 0)   
end--END cloudtGame() 
initcloud() 
cloudtGame() 
end 

回答

0

physics.addBody(cloud4, "static", {densit=.1, bounce=0.1, friction=.2, radius=45}) 

中有一個錯字,導致錯誤。它應該是density而不是densit。就像這樣:

physics.addBody(cloud4, "static", { density = .1, bounce = 0.1, friction = .2, radius = 45 }) 
+0

糾正 '密度' – 2013-02-12 11:50:39

+0

@kevinver什麼錯誤後仍然得到錯誤解決了嗎?請把產生的錯誤。 – hjpotter92 2013-02-12 11:51:23

+0

錯誤的參數#-1到'addBody' – 2013-02-12 11:55:21

0

加入

if (temp.imgpath == "badcloud.png") then 
    physics.addBody(randomcloud, "static", { density=.1, bounce=.1, friction=.2, radius=45 }) 
end