Simple pool flaw? help

I have been using the simple pool code, and i might have discovered a flaw. As you continue to click on the ball the rotation of the green spinner around the ball continues to go faster. Every time you click on it it speeds up alittle more. This causes problems when you use director.

Does anyone know of a simple solution to fix this problem?

Not sure exactly what you mean, but I think you may have forgotten to remove an event listener....Post some code and I will take a look.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
        -- 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

this works perfectly for me...Are you using a director...You can send your project here (kurtbringsjord@swelloapplications.com) If you'd like.

I think i found why the director wasnt working, but is there a way to keep the spinning constant every click you do?

You are saying that the spinning thing in pool plus is spinning faster and faster every time you click it...Although when I test the Pool Plus Game, it does not.

I guess this could be a problem!

I tried two links

https://github.com/ansca/Simple-Pool

and the simple pool on this

http://developer.anscamobile.com/sample-code/platform-specific

If you click the ball about 20 times without hitting the pockets the ball goes really fast, maybe its just me!

Weird, works well for me... What are you trying to do with it?

Im just trying it with the corona simulator, Version 2011.591 (2011.8.2).

views:1388 update:2011/11/10 9:30:09
corona forums © 2003-2011