programming_tutorials/02_sdl_basics/12_sdl_main_scene.txt

78 lines
2.3 KiB
Plaintext

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