Basic Ball functionality
This commit is contained in:
parent
71b4993a6b
commit
f136e07b43
@ -24,7 +24,7 @@ void BREAKOUT_INITIALIZE(SDL_Renderer * renderer, int width, int height){
|
|||||||
srand(time(NULL));
|
srand(time(NULL));
|
||||||
BREAKOUT_BoxWidth = width;
|
BREAKOUT_BoxWidth = width;
|
||||||
BREAKOUT_BoxHeight = height;
|
BREAKOUT_BoxHeight = height;
|
||||||
if (!BALL_Texture) printf("Ball texture cannot be loaded!\n");
|
BALL_Initialize(renderer);
|
||||||
printf("Game initialized!\n");
|
printf("Game initialized!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ Ball BALL_CreateDefault(){
|
|||||||
|
|
||||||
return (Ball) {
|
return (Ball) {
|
||||||
.Location = (Vector) {.x = BREAKOUT_BoxWidth / 2, .y = BREAKOUT_BoxHeight / 2 },
|
.Location = (Vector) {.x = BREAKOUT_BoxWidth / 2, .y = BREAKOUT_BoxHeight / 2 },
|
||||||
.Momentum = getScaledDirectionalUnitVector(rotation, 5),
|
.Momentum = (Vector) {.x = 0.0f, .y = 6.0f },
|
||||||
.TargetRect = (SDL_Rect) {.x = BREAKOUT_BoxWidth / 2, .y = BREAKOUT_BoxHeight / 2, .w = 50, .h = 50 },
|
.TargetRect = (SDL_Rect) {.x = BREAKOUT_BoxWidth / 2, .y = BREAKOUT_BoxHeight / 2, .w = 50, .h = 50 },
|
||||||
.Size = 50.0f,
|
.Size = 50.0f,
|
||||||
.Rotation = rotation,
|
.Rotation = rotation,
|
||||||
@ -67,6 +67,7 @@ Ball BALL_CreateDefault(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void BALL_Draw(SDL_Renderer * renderer, Ball * obj){
|
void BALL_Draw(SDL_Renderer * renderer, Ball * obj){
|
||||||
|
printf("Ball drawn at (%d|%d)!\n", (obj->TargetRect).x, (obj->TargetRect).x);
|
||||||
SDL_RenderCopyEx(renderer, BALL_Texture, BALL_SourceRects + (obj->TextureIndex), &(obj->TargetRect), obj->Rotation, NULL, SDL_FLIP_NONE);
|
SDL_RenderCopyEx(renderer, BALL_Texture, BALL_SourceRects + (obj->TextureIndex), &(obj->TargetRect), obj->Rotation, NULL, SDL_FLIP_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,6 +75,9 @@ void BALL_Update(Ball * obj){
|
|||||||
obj->Location = vectorAdd(obj->Location, obj->Momentum);
|
obj->Location = vectorAdd(obj->Location, obj->Momentum);
|
||||||
(obj->TargetRect).x = (int)round((obj->Location).x);
|
(obj->TargetRect).x = (int)round((obj->Location).x);
|
||||||
(obj->TargetRect).y = (int)round((obj->Location).y);
|
(obj->TargetRect).y = (int)round((obj->Location).y);
|
||||||
|
obj->Rotation += obj->RotationValue;
|
||||||
|
if ((obj->Location).y > BREAKOUT_BoxHeight)
|
||||||
|
obj->Location = (Vector) {.x = BREAKOUT_BoxWidth / 2, .y = BREAKOUT_BoxHeight / 2 };
|
||||||
}
|
}
|
||||||
void BALL_DestroyObject(Ball * obj){
|
void BALL_DestroyObject(Ball * obj){
|
||||||
}
|
}
|
||||||
|
6
main.c
6
main.c
@ -38,8 +38,6 @@ int main(int argc, char * args[]){
|
|||||||
// system("bhi.exe");
|
// system("bhi.exe");
|
||||||
INITIALIZE();
|
INITIALIZE();
|
||||||
while (running) { // Gameloop
|
while (running) { // Gameloop
|
||||||
GAMELOOP();
|
|
||||||
DrawFrame();
|
|
||||||
while (SDL_PollEvent(&event)) {
|
while (SDL_PollEvent(&event)) {
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case SDL_QUIT:
|
case SDL_QUIT:
|
||||||
@ -57,6 +55,8 @@ int main(int argc, char * args[]){
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
GAMELOOP();
|
||||||
|
DrawFrame();
|
||||||
}
|
}
|
||||||
QUIT();
|
QUIT();
|
||||||
return 0;
|
return 0;
|
||||||
@ -121,10 +121,12 @@ void INITIALIZE() {
|
|||||||
printf("Window was created!\n");
|
printf("Window was created!\n");
|
||||||
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
|
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
|
||||||
printf("Renderer was created!\n");
|
printf("Renderer was created!\n");
|
||||||
|
BREAKOUT_INITIALIZE(renderer, width, height);
|
||||||
} /* INITIALIZE */
|
} /* INITIALIZE */
|
||||||
|
|
||||||
void QUIT(){
|
void QUIT(){
|
||||||
printf("De-initializing started...\n");
|
printf("De-initializing started...\n");
|
||||||
|
BREAKOUT_DEINITIALIZE();
|
||||||
free(keystate);
|
free(keystate);
|
||||||
TTF_Quit();
|
TTF_Quit();
|
||||||
IMG_Quit();
|
IMG_Quit();
|
||||||
|
Loading…
Reference in New Issue
Block a user