Game.cpp:
#include "Game.h"
#include "allegro5\allegro.h"
#include <stdio.h>
Game::Game()
{
}
Game::~Game()
{
delete this->ball;
delete this->paddle1;
delete this->paddle2;
}
int Game::Init()
{
//init allegro
if(!al_init()) {
fprintf(stderr, "failed to initialize allegro!\n");
return -1;
}
//create the display
this->display = al_create_display(640, 480);
if(!g_display) {
fprintf(stderr, "failed to create display!\n");
return -1;
}
//init events
this->eventQueue = al_create_event_queue();
al_register_event_source(g_eventQueue, al_get_display_event_source(g_display));
if(!al_create_timer(this->GetTargetFPS()))
{
return -1;
}
this->ball = new Ball();
this->paddle1 = new Paddle();
this-> paddle2 = new Paddle();
return 0;
}
Game.h:
#include "allegro5\allegro.h"
#ifndef GAME_H_INCLUDED
#define GAME_H_INCLUDED
class Paddle
{
public:
Paddle(int posX, int posY, int width, int height);
~Paddle();
int GetPosX() {return this->posX;}
int GetPosY() {return this->posY;}
int GetWidth() {return this->width;}
int GetHeight() {return this->height;}
void Draw();
void Update(long millis);
private:
ALLEGRO_BITMAP* paddleImg;
int posX, posY;
int width, height;
};
class Ball
{
public:
Ball(int posX, int posY);
~Ball();
int GetRadius();
int GetPosX();
int GetPosY();
int GetVelocityX();
int GetVelocityY();
void SetVelocity(int x, int y);
void Draw();
void Update(long millis);
private:
int radius;
int posX,posY;
};
class Game
{
private:
const double targetFPS = (int)(60.0f / 1000.0f);
Paddle* paddle1;
Paddle* paddle2;
Ball* ball;
ALLEGRO_EVENT_QUEUE* eventQueue;
ALLEGRO_DISPLAY* display;
public:
Game();
~Game();
double GetTargetFPS();
void Update(double millis);
void Draw();
int Init();
bool OnEvent(ALLEGRO_EVENT* evt);
}
#endif