Fix issues with user input.
Maybe we should do something about the 36 if statements in handle_input
This commit is contained in:
parent
8d1a2b59d6
commit
ff1a8222a8
96
src/main.rs
96
src/main.rs
|
@ -58,85 +58,117 @@ fn handle_input(chip8: &mut Chip8, input: &mut WinitInputHelper, control_flow: &
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 1 -> 1
|
||||||
if input.key_pressed(VirtualKeyCode::Key1) {
|
if input.key_pressed(VirtualKeyCode::Key1) {
|
||||||
chip8.key.set_key(0x1);
|
chip8.key.set_key(0x1);
|
||||||
} else {
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::Key1) {
|
||||||
chip8.key.unset_key(0x1);
|
chip8.key.unset_key(0x1);
|
||||||
}
|
}
|
||||||
|
// 2 -> 2
|
||||||
if input.key_pressed(VirtualKeyCode::Key2) {
|
if input.key_pressed(VirtualKeyCode::Key2) {
|
||||||
chip8.key.set_key(0x2);
|
chip8.key.set_key(0x2);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0x2);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::Key2) {
|
||||||
|
chip8.key.unset_key(0x2);
|
||||||
|
}
|
||||||
|
// 3 -> 3
|
||||||
if input.key_pressed(VirtualKeyCode::Key3) {
|
if input.key_pressed(VirtualKeyCode::Key3) {
|
||||||
chip8.key.set_key(0x3);
|
chip8.key.set_key(0x3);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0x3);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::Key3) {
|
||||||
|
chip8.key.unset_key(0x3);
|
||||||
|
}
|
||||||
|
// 4 -> C
|
||||||
if input.key_pressed(VirtualKeyCode::Key4) {
|
if input.key_pressed(VirtualKeyCode::Key4) {
|
||||||
chip8.key.set_key(0xC);
|
chip8.key.set_key(0xC);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0xC);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::Key4) {
|
||||||
|
chip8.key.unset_key(0xC);
|
||||||
|
}
|
||||||
|
// Q -> 4
|
||||||
if input.key_pressed(VirtualKeyCode::Q) {
|
if input.key_pressed(VirtualKeyCode::Q) {
|
||||||
chip8.key.set_key(0x4);
|
chip8.key.set_key(0x4);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0x4);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::Q) {
|
||||||
|
chip8.key.unset_key(0x4);
|
||||||
|
}
|
||||||
|
// W -> 5
|
||||||
if input.key_pressed(VirtualKeyCode::W) {
|
if input.key_pressed(VirtualKeyCode::W) {
|
||||||
chip8.key.set_key(0x5);
|
chip8.key.set_key(0x5);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0x5);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::W) {
|
||||||
|
chip8.key.unset_key(0x5);
|
||||||
|
}
|
||||||
|
// E -> 6
|
||||||
if input.key_pressed(VirtualKeyCode::E) {
|
if input.key_pressed(VirtualKeyCode::E) {
|
||||||
chip8.key.set_key(0x6);
|
chip8.key.set_key(0x6);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0x6);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::E) {
|
||||||
|
chip8.key.unset_key(0x6);
|
||||||
|
}
|
||||||
|
// R -> D
|
||||||
if input.key_pressed(VirtualKeyCode::R) {
|
if input.key_pressed(VirtualKeyCode::R) {
|
||||||
chip8.key.set_key(0xD);
|
chip8.key.set_key(0xD);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0xD);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::R) {
|
||||||
|
chip8.key.unset_key(0xD);
|
||||||
|
}
|
||||||
|
// A -> 7
|
||||||
if input.key_pressed(VirtualKeyCode::A) {
|
if input.key_pressed(VirtualKeyCode::A) {
|
||||||
chip8.key.set_key(0x7);
|
chip8.key.set_key(0x7);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0x7);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::A) {
|
||||||
|
chip8.key.unset_key(0x7);
|
||||||
|
}
|
||||||
|
// S -> 8
|
||||||
if input.key_pressed(VirtualKeyCode::S) {
|
if input.key_pressed(VirtualKeyCode::S) {
|
||||||
chip8.key.set_key(0x8);
|
chip8.key.set_key(0x8);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0x8);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::S) {
|
||||||
|
chip8.key.unset_key(0x8);
|
||||||
|
}
|
||||||
|
// D -> 9
|
||||||
if input.key_pressed(VirtualKeyCode::D) {
|
if input.key_pressed(VirtualKeyCode::D) {
|
||||||
chip8.key.set_key(0x9);
|
chip8.key.set_key(0x9);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0x9);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::D) {
|
||||||
|
chip8.key.unset_key(0x9);
|
||||||
|
}
|
||||||
|
// F -> A
|
||||||
if input.key_pressed(VirtualKeyCode::F) {
|
if input.key_pressed(VirtualKeyCode::F) {
|
||||||
chip8.key.set_key(0x5);
|
chip8.key.set_key(0xE);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0x5);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::F) {
|
||||||
|
chip8.key.unset_key(0xE);
|
||||||
|
}
|
||||||
|
// Z -> A
|
||||||
if input.key_pressed(VirtualKeyCode::Z) {
|
if input.key_pressed(VirtualKeyCode::Z) {
|
||||||
chip8.key.set_key(0xA);
|
chip8.key.set_key(0xA);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0xA);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::Z) {
|
||||||
|
chip8.key.unset_key(0xA);
|
||||||
|
}
|
||||||
|
// X -> 0
|
||||||
if input.key_pressed(VirtualKeyCode::X) {
|
if input.key_pressed(VirtualKeyCode::X) {
|
||||||
chip8.key.set_key(0x0);
|
chip8.key.set_key(0x0);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0x0);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::X) {
|
||||||
|
chip8.key.unset_key(0x0);
|
||||||
|
}
|
||||||
|
// C -> B
|
||||||
if input.key_pressed(VirtualKeyCode::C) {
|
if input.key_pressed(VirtualKeyCode::C) {
|
||||||
chip8.key.set_key(0xB);
|
chip8.key.set_key(0xB);
|
||||||
} else {
|
|
||||||
chip8.key.set_key(0xB);
|
|
||||||
}
|
}
|
||||||
|
if input.key_released(VirtualKeyCode::C) {
|
||||||
|
chip8.key.unset_key(0xB);
|
||||||
|
}
|
||||||
|
// V -> F
|
||||||
if input.key_pressed(VirtualKeyCode::V) {
|
if input.key_pressed(VirtualKeyCode::V) {
|
||||||
chip8.key.set_key(0xF);
|
chip8.key.set_key(0xF);
|
||||||
} else {
|
}
|
||||||
chip8.key.set_key(0xF);
|
if input.key_released(VirtualKeyCode::V) {
|
||||||
|
chip8.key.unset_key(0xF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue