Os eventos
sf::Event::KeyPressed
e sf::Event::KeyReleased
são desencadeados quando uma tecla é pressionada ou liberada. Se uma tecla está sendo pressionada, vários eventos KeyPressed
serão gerados. Para desabilitar eventos KeyPressed
repetidos, você pode usar a função window.setKeyRepeatEnabled(false)
.
Há um tutorial que mostra como manipular teclas pressionadas em tempo real (ao contrário desse evento, que tem um intervalo entre cada chamada). Você pode ler tanto este como o artigo presente aqui no site.
O membro associado a este evento é o
event.key
, que contém o código da tecla digitada/liberada.if (event.type == sf::Event::KeyPressed)
{
if (event.key.code == sf::Keyboard::Escape)
{
std::cout << "the escape key was pressed" << std::endl;
}
}
O evento
sf::Event::MouseWheelMoved
é desencadeado quando a roda do mouse é movida. O membro associado a este evento é o event.mouseWheel
, que contém a quantidade de movimento da roda e a posição atual do cursor.if (event.type == sf::Event::MouseWheelMoved)
{
std::cout << "wheel movement: " << event.mouseWheel.delta << std::endl;
std::cout << "mouse x: " << event.mouseWheel.x << std::endl;
std::cout << "mouse y: " << event.mouseWheel.y << std::endl;
}
Os eventos
sf::Event::MouseButtonPressed
e sf::Event::MouseButtonReleased
são desencadeados quando o botão do mouse é pressionado/liberado. O membro associado é o event.mouseButton
, que contém o código do botão pressionado/liberado e a posição atual do cursor.if (event.type == sf::Event::MouseButtonPressed)
{
if (event.mouseButton.button == sf::Mouse::Right)
{
std::cout << "the right button was pressed" << std::endl;
std::cout << "mouse x: " << event.mouseButton.x << std::endl;
std::cout << "mouse y: " << event.mouseButton.y << std::endl;
}
}
O evento
sf::Event::MouseMoved
é desencadeado quando o mouse é movido dentro da janela (tendo esta foco ou não). O membro associado a este evento é o event.mouseMove
, que contém a posição atual do cursor relativa à janela.if (event.type == sf::Event::MouseMoved)
{
std::cout << "new mouse x: " << event.mouseMove.x << std::endl;
std::cout << "new mouse y: " << event.mouseMove.y << std::endl;
}
Os eventos
sf::Event::MouseEntered
e sf::Event::MouseLeft
são desencadeados quando o cursor do mouse entra/sai da janela.if (event.type == sf::Event::MouseEntered)
std::cout << "the mouse cursor has entered the window" << std::endl;
if (event.type == sf::Event::MouseLeft)
std::cout << "the mouse cursor has left the window" << std::endl;
Nenhum comentário:
Postar um comentário