BallClass inklusive renderer / Drawfunktion erstellt

This commit is contained in:
2025-10-18 14:24:24 +02:00
parent 860d8febe6
commit 0e29919fd2
7 changed files with 93 additions and 10 deletions

BIN
Capter1/ax_game Executable file

Binary file not shown.

View File

@@ -1,5 +1,4 @@
#include "ax_game.hpp" #include "ax_game.hpp"
#include "ball.hpp"
ax_game::ax_game() ax_game::ax_game()
{ {
@@ -17,25 +16,70 @@ ax_game::~ax_game()
} }
bool ax_game::Init(){ bool ax_game::Init(){
int sdlResult = SDL_Init(SDL_INIT_VIDEO);
if(sdlResult != 0){
SDL_Log("Fehler bei SDL_INIT: %s", SDL_GetError());
return false;
}
ax_Window = SDL_CreateWindow("Ersted Fenster", 100,100,1024,768,0);
ax_Renderer = SDL_CreateRenderer(ax_Window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if(!ax_Renderer){
SDL_Log("Fehler bei SDL_CreateRenderer: %s", SDL_GetError());
return false;
}
return true;
} }
void ax_game::RunLoop(){ void ax_game::RunLoop(){
while(ax_IsRunning){
Input();
Update();
Output();
}
} }
void ax_game::Shutdown(){ void ax_game::Shutdown(){
SDL_DestroyRenderer(ax_Renderer);
SDL_DestroyWindow(ax_Window);
SDL_Quit();
} }
void ax_game::Input(){ void ax_game::Input(){
SDL_Event event;
while(SDL_PollEvent(&event)){
switch (event.type)
{
case SDL_QUIT:
ax_IsRunning = false;
break;
}
}
} }
void ax_game::Update(){ void ax_game::Update(){
while(!SDL_TICKS_PASSED(SDL_GetTicks(), ax_TickCounter + 16));
float DeltaTime = (SDL_GetTicks() - ax_TickCounter) / 1000.0f;
if (DeltaTime > 0.05f)
{
DeltaTime = 0.05f;
}
ax_TickCounter = SDL_GetTicks();
// Update Ball
} }
void ax_game::Output(){ void ax_game::Output(){
SDL_SetRenderDrawColor(ax_Renderer,0,0,255,255);
SDL_RenderClear(ax_Renderer);
ax_ball_one.Draw(ax_Renderer);
SDL_RenderPresent(ax_Renderer);
} }

BIN
Capter1/ball Executable file

Binary file not shown.

View File

@@ -1,11 +1,30 @@
#include "ball.hpp" #include "ball.hpp"
#include <iostream>
ball::ball() ball::ball()
{ {
x = 0; std::cout << "Ball erzeugt!"<< std::endl;
y = 0;
x = 50;
y = 50;
rect = {20,20,20,20};
color = {0,255,0,255};
} }
ball::~ball() ball::~ball()
{ {
} }
int ball::GetXPos(){
return x;
}
int ball::GetYPos(){
return y;
}
void ball::Draw(SDL_Renderer* renderer){
SDL_SetRenderDrawColor(renderer, color.r, color.g, color.b, color.a);
SDL_RenderFillRect(renderer, &rect);
}

View File

@@ -1,9 +1,20 @@
#include "SDL2/SDL.h"
class ball class ball
{ {
private: public:
SDL_Rect rect;
float x; float x;
float y; float y;
float velx;
float vely;
SDL_Color color;
public: public:
ball(); ball();
~ball(); ~ball();
int GetXPos();
int GetYPos();
void Update();
void Draw(SDL_Renderer* renderer);
}; };

Binary file not shown.

View File

@@ -1,5 +1,6 @@
//#include "Game.h" //#include "Game.h"
#include "ax_game.hpp" #include "ax_game.hpp"
#include <iostream>
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
@@ -11,8 +12,16 @@ int main(int argc, char** argv)
} }
game.Shutdown(); game.Shutdown();
*/ */
int i = 0;
ax_game AXGAME;
bool success = AXGAME.Init();
if(success){
AXGAME.RunLoop();
std::cout<< i++ << std::endl;
}
AXGAME.Shutdown();
return 0; return 0;
} }