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 <stdbool.h>
#include <SDL2/SDL.h>
#include "constants.h"
//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
void level_update(Level* level, bool* keys) {}

11
level.h
View File

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

View File

@@ -2,12 +2,9 @@
#include <SDL2/SDL.h>
#include <stdio.h>
#include "error_codes.h"
#include "level.h"
#define SCREEN_WIDTH 960
#define SCREEN_HEIGHT 640
#include "constants.h"
// initializes the window and 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
void renderer_update(RenderData* render_data) {
int success = 0x0;
success | SDL_SetRenderDrawColor(render_data->renderer, 0x00, 0x00, 0x00, 0xFF);
success | SDL_RenderClear(render_data->renderer);
SDL_RenderPresent(render_data->renderer);
// render background
(void)SDL_SetRenderDrawColor(render_data->renderer, 0x00, 0x00, 0x00, 0xFF);
(void)SDL_RenderClear(render_data->renderer);
if (success != 0) {
printf("something went wrong during the render update! -> %d", success);
}
//TODO: render ball as a circle at render_data->level->ball.pos
//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) {