четверг, 10 февраля 2011 г.

NXC: кнопочная интерактивность

Довольно часто те, кто начинает знакомится с языком NXC, сперва обращаются к широкоизвестному NXC Tutorial (на русском), написанному Daniele Benedettelli. Это довольно хорошее для первого знакомства с этим языком программирования пособие и дает представление о многих базовых возможностях языка.
Но тем не менее, некоторые широкоиспользуемые базовые области, к сожалению, пропущены. Например, цветовой сенсор и работа с кнопками NXT блока. И если работа в NXC с цветовым сенсором была уже освещена ранее, то пора закрыть пробел и во взаимодействии с кнопками.

task main ()
{
    //Вторая переменная, чтобы отслеживать изменения первой
    int count = 0, oldcount = -1;

    //Флаг, отслеживающий нажатие центроальной кнопки
    bool flExit = false;
    
    TextOut(0, LCD_LINE2, "Press");
    TextOut(0, LCD_LINE3, "<, > or Enter");
    while (!flExit)
    {
        //Если значение счетчика поменялось - вывести на экран
        if (count != oldcount)
        {
            oldcount = count;
            NumOut(10, LCD_LINE4, count);
        }
        
        //Нажата ли правая кнопка - увеличить счетчик
        if (ButtonPressed(BTNRIGHT, true))
        {
            if (count < 7)
                count++;
        }
        //Нажата ли левая кнопка - уменьшить счетчик
        else if (ButtonPressed(BTNLEFT, true))
        {
            if (count > 0)
                count--;
        }
        //Нажата ли центральная кнопка - выйти из цикла
        else if (ButtonPressed(BTNCENTER, true))
            flExit = true;

        //Небольшая пауза - короткое нажатие различается от долгого
        Wait(200);
    }
}

Комментариев нет:

Отправить комментарий

Related Posts Plugin for WordPress, Blogger...