Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SDL.h>
- #include "Pane.h"
- #include "Ball.h"
- #include "Brick.h"
- class Core
- {
- private:
- static bool Running;
- public:
- //score, lives
- static SDL_Window* window; //zmienne statyczne
- static SDL_Renderer* renderer;
- static Pane* pane; // Deklaracja paletki a obiekt bedzie w void initialize (juz po stworzeniu silnika)--------------Pointer--------------------
- static Ball* ball;
- Brick* brick;
- static void Initialize() //funkcja rozpoczecia!!!!
- {
- SDL_Init(SDL_INIT_VIDEO);
- window = SDL_CreateWindow("ARKANOID", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 600, 600, SDL_WINDOW_SHOWN); //Okno gry
- renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); // tworzy to cos co jest w okienku? taka naklejka xD (jak dodajemy -1 to nie tworzy tabeli ale tlyko jedno okienko)
- SDL_RenderClear(renderer); //czyszczenie buffora zeby nie bylo syfu na poczatku odpalania
- Running = true;
- Brick* brick[500];
- for (int i = 0; i < 20; i++)
- {
- brick[i] = new Brick();
- brick[i]->x = 32 * i;
- brick[i]->y = 0;
- }
- pane = new Pane();//zmienna pane = nowemu obiektowi Pane
- ball = new Ball(renderer);
- //brick = new Brick(renderer);
- }
- static bool OnInitialize()
- {
- return !(SDL_Init(SDL_INIT_EVERYTHING) < 0);
- }
- static void OnEvent(SDL_Event*Event) //Eventy, na razie nie uzywamy ale powinno byc wrazie czego
- {
- if (Event->type == SDL_QUIT) //standard pisania aplikacji w SDL'u
- {
- Running = false;
- return;
- }
- if (Event->type == SDL_KEYDOWN) // Jeżeli eventem jest nacisniecie klawisza to wg klawisza zrob dana akcje (trzeba to ulepszyc bo sie zacina :D)
- {
- switch (Event->key.keysym.sym)
- {
- case SDLK_LEFT: pane->x -= 5; break;
- case SDLK_RIGHT: pane->x += 5; break;
- }
- }
- }
- static void OnUpdate() //zmiana zmiennych, obiektow, mechanika, think, tick (sprawdza czy jest kolizja miedzy obiektami itp / myslenie obiektow)
- {
- //-------------------------------------------------------------------------------------------------
- }
- static void OnRender()//wyswietlanie bajerkow
- {
- SDL_SetRenderDrawColor(renderer, 69, 90, 100, 255);
- SDL_RenderClear(renderer);
- // rzeczy ktore wyswietlam -------------------------------------------------------------------------
- pane->Draw(renderer);//<---wywoluje funkcje calego wysweitlania z Pane.h
- ball->Draw(renderer);
- //brick->Draw(renderer);
- for(int i = 0; i < 20; i++)
- {
- brick[i]->Draw(renderer);
- }
- SDL_RenderPresent(renderer);
- }
- static void OnCleanup()//funkcja do zwolnienia pamieci po zamknieciu petli - gry (dodaje sie bo na starych kompach nie czyscilo pamieci ale teraz jest to tylko jesli chcesz)
- {
- SDL_Quit();
- }
- static int OnExecute()
- {
- if (!OnInitialize())//jezeli aplikacja sie zle wczytala wywal error!!
- {
- return -1;
- }
- SDL_Event Event;// to tak kolejka z linijki nizej
- while (Running)
- {
- while (SDL_PollEvent(&Event))//jezeli kolejka eventow dziala to odpalamy event kolejki
- {
- OnEvent(&Event);
- }
- OnUpdate();//kolejnosc jest wazna bo to wczytrawanie "silnika"
- OnRender();// wczytywanie obiektow z tej funkcji OnRender
- }
- OnCleanup();
- return 0;
- }
- };
- //Definitions (OGAR) - definicja zmiennych statycznych (w razie czego)
- bool Core::Running;
- Pane* Core::pane;
- Ball* Core::ball;
- //Brick* Core::brick;
- SDL_Window* Core::window;
- SDL_Renderer* Core::renderer;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement