initialize ball and bouncer

This commit is contained in:
Quinn
2024-06-10 14:40:53 +02:00
parent d4f51ee3d1
commit 73260f736e
4 changed files with 37 additions and 16 deletions

4
constants.h Normal file
View File

@@ -0,0 +1,4 @@
#pragma once
#define SCREEN_WIDTH 960
#define SCREEN_HEIGHT 640

18
level.c
View File

@@ -1,9 +1,21 @@
#include <stdbool.h>
#include <SDL2/SDL.h>
#include "level.h" #include "level.h"
#include <stdbool.h>
#include <SDL2/SDL.h>
#include "constants.h"
//prepares the level to be in a playable state //prepares the level to be in a playable state
void level_init(Level* level) {} void level_init(Level* level) {
// initialize ball
level->ball.pos.x = SCREEN_WIDTH / 2;
level->ball.pos.y = SCREEN_HEIGHT / 2;
level->ball.radius = 1;
// initialize bouncer
level->bouncer.pos.x = SCREEN_HEIGHT / 2;
level->bouncer.pos.y = 5;
level->bouncer.width = 20;
}
//updates the level //updates the level
void level_update(Level* level, bool* keys) {} void level_update(Level* level, bool* keys) {}

11
level.h
View File

@@ -8,8 +8,15 @@ typedef struct {
} Position; } Position;
typedef struct { typedef struct {
Position ball_pos; struct {
Position bouncer_pos; unsigned radius;
Position pos;
} ball;
struct {
unsigned width;
Position pos;
} bouncer;
} Level; } Level;

View File

@@ -2,12 +2,9 @@
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
#include <stdio.h> #include <stdio.h>
#include "error_codes.h" #include "error_codes.h"
#include "level.h" #include "level.h"
#include "constants.h"
#define SCREEN_WIDTH 960
#define SCREEN_HEIGHT 640
// initializes the window and renderer // initializes the window and renderer
int renderer_init(SDL_Window** window, SDL_Renderer** renderer) { int renderer_init(SDL_Window** window, SDL_Renderer** renderer) {
@@ -37,14 +34,15 @@ int renderer_init(SDL_Window** window, SDL_Renderer** renderer) {
// renders the screen // renders the screen
void renderer_update(RenderData* render_data) { void renderer_update(RenderData* render_data) {
int success = 0x0; // render background
success | SDL_SetRenderDrawColor(render_data->renderer, 0x00, 0x00, 0x00, 0xFF); (void)SDL_SetRenderDrawColor(render_data->renderer, 0x00, 0x00, 0x00, 0xFF);
success | SDL_RenderClear(render_data->renderer); (void)SDL_RenderClear(render_data->renderer);
SDL_RenderPresent(render_data->renderer);
if (success != 0) { //TODO: render ball as a circle at render_data->level->ball.pos
printf("something went wrong during the render update! -> %d", success); //TODO: render bouncer as a bar at render_data->level->bouncer.pos
}
// present the result to the renderer
SDL_RenderPresent(render_data->renderer);
} }
void renderer_destroy(SDL_Window* window, SDL_Renderer* renderer) { void renderer_destroy(SDL_Window* window, SDL_Renderer* renderer) {