anoniem Geplaatst: 30 mei 2006 Delen Geplaatst: 30 mei 2006 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] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen