O'Reilly logo

Getting Started with .NET Gadgeteer by Simon Monk

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required