Implementájunk egy Scene-t, ami kirajzol valamit a képernyőre. Például az esetünkben egy Sprite-ot. Az ApplicationImpl már kész, az fog ebből egyet csinálni, és beállítani aktívnak. Itt az UML diagram: |---------------------------------------------------------------------------------------| | class MainScene : public Scene | |---------------------------------------------------------------------------------------| | + void event(const SDL_Event &ev) | | + void update(float delta) | | + void render() | | | | + MainScene() | | + ~MainScene() | | | | + Camera *_camera | | + Image *_image | | + Texture *_texture | | + Sprite *_sprite | | + int _dir | |---------------------------------------------------------------------------------------| A függvények pszeudokódja: ----------- void event(const SDL_Event &ev): return ----------- void update(float delta): return ----------- void render(): Renderer::get_singleton()->clear() _camera->viewport.x += _dir if (_camera->viewport.x <= -100) _dir = 1 else if (_camera->viewport.x >= 100) _dir = -1 _camera->bind() _sprite->draw() ----------- MainScene(): _camera = new Camera() _image = new Image("ti.bmp") _texture = new Texture(_image) _sprite = new Sprite(_texture) _sprite->set_x(30) _sprite->set_y(30) _dir = 1 ----------- ~MainScene(): _texture->free() _image->free() delete _sprite delete _texture delete _image delete _camera -----------