const void AnimationTester::keyboardListener(KeyboardEvent& event){ if (event.isCancelled()){ return; } if (event.pressed()){ switch (event.key()){ case Keyboard::Escape: window->close(); break; case Keyboard::S: if (manager->inputManager->isPressed(Keyboard::LControl)){ save(); } break; case Keyboard::F5: load(); break; case Keyboard::P: if (d != NULL && event.first()){ if (repeat){ if (d->nextAnimation == "idle"){ d->nextAnimation = "animation"; } else{ d->nextAnimation = "idle"; } logger::info("State: " + d->nextAnimation); } else{ d->currentAnimation = "animation"; d->startTime = world->time(); } } break; case Keyboard::R: if (!(repeat = !repeat)){ d->nextAnimation = "idle"; } logger::info("Repeating: " + string(repeat ? "yes" : "no")); break; case Keyboard::Add: if (a != NULL){ if (manager->inputManager->isPressed(sf::Keyboard::Key::LShift)){ a->timing += sf::milliseconds(10); } else{ a->timing += sf::milliseconds(1); } if (a->timing < milliseconds(1)){ a->timing = milliseconds(1); } logger::info("Timing: " + to_string(a->timing.asMilliseconds())); } break; case Keyboard::Subtract: if (a != NULL){ if (manager->inputManager->isPressed(sf::Keyboard::Key::LShift)){ a->timing -= sf::milliseconds(10); } else{ a->timing -= sf::milliseconds(1); } if (a->timing < milliseconds(1)){ a->timing = milliseconds(1); } logger::info("Timing: " + to_string(a->timing.asMilliseconds())); } break; } } }