SDL events

There aren't many different events to handle:

  • Left and right arrow keys to move the tetrimino to the right or the left
  • Up arrow key to make the tetrimino rotate
  • Down arrow key to make the tetrimino descend one block
  • Spacebar to make the tetrimino descend to the bottom instantly
  • Escape to quit the game

It's still possible to add some later on (such as pausing the game with the return key, for example) but for now, let's focus on these ones. For this, go back inside the main loop of the game (inside the main function) and replace the current event handling with the following function:

fn handle_events(tetris: &mut Tetris, quit: &mut bool, timer: &mut SystemTime,
                 event_pump: &mut sdl2::EventPump) -> bool {
    let mut make_permanent ...

Get Rust Programming By Example 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.