SF::Event

В этой теме 17 ответов, 6 участников, последнее обновление Павел Букреев Павел Букреев 8 года/лет, 5 мес. назад.

Просмотр 15 сообщений - с 1 по 15 (из 18 всего)
  • Автор
    Сообщения
  • #1561
    Dallon Avery
    Dallon Avery
    Участник
    Сообщений:21

    Зарегистрирован:
    03.07.2015

    Репутация:5

    Мне нужно сделать так, чтобы по нажатию кнопки включался источник света(opengl), а когда пользователь нажимает на ту же кнопку ещё раз – свет выключался.
    Как сделать так, чтобы по первому нажатию включить, а по повторному выключить итд?

    #1562
    +1
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:582

    Зарегистрирован:
    04.01.2015

    Репутация:106

    примерно в 13 уроке (или где то там) мы выводили свиток с текстом на одну клавишу ТАБ

    #1563
    Dallon Avery
    Dallon Avery
    Участник
    Сообщений:21

    Зарегистрирован:
    03.07.2015

    Репутация:5

    Спасибо, тот пример натолкнул меня на светлую мысль.

    Получилось как то так:

     

    #1964
    Yurec
    Yurec
    Участник
    Сообщений:8

    Зарегистрирован:
    31.05.2015

    Репутация:2

    if (event.type == sf::Event::MouseButtonPressed)
    {
    std::cout << “выводим чтонибуть\n” //не выскакиевает ни это сообщение
    if (event.mouseButton.button == sf::Mouse::Left)
    {
    std::cout << “выводим чтонибуть\n” //ни это темболие
    }
    }

    не срабатывает ивент на нажатие кнопки мыши, с чем может быть связана проблема?

    #1966
    Entey
    Entey
    Участник
    Сообщений:3

    Зарегистрирован:
    24.07.2015

    Репутация:1

    Так попробуй, у меня работает.

    if (event.type == sf::Event::MouseButtonPressed) // Используем мышь
    if (event.key.code == sf::Mouse::Button::Right)   // Сразу же уточняем какую клавишу, в данном случае правую
    {
    std::cout << “Что-то там выводится” << std::endl;
    }

    #1967
    Heisenberg
    Heisenberg
    Участник
    Сообщений:320

    Зарегистрирован:
    01.04.2015

    Репутация:146

    Эти условия должны находится в теле цикла обработчика событий.

    #1970
    Yurec
    Yurec
    Участник
    Сообщений:8

    Зарегистрирован:
    31.05.2015

    Репутация:2

    у меня не воспринимает именно команду sf::Event::MouseButtonPressed, при этом реагирует на sf::Event::MouseButtonReleased
    if (event.type == sf::Event::MouseButtonPressed)//так не работает
    {
    ….
    }

    а так работает:
    if (event.type == sf::Event::MouseButtonReleased)
    {
    ….
    }

    такое поведение лишено всякой логики, может быть проблемма в самом SFML?

    #1977

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    Скинь код целиком, посмотрим и скажем

    #1978
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:582

    Зарегистрирован:
    04.01.2015

    Репутация:106

    Ага, или проект + ехе, у себя запустим

    #1984

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    С сфмл все так, поскольку была бы не только у тебя такая проблема. Паша, стёб не засчитан.

    #1985

    mypmyp
    Участник
    Сообщений:20

    Зарегистрирован:
    20.10.2015

    Репутация:6

    Да и тем более ответ уже был дан, просто Yurec , не использовал условие на конкретную клавишу

    #1986
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:582

    Зарегистрирован:
    04.01.2015

    Репутация:106

    ваще то это был не стёб и я реально планировал попробовать у себя запустить и если че – подредактировать.

    #2029
    Yurec
    Yurec
    Участник
    Сообщений:8

    Зарегистрирован:
    31.05.2015

    Репутация:2

    В общем не решив проблемы своими силами, решил закинуть вам проект.
    Это полигон для экспериментов с SFML для меня, делаю стратегию. причина почему не работает MouseButtonPressed мистически не понятна.
    https://www.hightail.com/download/bXBZeUNETStsUi9IRHNUQw

    #2030
    Павел Букреев
    Павел Букреев
    Хранитель
    Сообщений:582

    Зарегистрирован:
    04.01.2015

    Репутация:106

    красивенько выглядит))

    что именно не работает? я смог двигать передвигать танк кликом мыши по нему, а затем и по месту куда ему надо ехать – у меня это работает. в коде ничего не менял

    #2032
    Yurec
    Yurec
    Участник
    Сообщений:8

    Зарегистрирован:
    31.05.2015

    Репутация:2

    потому что движение я поставил на
    if (event.type == sf::Event::MouseButtonReleased)
    {
    ….
    }

    там есть закомменченные строки
    ////не работает по непонятным причинам
    //if (event.type == Event::MouseButtonPressed)//если нажата клавиша мыши
    //{
    // if (event.key.code == Mouse::Left)//а именно левая
    // {
    // std::cout << “pressed\n”;
    // }
    //}
    даже если снять комментирование с них, сигнал не проходит, и в консоль ничего не пишет.
    Мне важна эта функция потому что без неё сложно придумать массовое выделение юнитов в области когда зажав кнопку ты выбираешь всех кто попал в выделенную область, как это происходит в стратегиях.

Просмотр 15 сообщений - с 1 по 15 (из 18 всего)

Для ответа в этой теме необходимо авторизоваться.