Replying here after I was tagged in that old thread. Not sure how helpful this'll be but this is how I do it.
- Alpha works kind-of like a compass, it's the rotation along the Z-axis of the phone. But it's not absolute, like a real compass. It resets its heading every time the app starts up. So 0 will always mean "the phone is pointing forwards". 180 means "the phone is pointing backwards."
- Beta is the front/back swivel of the phone. A negative value means that the phone is tilted forwards. A positive value means that it's tilted backwards.
- Gamma is the side-to-side swivel of the phone. A negative value means that the phone is tilted to the left. A positive value means that it's tilted to the right.
Using these values you can determine if a phone is upside-down (gamma -180), lying face-up (gamma 0), is held upright (beta 90), and so on.
Easiest example is using a tilt forwards/backwards/left/right mechanism to control a character on the screen. To do this, you want to figure out the angle that the character will move towards. Easiest way to do this is to use Construct's angle expression Angle(X1,Y1,X2,Y2) to determine the angle from the starting point to where you want to go. In our case, the starting point will always be 0,0. You're not moving a character from an actual place on the screen, just trying to figure out which angle it should face. Its position isn't important.
Our expression therefore becomes angle(0,0,touch.Gamma,touch.Beta). You use the gamma value as the X, and the beta value as the Y. Doing it this way you're plotting a position on an arbitrary cartesian plane based on the values you receive from the touch object.
Super important: find an initial offset when you start your app, and add/subtract it from your touch values when using them. If the player starts a game with their phone slightly tilted up, or entirely upside-down (maybe they're lying down), you need to take this into account. The touch values assume a phone is lying completely flat, and the whole thing is very twitchy. Best not to use the touch values directly for player input: smooth them out a bit first.