Collision Detection with a moving image

I have an image that I set the origin on and use transition.to to rotate. When I shoot a ball at it, it should be knocked away or bounce back. Instead it acts very strange. Sometimes the ball will bounce back long before it comes in contact with it. Other times it goes right through, while other times it will seem to stick to it and then roll off. I haven’t had problems with other non moving collision so maybe you can help me figure out what I am doing wrong.

To see a video of the crappy collision go here.

Display image:

 local stopper = display.newImage("images/moving\_stopper.png");  
 stopper.xReference = -21; stopper.yReference = 0;  
 stopper.x = 80; stopper.y = 280;   

Physics Body:

 local physics = { data =  
 {   
 ["moving\_stopper"] = {   
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -15, 5 , -14, 4 , -14, 5 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -27, 6 , -15, 5 , -15, 6 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -27, 7 , -27, 6 , -16, 6 , -16, 7 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -28, 5 , -14, -4 , -13, -2 , -13, 1 , -15, 5 , -27, 6 , -28, 6 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -26, -7 , -28, -5 , -28, -7 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -18, -8 , -26, -7 , -26, -8 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -15, -6 , -16, -7 , -15, -7 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -29, -3 , -26, -7 , -18, -8 , -16, -7 , -14, -4 , -28, 5 , -29, 5 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -28, -5 , -29, -3 , -29, -5 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -16, -7 , -18, -8 , -16, -8 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -14, -4 , -15, -6 , -14, -6 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -13, -2 , -14, -4 , -13, -4 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -14, 4 , -13, 1 , -13, 4 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -30, -3 , -29, -3 , -29, 3 , -30, 3 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -18, -9 , -18, -8 , -25, -8 , -25, -9 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -26, -7 , -29, -3 , -28, -5 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -15, 5 , -13, 1 , -14, 4 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -14, -4 , -16, -7 , -15, -6 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -26, 8 , -26, 7 , -17, 7 , -17, 8 }  
 }  
 ,  
 {  
 pe\_fixture\_id = "", density = 2, friction = 0, bounce = 0,   
 filter = { categoryBits = 1, maskBits = 65535, groupIndex = 0 },  
 shape = { -13, -2 , 29, -2 , 29, 1 , -13, 1 }  
 }   
 }  
 } }  

Movement:

if(stopper.reverse == false) then stopper.reverse = true; transition.to(stopper, {rotation = 360, time = 3000, onComplete = moveStopper}); else stopper.reverse = false; transition.to(stopper, {rotation = -360, time = 3000, onComplete = moveStopper}); end [import]uid: 163361 topic_id: 29621 reply_id: 329621[/import]

It seems like I’m having the same problem as this guy:
http://developer.coronalabs.com/forum/2010/10/26/pinball-physics [import]uid: 163361 topic_id: 29621 reply_id: 118900[/import]