diff --git a/25_sdl_input_app.txt b/25_sdl_input_app.txt index 9214d1e..8145b86 100644 --- a/25_sdl_input_app.txt +++ b/25_sdl_input_app.txt @@ -1,4 +1,9 @@ +Készítsünk egy újat / fejlesszük tovább a MainScene osztályt, amely a benne tárolt +Sprite-ot w, a, s, d gombok lenyomására képes a megfelelő irányogba mozgatni, +és a kamerát is átméretezi, az ablak átméretezésekor. + +Az UML diagram: |---------------------------------------------------------------------------------------| | class MainScene : public Scene | @@ -21,17 +26,13 @@ | + bool _right | |---------------------------------------------------------------------------------------| +A függvények pszeudokódja: -#include "main_scene.h" - -#include "renderer.h" -#include "rect2.h" - -#include +---------------------------------------------------------------------------- void event(const SDL_Event &ev): switch (ev.type): - case SDL_WINDOWEVENT:: + case SDL_WINDOWEVENT: switch (ev.window.event): case SDL_WINDOWEVENT_SIZE_CHANGED:: int width = ev.window.data1 @@ -40,13 +41,9 @@ void event(const SDL_Event &ev): _camera->viewport = Rect2(0, 0, width, height) break - - - break - case SDL_KEYDOWN:: - + case SDL_KEYDOWN: if (ev.key.keysym.scancode == SDL_SCANCODE_A): _left = true else if (ev.key.keysym.scancode == SDL_SCANCODE_W): @@ -56,10 +53,9 @@ void event(const SDL_Event &ev): else if (ev.key.keysym.scancode == SDL_SCANCODE_D): _right = true - break - case SDL_KEYUP:: + case SDL_KEYUP: if (ev.key.keysym.scancode == SDL_SCANCODE_A): _left = false @@ -70,29 +66,28 @@ void event(const SDL_Event &ev): else if (ev.key.keysym.scancode == SDL_SCANCODE_D): _right = false - break - +Itt csak letároljuk, hogy mely gombok vannak ép lenyomva. +---------------------------------------------------------------------------- void update(float delta): if (_up): _sprite->set_y(_sprite->get_y() - 50 * delta) - if (_down): _sprite->set_y(_sprite->get_y() + 50 * delta) - if (_left): _sprite->set_x(_sprite->get_x() - 50 * delta) - if (_right): _sprite->set_x(_sprite->get_x() + 50 * delta) +Itt mozgatjuk a sprite-ot. +---------------------------------------------------------------------------- void render(): Renderer::get_singleton()->clear() @@ -101,6 +96,7 @@ void render(): Renderer::get_singleton()->draw_sprite(_sprite) +---------------------------------------------------------------------------- MainScene(): _camera = new Camera() @@ -113,6 +109,7 @@ MainScene(): _left = false _right = false +---------------------------------------------------------------------------- ~MainScene(): _texture->free() @@ -123,3 +120,4 @@ MainScene(): delete _image delete _camera +----------------------------------------------------------------------------