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                                                        |
|---------------------------------------------------------------------------------------|
| + void event(const SDL_Event &ev)                                                     |
| + void update(float delta)                                                            |
| + void render()                                                                       |
|                                                                                       |
| + MainScene()                                                                         |
| + ~MainScene()                                                                        |
|                                                                                       |
| + Camera *_camera                                                                     |
| + Image *_image                                                                       |
| + Texture *_texture                                                                   |
| + Sprite *_sprite                                                                     |
|                                                                                       |
| + bool _up                                                                            |
| + bool _down                                                                          |
| + bool _left                                                                          |
| + bool _right                                                                         |
|---------------------------------------------------------------------------------------|

A függvények pszeudokódja:

----------------------------------------------------------------------------

void event(const SDL_Event &ev):
	switch (ev.type):
		case SDL_WINDOWEVENT:
			switch (ev.window.event):
				case SDL_WINDOWEVENT_SIZE_CHANGED::
					int width = ev.window.data1
					int height = ev.window.data2

					_camera->viewport = Rect2(0, 0, width, height)

					break
			break
		
		case SDL_KEYDOWN:
			if (ev.key.keysym.scancode == SDL_SCANCODE_A):
				_left = true
			 else if (ev.key.keysym.scancode == SDL_SCANCODE_W):
				_up = true
			 else if (ev.key.keysym.scancode == SDL_SCANCODE_S):
				_down = true
			 else if (ev.key.keysym.scancode == SDL_SCANCODE_D):
				_right = true
			
			break
		
		case SDL_KEYUP:

			if (ev.key.keysym.scancode == SDL_SCANCODE_A):
				_left = false
			 else if (ev.key.keysym.scancode == SDL_SCANCODE_W):
				_up = false
			 else if (ev.key.keysym.scancode == SDL_SCANCODE_S):
				_down = false
			 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()

	_camera->bind()

	Renderer::get_singleton()->draw_sprite(_sprite)

----------------------------------------------------------------------------

MainScene():
	_camera = new Camera()
	_image = new Image("ti.bmp")
	_texture = new Texture(_image)
	_sprite = new Sprite(_texture)

    _up = false
    _down = false
	_left = false
	_right = false

----------------------------------------------------------------------------

~MainScene():
	_texture->free()
	_image->free()

	delete _sprite
	delete _texture
	delete _image
	delete _camera

----------------------------------------------------------------------------