From b628c80f988c1fb250b94b17dca8e082bc4c1d0b Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Tue, 2 Feb 2021 16:51:22 -0500 Subject: Added moving camera --- src/renderer.cpp | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'src/renderer.cpp') diff --git a/src/renderer.cpp b/src/renderer.cpp index 9d20fee..03d5173 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -88,13 +88,15 @@ void Renderer::render(Game& game) { renLay0_ = renderMapLayer(game.getMap(), 1); } + vec2i mapBounds = game.getMap().getMapSize() * game.getMap().getTileSize(); + texture_ptr canvas( SDL_CreateTexture( ren_.get(), SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, - CANVAS_WIDTH, - CANVAS_HEIGHT)); + mapBounds.w(), + mapBounds.h())); if (!canvas) { throw sdl_error(); @@ -105,12 +107,7 @@ void Renderer::render(Game& game) { SDL_SetRenderDrawColor(ren_.get(), 255, 255, 255, 255); SDL_RenderClear(ren_.get()); - vec2i mapBounds = game.getMap().getMapSize() * game.getMap().getTileSize(); - - { - SDL_Rect dest { -80, -80, mapBounds.w(), mapBounds.h() }; - SDL_RenderCopy(ren_.get(), renLay1_.get(), nullptr, &dest); - } + SDL_RenderCopy(ren_.get(), renLay1_.get(), nullptr, nullptr); for (const Sprite& sprite : game.getSpritesByY() | game.spriteView()) { const SpriteFrame& frame = sprite.getFrame(); @@ -119,13 +116,17 @@ void Renderer::render(Game& game) { SDL_RenderCopy(ren_.get(), textures_.at(sprite.getTextureId()).get(), &src, &dest); } - { - SDL_Rect dest { -80, -80, mapBounds.w(), mapBounds.h() }; - SDL_RenderCopy(ren_.get(), renLay0_.get(), nullptr, &dest); - } + SDL_RenderCopy(ren_.get(), renLay0_.get(), nullptr, nullptr); + + SDL_Rect cameraField { + game.getCameraPosition().x(), + game.getCameraPosition().y(), + game.getFieldOfView().w(), + game.getFieldOfView().h() + }; SDL_SetRenderTarget(ren_.get(), nullptr); - SDL_RenderCopy(ren_.get(), canvas.get(), nullptr, nullptr); + SDL_RenderCopy(ren_.get(), canvas.get(), &cameraField, nullptr); SDL_RenderPresent(ren_.get()); } -- cgit 1.4.1