Basic input

This commit is contained in:
liuk7071 2023-06-05 13:25:06 +02:00
parent 9ca66f4157
commit 608bf88c5f
5 changed files with 56 additions and 1 deletions

View file

@ -36,10 +36,45 @@ void Emulator::run() {
SDL_Event event;
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
switch (event.type) {
case SDL_QUIT:
printf("Bye :(\n");
running = false;
return;
case SDL_KEYDOWN:
switch (event.key.keysym.sym) {
case SDLK_z: kernel.pressKey(1 << 0); break;
case SDLK_RIGHT: kernel.pressKey(1 << 4); break;
case SDLK_LEFT: kernel.pressKey(1 << 5); break;
case SDLK_UP: kernel.pressKey(1 << 6); break;
case SDLK_DOWN: kernel.pressKey(1 << 7); break;
case SDLK_w: kernel.setCirclepadY(0x9C); break;
case SDLK_a: kernel.setCirclepadX(-0x9C); break;
case SDLK_s: kernel.setCirclepadY(-0x9C); break;
case SDLK_d: kernel.setCirclepadX(0x9C); break;
case SDLK_j: kernel.pressKey(1 << 1); break;
case SDLK_k: kernel.pressKey(1 << 10); break;
case SDLK_l: kernel.pressKey(1 << 11); break;
case SDLK_r: kernel.pressKey(1 << 8); break;
}
break;
case SDL_KEYUP:
switch (event.key.keysym.sym) {
case SDLK_z: kernel.releaseKey(1 << 0); break;
case SDLK_RIGHT: kernel.releaseKey(1 << 4); break;
case SDLK_LEFT: kernel.releaseKey(1 << 5); break;
case SDLK_UP: kernel.releaseKey(1 << 6); break;
case SDLK_DOWN: kernel.releaseKey(1 << 7); break;
case SDLK_w: kernel.setCirclepadY(0); break;
case SDLK_a: kernel.setCirclepadX(0); break;
case SDLK_s: kernel.setCirclepadY(0); break;
case SDLK_d: kernel.setCirclepadX(0); break;
case SDLK_j: kernel.releaseKey(1 << 1); break;
case SDLK_k: kernel.releaseKey(1 << 10); break;
case SDLK_l: kernel.releaseKey(1 << 11); break;
case SDLK_r: kernel.releaseKey(1 << 8); break;
}
break;
}
}