From e76901b56718f8fc842e0b906b38eeb748976fec Mon Sep 17 00:00:00 2001 From: Seth Date: Fri, 11 Oct 2024 17:19:47 +1300 Subject: [PATCH] created and init block array --- bin/Debug/cTest | Bin 0 -> 23808 bytes cTest.cbp | 39 ++++++++++++++ cTest.depend | 17 ++++++ cTest.layout | 10 ++++ main.c | 133 +++++++++++++++++++++++++++++++++++++++++++++++ obj/Debug/main.o | Bin 0 -> 10632 bytes 6 files changed, 199 insertions(+) create mode 100755 bin/Debug/cTest create mode 100644 cTest.cbp create mode 100644 cTest.depend create mode 100644 cTest.layout create mode 100644 main.c create mode 100644 obj/Debug/main.o diff --git a/bin/Debug/cTest b/bin/Debug/cTest new file mode 100755 index 0000000000000000000000000000000000000000..8304fd293beebd7a339da3252cd557f78f3090a1 GIT binary patch literal 23808 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 + + + + + diff --git a/cTest.depend b/cTest.depend new file mode 100644 index 0000000..83bd3a8 --- /dev/null +++ b/cTest.depend @@ -0,0 +1,17 @@ +# depslib dependency file v1.0 +1727778794 source:/home/fluffy/codeBlocks/cTest/main.c + + + + + + + +1728183838 source:/home/fluffy/codeBlocks/blockBreaker/main.c + + + + + + + diff --git a/cTest.layout b/cTest.layout new file mode 100644 index 0000000..14ed64e --- /dev/null +++ b/cTest.layout @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/main.c b/main.c new file mode 100644 index 0000000..d86f35b --- /dev/null +++ b/main.c @@ -0,0 +1,133 @@ +#include +#include +#include +#include +#include +#include + +//#include +//#include +#define SCREEN_WIDTH 11 +#define SCREEN_HEIGHT 20 +#define PADDLE_SIZE 1 +#define SLEEP_TIME_MS 100 * 1000 +#define PADDLE_HEIGHT SCREEN_HEIGHT-4 +#define Y_BLOCK_LAYERS 4 + +uint8_t screen[SCREEN_WIDTH][SCREEN_HEIGHT]; + +enum PIXEL_TYPE { + PIXEL_EMPTY=0u, + PIXEL_BALL=1u, + PIXEL_BLOCK=2u, + PIXEL_PADDLE=3u +} PIXEL_TYPE; + +void clearScreen() { + for (int y = 0; y < SCREEN_HEIGHT; y++) { + for (int x=0; x"); + } else if(screen[x][y]==PIXEL_PADDLE) { + printf("=="); + } + } + printf("|\n"); + } + for (int x =0; x<=SCREEN_WIDTH; x++) { + printf("--"); + } + printf("\n"); + + //detect when ball hits the edge of the screen + if (ball.xPOS==0||ball.xPOS==(SCREEN_WIDTH-1)) { + ball.xVEL=ball.xVEL*-1; + } + if (ball.yPOS==0||ball.yPOS==(SCREEN_HEIGHT-1)) { + ball.yVEL=ball.yVEL*-1; + } + //detect when ball hits a block or paddle + if(screen[ball.xPOS+ball.xVEL][ball.yPOS]==PIXEL_BLOCK||screen[ball.xPOS+ball.xVEL][ball.yPOS]==PIXEL_PADDLE) { + ball.xVEL = ball.xVEL *-1; + } + if (screen[ball.xPOS][ball.yPOS+ball.yVEL]==PIXEL_BLOCK||screen[ball.xPOS][ball.yPOS+ball.yVEL]== PIXEL_PADDLE) { //hit detection y direction + ball.yVEL= ball.yVEL*-1; + } + if (screen[ball.xPOS+ball.xVEL][ball.yPOS+ball.yVEL]==PIXEL_BLOCK||screen[ball.xPOS+ball.xVEL][ball.yPOS+ball.yVEL]==PIXEL_PADDLE) { //diagonal hit detection + ball.xVEL = ball.xVEL *-1; + ball.xVEL=ball.yVEL *-1; + } + //update ball position + ball.xPOS=ball.xPOS+ball.xVEL; + ball.yPOS= ball.yPOS+ball.yVEL; + + } +} diff --git a/obj/Debug/main.o b/obj/Debug/main.o new file mode 100644 index 0000000000000000000000000000000000000000..4476c59e60b7eb60c051fdfaf52afe14fc408290 GIT binary patch literal 10632 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