physics - applyForce not working

local drop = display.newImageRect( "images/raindrop.png", 3, 9 );  
drop.x = rnd(screenX, screenWidth);  
drop.y = screenY + 20;  
table.insert ( rainParticles, drop );  
physics.addBody ( drop, "kinematic", {density=1, friction=0, bounce=0});  
drop:applyForce( 0, 50, drop.x, drop.y );  

I’m trying to get the drops to fall downward at a constant speed. The drops appear on the screen but do not move. If I use “dynamic”, they will drop, but seeing the rain accelerate is not realistic. [import]uid: 52127 topic_id: 10704 reply_id: 310704[/import]

“kinematic” physics objects do not respond to gravity so “applyForce” will not work since it applies a temporary amount of gravity in either the X or Y direction to an object. If all you want to do is make an object appear to fall from the top of the screen to the bottom you could just use the “transition.to()” API.
http://developer.anscamobile.com/reference/index/transitionto
[import]uid: 27965 topic_id: 10704 reply_id: 38862[/import]

If this is true, the docs are lacking.

“kinematic objects are affected by forces but not by gravity”

“applyForce() = A function that accepts x,y components of a linear force, applied at a given point with x,y world coordinates.”

Nowhere does it say that “applyForce” is a gravitational force. There are other forces besides gravity. In fact, I think the idea of manually applying a force to an object implies anything BUT gravity.
[import]uid: 52127 topic_id: 10704 reply_id: 38869[/import]

why not just use setLinearVelocity? [import]uid: 48521 topic_id: 10704 reply_id: 38871[/import]

thanks chinmay, I did think of that. I still think the applyForce function is kind of misleading. [import]uid: 52127 topic_id: 10704 reply_id: 38874[/import]