1
0
Fork 0
breakout/src/scene.cpp

47 lines
1.1 KiB
C++

#include "scene.hpp"
Scene::Scene(SDL_Renderer *r) {
DEBUG("[?] Initializing scene");
renderer = r;
pad.x = (SCREEN_WIDTH - PAD_WIDTH) / 2;
pad.y = (SCREEN_HEIGHT - PAD_HEIGHT);
pad.w = PAD_WIDTH;
pad.h = PAD_HEIGHT;
for (int i = 0; i < BRICK_ROWS; i++) {
for (int j = 0; j < BRICK_COLS; j++) {
bricks.push_back(Brick(renderer, j * BRICK_WIDTH + j, i * BRICK_HEIGHT + i, (Color)i));
}
}
DEBUG("[!] Scene initialized");
}
Scene::~Scene() {}
void Scene::render() {
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderFillRect(renderer, &pad);
for (int i = 0; i < BRICK_ROWS * BRICK_COLS; i++) {
bricks[i].render();
}
SDL_RenderPresent(renderer);
}
void Scene::move_pad(int x) {
pad.x = x;
if (pad.x < 0) {
pad.x = 0;
} else if (pad.x > SCREEN_WIDTH - PAD_WIDTH) {
pad.x = SCREEN_WIDTH - PAD_WIDTH;
}
}
void Scene::move_pad_relative(int delta) {
move_pad(pad.x + delta);
}