Deo zbornika Teorija razvoja igara
Upravljanje korisničkim unosom
U razvoju igara, na input nadražaje ne odgovaramo odmah, već ih samo beležimo, da bismo kasnije odgovorili na njih. Tako kontrolišemo u kojoj će se fazi njihova obrada vršiti.
Ovo predstavlja bitnu razliku u odnosu na razvoj aplikacija, gde ulazni događaji okidaju funkcije odmah.
Korisničkim unosima u igri obično upravlja InputManager
klasa.
Primer
Prost primer input menadžera bio bi objekat koji beleži pritisnute tipke:
const pressed = {}
window.addEventListener("keydown", event => {
pressed[event.key] = true
})
Korisnički inputi se obično obrađuju na početku game loop-a:
function mainLoop() {
handleInput()
update()
render()
}
U handleInput
fazi odgovaramo na zabeležene inpute. Primetite da ovde samo registrujemo da igrač hoće skakanje, ali ono još uvek nije izvršeno:
function handleInput() {
if (pressed['ArrowUp']) {
player.jumping = true
pressed['ArrowUp'] = false
}
};
Nakon što smo registrovali i obradili korisnički unos, možemo ga upotrebiti u igri:
function update() {
if (player.jumping && player.canJump())
player.jump()
}