Ga naar inhoud

Probleem SDL


Aanbevolen berichten

Hallo, Ik was een begin aan het maken voor een spelletje in SDL. Volgens mij doe ik geen onmogelijke dingen. Ondanks dat alles prima compileert sluit het programma zodra ik het run. Het lijkt wel alsof hij niet eens main() in gaat omdat de printf statement niet eens wordt uitgevoerd. Wat kan hiervan de oorzaak zijn, ik gebruik Dev-C++. Alvast bedankt, Anne main.cpp [code:1:a4e382604c] #include "graphics.h" #include "input.h" bool running = true; Graphics* window = NULL; Input* input = NULL; void handleKeyboardInput(); int main(int argc, char* args[]) { printf("start "); window = new Graphics(800, 600, "lol"); input = new Input(); while (running) { input->readInput(); if (input->shutDown()) { running = false; } handleKeyboardInput(); window->beginScene(); window->endScene(); } delete window; delete input; return 0; } void handleKeyboardInput() { bool *keys = input->getInput(); } [/code:1:a4e382604c] graphics.h [code:1:a4e382604c] #ifndef GRAPHICS_H #define GRAPHICS_H #include <SDL/SDL.h> class Graphics { public: Graphics(int screenWidth, int screenHeight, const char* title); ~Graphics(); void beginScene(); void endScene(); private: SDL_Surface *screen; }; #endif [/code:1:a4e382604c] graphics.cpp [code:1:a4e382604c] #include "graphics.h" Graphics::Graphics(int screenWidth, int screenHeight, const char* title) { SDL_Init(SDL_INIT_EVERYTHING); screen = SDL_SetVideoMode(screenWidth, screenHeight, 0, SDL_HWSURFACE | SDL_DOUBLEBUF); SDL_WM_SetCaption(title, 0); } Graphics::~Graphics() { SDL_Quit(); } void Graphics::beginScene() { SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0)); } void Graphics::endScene() { SDL_Flip(screen); } [/code:1:a4e382604c] input.h [code:1:a4e382604c] #ifndef INPUT_H #define INPUT_H #include <SDL/SDL.h> class Input { public: Input(); ~Input(); void readInput(); bool *getInput(); bool shutDown(); private: SDL_Event event; bool keys[323]; bool shutdown; }; #endif [/code:1:a4e382604c] input.cpp [code:1:a4e382604c] #include "input.h" Input::Input() { shutdown = false; for (int i = 0; i < 323; i++) { keys[i] = false; } } Input::~Input() { } void Input::readInput() { if (SDL_PollEvent(&event)) { if (event.type == SDL_QUIT) { printf("event "); shutdown = true; } if (event.type = SDL_KEYDOWN) { keys[event.key.keysym.sym] = true; if (keys[SDLK_ESCAPE]) { printf("escape "); shutdown = true; } } if (event.type == SDL_KEYUP) { keys[event.key.keysym.sym] = false; } } } bool *Input::getInput() { return keys; } bool Input::shutDown() { return shutdown; } [/code:1:a4e382604c]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...