Is there MultiTouch?

Hi!
I am making a 2 player pong game in order to get to grips with codea, I’m trying to get user input on the touch screen, but looking online and on the codea reference. All I see is that you can get the current touch coordinates and the touch coordinates from the last frame, is there a way to get the coordinates of two separate inputs at the same time(e.g. Two fingers on the touch screen at the same time)?

Thankyou !

Yes. One of the built in examples is called multi touch…

I posted a more complex example recently in this thread https://codea.io/talk/discussion/8590/joystick-code-buttons#latest

@rydergaz Here’s a simple example of moving 2 paddles. Slide your fingers in the grey areas.

displayMode(FULLSCREEN)

function setup()
    rectMode(CENTER)
    x1,y1,x2,y2=WIDTH/2,150,WIDTH/2,HEIGHT-150
end

function draw()
    background(40, 40, 50)
    fill(255,255,255,30)
    rect(WIDTH/2,70,WIDTH,140)
    rect(WIDTH/2,HEIGHT-70,WIDTH,140)
    fill(255)
    rect(x1,y1,100,20)
    rect(x2,y2,100,20)
end

function touched(t)
    if t.state==MOVING then
        if t.y<150 then
            x1=x1+t.deltaX
        elseif t.y>HEIGHT-150 then
            x2=x2+t.deltaX
        end
    end
end

Thanks!
@dave1707 is it best to make the touch functions inside each of the classes for the different objects in the game ?

@rydergaz If you want to use classes, then you would use the touch function inside the class. There is no correct way to program because it all depends on what you want to do and how you want to do it.

@rydergaz Yes, there is a way that you can get coordinates on the same time. Here is an example:

function setup()
    print("This example tracks multiple touches and colors them based on their ID")
    
    -- keep track of our touches in this table
    touches = {}
end

-- This function gets called whenever a touch
--  begins or changes state
function touched(touch)
    if touch.state == ENDED then
        -- When any touch ends, remove it from
        --  our table
        touches[touch.id] = nil
    else
        -- If the touch is in any other state 
        --  (such as BEGAN) we add it to our
        --  table
        touches[touch.id] = touch
    end
end

function draw()
    background(0, 0, 0, 255)
    
    for k,touch in pairs(touches) do

        -- Use the touch id as the random seed
        math.randomseed(touch.id)

        -- This ensures the same fill color is used for the same id
        fill(math.random(255),math.random(255),math.random(255))
        
        -- Draw ellipse at touch position
        ellipse(touch.x, touch.y, 100, 100)
        
        -- Draw the id on the circle
        fill(255)
        text(touch.id, touch.x, touch.y+30)
    end
end

Sorry you need to re-ident the code. I cant post code comments

@Silvio2400 Put ~~~ on a line before and after your code for it to format correctly.

Okay Thanks!