Skip to content

Input

Mus

For å finne ut hvor i vinduet musen befinner seg brukes det get_mouse_coordinates() funksjonen:

TDT4102::Point TDT4102::AnimationWindow::get_mouse_coordinates();

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:

bool TDT4102::AnimationWindow::is_key_down(KeyboardKey key) const;

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).

TastKeyboardKey verdi
BokstavtasterKeyboardKey::A til KeyboardKey::Z
Norske bokstavtasterKeyboardKey::AA
KeyBoardKey::AE
KeyboardKey::OO
TalltasterKeyboardKey::KEY_0 til KeyboardKey::KEY_9
Numpad: talltasterKeyboardKey::NUMPAD_0 til KeyboardKey::NUMPAD_9
Numpad: spesialtasterKeyboardKey::NUMPAD_COMMA
KeyboardKey::NUMPAD_SLASH
KeyboardKey::NUMPAD_ASTERISK
KeyboardKey::NUMPAD_MINUS
KeyboardKey::NUMPAD_PLUS
KeyboardKey::NUMPAD_ENTER
KeyboardKey::NUMPAD_PERIOD
KeyboardKey::NUMPAD_EQUALS
PiltasterKeyboardKey::LEFT
KeyboardKey::UP
KeyboardKey::RIGHT
KeyboardKey::DOWN
ShiftKeyboardKey::LEFT_SHIFT
KeyboardKey::RIGHT_SHIFT
CtrlKeyboardKey::LEFT_CTRL
KeyboardKey::RIGHT_CTRL
Windows tast
Cmd (på Mac)
KeyboardKey::SUPER_LEFT
KeyboardKey::SUPER_RIGHT
AltKeyboardKey::LEFT_ALT
KeyboardKey::RIGHT_ALT
Page Up/DownKeyboardKey::PAGE_UP
KeyboardKey::PAGE_DOWN
FunksjonstasteneKeyboardKey::F1 til KeyboardKey::F24
< >KeyboardKey::LESS_THAN
KeyboardKey::GREATER_THAN
{ }KeyboardKey::LEFT_PAREN
KeyboardKey::RIGHT_PAREN
[ ]KeyboardKey::LEFT_BRACKET
KeyboardKey::RIGHT_BRACKET
BackspaceKeyboardKey::BACKSPACE
TabKeyboardKey::TAB
EnterKeyboardKey::ENTER
EscapeKeyboardKey::ESCAPE
MellomromKeyboardKey::SPACE
HomeKeyboardKey::HOME
EndKeyboardKey::END
PrintscreenKeyboardKey::PRINT_SCREEN
InsertKeyboardKey::INSERT
MenuKeyboardKey::MENU
DeleteKeyboardKey::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
PauseKeyboardKey::PAUSE
Scroll lockKeyboardKey::SCROLL_LOCK
Caps lockKeyboardKey::CAPS_LOCK
Num lockKeyboardKey::NUM_LOCK
Media tasteneKeyboardKey::AUDIO_MUTE
KeyboardKey::AUDIO_NEXT
KeyboardKey::AUDIO_PLAY
KeyboardKey::AUDIO_PREV
KeyboardKey::AUDIO_STOP
KeyboardKey::AUDIO_VOLUME_UP
KeyboardKey::AUDIO_VOLUME_DOWN