-- Shoot the cue ball, using a visible force vector
local function cueShot( event )
local t = event.target
local phase = event.phase
if "began" == phase then
display.getCurrentStage():setFocus( t )
t.isFocus = true
-- Stop current cueball motion, if any
t:setLinearVelocity( 0, 0 )
t.angularVelocity = 0
target.x = t.x
target.y = t.y
startRotation = function()
target.rotation = target.rotation + 1
end
Runtime:addEventListener( "enterFrame", startRotation )
local showTarget = transition.to( target, { alpha=0.4, xScale=0.2, yScale=0.2, time=200 } )
myLine = nil
elseif t.isFocus then
if "moved" == phase then
if ( myLine ) then
myLine.parent:remove( myLine ) -- erase previous line, if any
end
myLine = display.newLine( t.x,t.y, event.x,event.y )
myLine:setColor( 255, 255, 255, 50 )
myLine.width = 8
elseif "ended" == phase or "cancelled" == phase then
display.getCurrentStage():setFocus( nil )
t.isFocus = false
local stopRotation = function()
Runtime:removeEventListener( "enterFrame", startRotation )
end
local hideTarget = transition.to( target, { alpha=0, xScale=1.0, yScale=1.0, time=200, onComplete=stopRotation } )
if ( myLine ) then
myLine.parent:remove( myLine )
end
-- Strike the ball!
t:applyForce( ( event.x - t.x ), ( event.y - t.y ), t.x, t.y )
audio.play(hitsound)
end
end
-- Stop further propagation of touch event
return true
end
Everytime you hit the “cueball”, “target”(an image that spins"), spins + 1. This gives it the rotation that you see in the simple pool. But over time if you keep constantly clicking the “cueball” the “target” spins faster. So after you hit it 10 or so times, you can see a huge diffrence in the speed of the rotation. This is causing problems with director. Any ideas to help? [import]uid: 24708 topic_id: 17474 reply_id: 66342[/import]