Om dit in te stellen in Code::Blocks moet je naar Settings->Editor gaan en dan bij Source formatter K&R selecteren.
Regels
- Alle code moet in het Engels worden geschreven, het commentaar ook
- Alle variabelen declareer je aan het begin van de functie
- Classe namen beginnen met een hoofdletter, functie namen en variabelen met een kleine letter
- Alle namen worden geschreven in CamelCase wat inhoud dat meerdere woorden aan elkaar geplakt worden met een hoofdletter, bijvoorbeeld varNaam
- De * van pointers moeten bij declaraties met 1 spatie tussen het type en de variabele naam, dus char *var
- Bij een cast moeten de * van pointers aan het type vast zitten, dus (char*)type
- Bij het aanroepen van een member in een class gebruik je altijd this->, dus bijvoorbeeld this->width
Header bestand
#ifndef ENGINE_H
#define ENGINE_H
#ifdef __linux__
#include <SDL2/SDL.h>
#include "system/linux/time.h"
#else
#include <SDL.h>
#include "system/win32/time.h"
#endif
#include "geom/Point.h"
/**
* The main game engine
* Gets run on the main loop and handles IO/Window management
*/
class Engine
{
public:
Engine();
virtual ~Engine();
void loop();
void createWindow();
void setWindowTitle(const char *title);
void setSize(int width, int height);
inline void setSize(Point size);
private:
/* Window status */
enum W_STATUS{
init,
open,
closed,
error
} wStatus;
/* Window Width */
int wWidth;
/* Window Height */
int wHeight;
/* Window Title */
const char *wTitle;
/* Main Window */
SDL_Window *window;
};
#endif // ENGINE_H
Source bestand
#include "Engine.h"
Engine::Engine()
{
SDL_Init(SDL_INIT_VIDEO);
this->wStatus = init;
}
void Engine::loop()
{
SDL_Event event;
while(this->wStatus == open) {
SDL_WaitEvent(&event);
switch(event.type) {
case SDL_QUIT:
this->wStatus = closed;
break;
}
}
SDL_Quit();
}
void Engine::setSize(int width, int height)
{
this->wWidth = width;
this->wHeight = height;
if(this->wStatus == open)
SDL_SetWindowSize(this->window, this->wWidth, this->wHeight);
}
void Engine::setSize(Point size)
{
this->setSize(size.x, size.y);
}
0 reacties:
Een reactie posten