2013-07-08 3 views
0

Привет, у меня есть эта маленькая функция появления, которая бросает облака с неба.лучший способ изменить скорость падения

local randomBad1 = function() 
    local badC1 = display.newImage("BCloud1.png") 
    badC1.x = math.random (0, 450); badC1.y = -50 
    physics.addBody(badC1, { density=.1, bounce=0.1, friction=.2, radius=45, filter=badc1CollisionFilter }) 
    badC1.name = "BCloud1"  
    badC1.isSensor = true 
    badC1.rotation = math.random(-20,20) -- Rotate the object 
    badC1.gravityScale = 0.40 
    local cleanup 
    cleanup = function() 
     if badC1 then 
      if badC1.y >600 then 
       badC1:removeSelf() 
       badC1 = nil 
      end 
     end 
    end 
    Runtime:addEventListener("enterFrame", cleanup) 
end 
randomBadC1 = timer.performWithDelay(3000, randomBad1, 0) 

Так мне было интересно, если есть лучший способ изменить faling вниз скорость вместо «gravityScale»?

Kevin-

ответ

2

вы можете использовать applyForce сделать это к облакам. Я добавил несколько строк в коде следующим образом:

local randomBad1 = function() 
    local badC1 = display.newImage("BCloud1.png") 
    badC1.x = math.random (0, 450); badC1.y = 50-- -50 
    physics.addBody(badC1, { density=.1, bounce=0.1, friction=.2, radius=45, filter=badc1CollisionFilter }) 
    badC1.name = "BCloud1"  
    badC1.isSensor = true 
    badC1.rotation = math.random(-20,20) -- Rotate the object 

    ------------------------------------------------------------------- 
      -- These lines will do it for you -- 
    ------------------------------------------------------------------- 
    yFor = math.random(1000) -- choosing a random y directional Force 
    print("yFor = "..yFor) 
    badC1:applyForce(0, yFor, badC1.x, badC1.y) -- apply the force to your cloud 
    ------------------------------------------------------------------- 

    badC1.gravityScale = 0.40 
    local cleanup 
    cleanup = function() 
    if badC1 then 
     if badC1.y >600 then 
      badC1:removeSelf() 
      badC1 = nil 
     end 
    end 
end 
Runtime:addEventListener("enterFrame", cleanup) 
end 
randomBadC1 = timer.performWithDelay(3000, randomBad1, 0) 

Для получения дополнительной информации, Вы можете обратиться: Corona Physics Body Properties.

Держите кодирование ............ :)

+0

спасибо krs: D это работает для меня! –

0

Если облака являются единственными объектами падения, я бы полностью изменить гравитацию.

physics.setGravity(gx, gy) 
+0

У меня несколько объектов падают, и мне нравится менять скорость индивидуально –

Смежные вопросы