Your events are backwards in CreateObject...
And you need to explicitly pick the matching objects in the other.
Put you input triggers into a Group and disable the group until you are ready for input again.
That's not really the correct way to think of it. X is each record. Y=0 is the name, Y=1 is the score.
The simplest solution is to switch the order of the data. Put the score in Y=0, and name in Y=1. Then sort in X and Reverse X. That will get you what you want.
Gestures are new, so I haven't actually tried them yet, but when I was testing your game, it wasn't always registering the touch (on a desktop), so I switched to what I know.
I use On touch, and don't separate the secondary events.
Event 95 is checking if ANY highlight objects have MaxUpgrade=3, it is not PICKING that one. Use 'Pick by comparison', instead, to pick that one.
You use At(X,Y) to get a specific value. Array.At(3,0) is referencing X=3, Y=0. To subtract the value at that index:
Array.Set at XY, where X=3, Y=0, Value = Array.At(3,0)-1
Yes.
The result of a boolean comparison is either True or False, which is the equivalent of 1 or 0.
Compare two values:
varX="A" | varX="B" | varX="C"
Equal to
1
No: varX="A" | varX="B" | varX="C"
Look at LiteTween.
Modulus
width = ViewportRight(layer) - ViewportLeft(layer)
height = ViewportBottom(layer) - ViewportTop(layer)
You can't rely on top and left being 0, in all configurations.
Develop games in your browser. Powerful, performant & highly capable.
Probably a picking issue. Can you post a CAPX for people to look at? If you can't post/upload yet you can use Dropbox and just add a few spaces in the address so the forum doesn't block it.