Implemented additional input codes in the emulator

This commit is contained in:
JanNeuendorf 2024-12-18 00:55:47 +01:00
parent d7740c2e4e
commit 09a4d5157d
3 changed files with 21 additions and 6 deletions

2
Cargo.lock generated
View File

@ -553,7 +553,7 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "svc16"
version = "0.2.0"
version = "0.3.0"
dependencies = [
"anyhow",
"clap",

View File

@ -1,6 +1,6 @@
[package]
name = "svc16"
version = "0.2.0"
version = "0.3.0"
edition = "2021"
authors = ["Jan Neuendorf"]
description = "An emulator for a simple virtual computer"

View File

@ -90,15 +90,30 @@ fn get_input_code(window: &Window) -> (u16, u16) {
let mp = window.get_mouse_pos(minifb::MouseMode::Clamp).unwrap();
let pos_code = mp.1 as u16 * 256 + mp.0 as u16;
let mut key_code = 0_u16;
if window.get_mouse_down(minifb::MouseButton::Left)
|| window.is_key_down(Key::A)
|| window.is_key_down(Key::Space)
{
if window.get_mouse_down(minifb::MouseButton::Left) || window.is_key_down(Key::Space) {
key_code += 1;
}
if window.get_mouse_down(minifb::MouseButton::Right) || window.is_key_down(Key::B) {
key_code += 2;
}
if window.is_key_down(Key::Up) || window.is_key_down(Key::W) {
key_code += 4;
}
if window.is_key_down(Key::Down) || window.is_key_down(Key::S) {
key_code += 8;
}
if window.is_key_down(Key::Left) || window.is_key_down(Key::A) {
key_code += 16;
}
if window.is_key_down(Key::Right) || window.is_key_down(Key::D) {
key_code += 32;
}
if window.is_key_down(Key::N) {
key_code += 64;
}
if window.is_key_down(Key::M) {
key_code += 128;
}
(pos_code, key_code)
}