Using the Joystick module

The joystick (shown in Figure 3-4)is a two-axis joystick combined with a switch, which is activated when the joystick button itself is pressed. We will not be using the joystick’s button; we will just use the readings of the joystick on the x axis.

Joystick

Figure 3-4. Joystick

At any time, your program can ask for the position of the joystick’s position by calling GetJoystickPostion on the joystick variable. This call returns an instance of Joystick.Position. As in the case of this game, we are only interested in the “x” position of the joystick, we use the following:

double x = joystick.GetJoystickPostion().X;

This returns a number between 0.0 and 1.0, where 0.0 is far left, 1.0 far right and, yes, you guessed it, 0.5 is in the middle.

In this game, we will not use the absolute position of the joystick to set the position of the tongue but rather determine if the joystick is towards the left, towards the right, or in the middle.

The method to do this is as follows:

void JoystickTimer_Tick(GT.Timer timer)
{
    double x = joystick.GetJoystickPostion().X;
    if (x < 0.3 && tongueLeftPosition > 0)
    {
        tongueLeftPosition -= 5;
    }
    else if (x > 0.7 && tongueLeftPosition < 320 - tongueWidth)
    {
        tongueLeftPosition += 5;
    }
    Canvas.SetLeft(tongue, tongueLeftPosition);
    CheckForLanding();
}

We just test to see if the x position is less than 0.3 and if it is, assume that we want to move left. Similarly, ...

Get Getting Started with .NET Gadgeteer now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.