#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

# How can I identify a tap?

Posts: 3

For a little side project I'm working on a small tapper game to test out my programming skills. The only problem is that you can't identify a tap (not a beginning of a tap, or end) so you can just press down and earn points like that. Could anyone help?

Tagged:

• Mod
edited July 2020 Posts: 8,737

@Ezekia To identify a continuous tap, when a tap begins, set a variable to true. When the tap ends, set that variable to false. Then in the draw function, if the variable is true, the tap is still happening.

Here’s what I think you’re after.

``````displayMode(FULLSCREEN)

function setup()
pressed=false
fill(255)
end

function draw()
background(0)
if not pressed then
text("not pressed",WIDTH/2,HEIGHT/2)
else
text("pressing",WIDTH/2,HEIGHT/2)
end
end

function touched(t)
if t.state==BEGAN then
pressed=true
end
if t.state==ENDED then
pressed=false
end
end
``````
• edited July 2020 Posts: 801

And if you want to score only one point per tap, don't score unless you've seen it go back to false. this may require another variable.

• Posts: 3

Okay, I'll give it a shot.

• edited August 2020 Posts: 509

The `touch` object has a field called `tapCount` which might be worth experimenting with to see if that will help you. Other things that are worth considering is to say that a tap occurs if the touch ended within, say, half a second of when it started and didn't move in between starting and ending.

``````function touched(t)
if t.state == BEGAN then
maybeTap = true
startTime = ElaspedTime
end
if t.state == MOVING then
maybeTap = false
end
if t.state == ENDED then
if maybeTap and ElapsedTime < startTime + .5 then
isTap = true
else
isTap = false
end
end
end
``````

If you want to handle multiple touches then you'll need to create a table of touches and store a copy of this data in the table for each touch. I do this in my touch handler class, but that might be overkill for your situation. In case it might be of some use, though, you can find it on github at https://github.com/loopspace/Codea-Library-Base/blob/master/Touch.lua