input.rs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. use crate::util;
  2. #[derive(Debug)]
  3. pub struct Input {
  4. pub right: f32,
  5. pub up: f32,
  6. }
  7. impl Input {
  8. pub fn new() -> Input {
  9. Input {
  10. right: 0.0,
  11. up: 0.0,
  12. }
  13. }
  14. pub fn handle_down(&mut self, kc: winit::VirtualKeyCode) {
  15. match kc {
  16. winit::VirtualKeyCode::W => self.up -= 1.0,
  17. winit::VirtualKeyCode::A => self.right -= 1.0,
  18. winit::VirtualKeyCode::S => self.up += 1.0,
  19. winit::VirtualKeyCode::D => self.right += 1.0,
  20. _ => (),
  21. }
  22. self.up = util::clamp(self.up, -1.0, 1.0);
  23. self.right = util::clamp(self.right, -1.0, 1.0);
  24. }
  25. pub fn handle_up(&mut self, kc: winit::VirtualKeyCode) {
  26. match kc {
  27. winit::VirtualKeyCode::W => self.up += 1.0,
  28. winit::VirtualKeyCode::A => self.right += 1.0,
  29. winit::VirtualKeyCode::S => self.up -= 1.0,
  30. winit::VirtualKeyCode::D => self.right -= 1.0,
  31. _ => (),
  32. }
  33. self.up = util::clamp(self.up, -1.0, 1.0);
  34. self.right = util::clamp(self.right, -1.0, 1.0);
  35. }
  36. }