47 lines
1.1 KiB
C++
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);
|
|
}
|