Input
Mus
For å finne ut hvor i vinduet musen befinner seg brukes det get_mouse_coordinates()
funksjonen:
Merk at AnimationWindow::
betyr at funksjonen er et medlemsfunksjon av TDT4102::AnimationWindow
klassen. Funksjonen returnerer en instans av TDT4102::Point
som representerer koordinatene hvor musen peker til relativ til øverst venstre hjørnet av vinduet (akkurat det samme koordinatsystem som brukes til tegning). Her er et eksempel som visualiserer koordinatene musene peker på:
#include "AnimationWindow.h"
int main() {
TDT4102::AnimationWindow window;
while(!window.should_close()) {
TDT4102::Point mouseCoordinates = window.get_mouse_coordinates();
std::string coordinateText = std::to_string(mouseCoordinates.x) + ", " + std::to_string(mouseCoordinates.y);
window.draw_text(mouseCoordinates, coordinateText);
window.next_frame();
}
return 0;
}
Du kan sjekke om høyre eller venstre musetast er trykket ned med:
bool TDT4102::AnimationWindow::is_left_mouse_button_down() const;
bool TDT4102::AnimationWindow::is_right_mouse_button_down() const;
Funksjonen returnerer true
dersom musetasten er nede.
Tastatur
For å benytte deg av tastaturet kan du bruke is_key_down()
funksjonen:
is_key_down()
funksjonen tar inn en tast på tastaturet som parameter, og returnerer true
når tasten holdes ned, og ellers false
. Tasten defineres som et verdi av KeyboardKey
. For eksempel, her brukes R tasten å endre fargen på et rektangel:
#include "AnimationWindow.h"
int main() {
TDT4102::AnimationWindow window;
while(!window.should_close()) {
bool rKeyIsPressed = window.is_key_down(KeyboardKey::R);
if(rKeyIsPressed) {
window.draw_rectangle({100, 100}, 100, 100, Color::red);
} else {
window.draw_rectangle({100, 100}, 100, 100, Color::dark_green);
}
window.next_frame();
}
return 0;
}
Alle tastene som finnes i KeyboardKey
Det finnes mange forskjellige taster som kan brukes i programmet. Her er et oversikt over alle. Merk at ikke alle tastatur har hver av disse tilgjengelig (for eksempel, mange tastatur på bærbare maskiner har ingen numpad).
Tast | KeyboardKey verdi |
Bokstavtaster | KeyboardKey::A til KeyboardKey::Z |
Norske bokstavtaster | KeyboardKey::AA KeyBoardKey::AE KeyboardKey::OO |
Talltaster | KeyboardKey::KEY_0 til KeyboardKey::KEY_9 |
Numpad: talltaster | KeyboardKey::NUMPAD_0 til KeyboardKey::NUMPAD_9 |
Numpad: spesialtaster | KeyboardKey::NUMPAD_COMMA KeyboardKey::NUMPAD_SLASH KeyboardKey::NUMPAD_ASTERISK KeyboardKey::NUMPAD_MINUS KeyboardKey::NUMPAD_PLUS KeyboardKey::NUMPAD_ENTER KeyboardKey::NUMPAD_PERIOD KeyboardKey::NUMPAD_EQUALS |
Piltaster | KeyboardKey::LEFT KeyboardKey::UP KeyboardKey::RIGHT KeyboardKey::DOWN |
Shift | KeyboardKey::LEFT_SHIFT KeyboardKey::RIGHT_SHIFT |
Ctrl | KeyboardKey::LEFT_CTRL KeyboardKey::RIGHT_CTRL |
Windows tast Cmd (på Mac) | KeyboardKey::SUPER_LEFT KeyboardKey::SUPER_RIGHT |
Alt | KeyboardKey::LEFT_ALT KeyboardKey::RIGHT_ALT |
Page Up/Down | KeyboardKey::PAGE_UP KeyboardKey::PAGE_DOWN |
Funksjonstastene | KeyboardKey::F1 til KeyboardKey::F24 |
< > | KeyboardKey::LESS_THAN KeyboardKey::GREATER_THAN |
{ } | KeyboardKey::LEFT_PAREN KeyboardKey::RIGHT_PAREN |
[ ] | KeyboardKey::LEFT_BRACKET KeyboardKey::RIGHT_BRACKET |
Backspace | KeyboardKey::BACKSPACE |
Tab | KeyboardKey::TAB |
Enter | KeyboardKey::ENTER |
Escape | KeyboardKey::ESCAPE |
Mellomrom | KeyboardKey::SPACE |
Home | KeyboardKey::HOME |
End | KeyboardKey::END |
Printscreen | KeyboardKey::PRINT_SCREEN |
Insert | KeyboardKey::INSERT |
Menu | KeyboardKey::MENU |
Delete | KeyboardKey::DELETE |
_ | KeyboardKey::UNDERSCORE |
& | KeyboardKey::AMPERSAND |
* | KeyboardKey::ASTERISK |
@ | KeyboardKey::AT |
^ | KeyboardKey::CARET |
: | KeyboardKey::COLON |
$ | KeyboardKey::DOLLAR |
! | KeyboardKey::EXCLAMATION_MARK |
# | KeyboardKey::HASH |
% | KeyboardKey::PERCENT |
' | KeyboardKey::QUOTE |
" | KeyboardKey::DOUBLE_QUOTE |
+ | KeyboardKey::PLUS |
; | KeyboardKey::SEMICOLON |
. | KeyboardKey::PERIOD |
- | KeyboardKey::MINUS |
= | KeyboardKey::EQUALS |
\ | KeyboardKey::BACKSLASH |
` | KeyboardKey::GRAVE |
, | KeyboardKey::COMMA |
/ | KeyboardKey::SLASH |
? | KeyboardKey::QUESTION_MARK |
Pause | KeyboardKey::PAUSE |
Scroll lock | KeyboardKey::SCROLL_LOCK |
Caps lock | KeyboardKey::CAPS_LOCK |
Num lock | KeyboardKey::NUM_LOCK |
Media tastene | KeyboardKey::AUDIO_MUTE KeyboardKey::AUDIO_NEXT KeyboardKey::AUDIO_PLAY KeyboardKey::AUDIO_PREV KeyboardKey::AUDIO_STOP KeyboardKey::AUDIO_VOLUME_UP KeyboardKey::AUDIO_VOLUME_DOWN |