Bagt

Bagt est une libraire développée avec cpp par ch.abdel en 2011 , elle permet de créer des jeux en utilisant l'Opengl et Devil
pour toute information contactez bagt@live.fr ou ch.abdel.news@gmail.com vous pouvez aussi visiter notre Blog ou Facebook

Téléchargement

voici l'archive zip qui comporte: Bagt.h;Bagt.a;ainsi que des dll


si vous utilisez dev c++ voila le devpak

Examples

1)

voici l'exemple basique de bagt, ce code ouvre une fenêtre vide:


#include "Bagt.h" //inclusion de la librairie
main(){
Bagt("a game",100,100,800,600,BAGTWINDOW_CLOSE,"");// ouvre une fenetre de 800x600
BeginLoop();// la boucle du jeux
ColorClear(rgb(255,255,255));// effacement de l'ecran avec la couleur blanche
ReverseBuffers(); // affichage de tout
EndLoop()// la fin de la boucle;
}

2)

creation de texture ou sprite
BTexture t1; //creation
t1.load("sprite.png");// telechargement en memoire
quand vous n'avez plus besoin liberez avec t1.free()

3)

voici un example de deux voiture que vous trouvez aussi dans l'archive (avec les medias)
Télécharger l'exemple complet

#include "Bagt.h"
class Voiture{
public:
Voiture(int xx,int yy){x=xx;y=yy;}
void draw(float angle,float vitesse,BTexture tex_body,BTexture tex_whell){
POINT pce={(int)x+25,(int)y+50}; // center of rotation
DrawRectX(x,y,50,100,tex_body,angle,ROT_POINT,pce); //car body
DrawAnimTexRectX(x-10,y+10,10,20,tex_whell,0,vitesse,angle,ROT_POINT,pce); //1 wheel
DrawAnimTexRectX(x+50,y+10,10,20,tex_whell,0,vitesse,angle,ROT_POINT,pce); //2 wheel
DrawAnimTexRectX(x-10,y+70,10,20,tex_whell,0,vitesse,angle,ROT_POINT,pce); //3 wheel
DrawAnimTexRectX(x+50,y+70,10,20,tex_whell,0,vitesse,angle,ROT_POINT,pce); //4 wheel
}
void setxy(float xx,float yy){ x=xx;y=yy;}
bool colision(Voiture v2){
// a simple colision detection
if(abs(int(x-v2.x))<50 && abs(int(y-v2.y))<50)return true;
return false;
}
private:
float x,y;
};
void frotement(float &vx,float &vy,float indice){
if(vx<0)vx+=indice;if(vx>0)vx-=indice;
if(vy<0)vy+=indice;if(vy>0)vy-=indice;
}
int main(){
Bagt("a game",100,100,640,480,0,"");
Voiture mycar(220,300),enemycar(220,-1000);
// texture
BTexture tbody,twheel,tenemybody,t1;
t1.loadanim("Cap\\sp2.png");
twheel.load("Cap\\sp4.png");
tbody.load("Cap\\sp3.png");
tenemybody.load("Cap\\sp5.png");
// var declaration
int yenemy=-1000;
int xenemy=220;
float xp=220,yp=300;
double tm=0;
float tm2 = 0.0f;
float maxvitesse=0.01;
float vx=0,vy=0;
BeginLoop() // main loop
ColorClear(rgb(200,200,200));
xp+=vx*100;
yp+=vy;
tm+=0.005;tm2+=vy;
yenemy+=(int)(10-vy*100);
//draw decor
DrawRect(0,0,200,480,rgb(200,100,0),rgb(0,0,0));
DrawRect(400,0,300,480,rgb(0,0,0),rgb(200,100,0));
DrawAnimTexRect(200,0,200,480,t1,0,tm2/2.); //road
mycar.setxy(xp,300);
enemycar.setxy(xenemy,yenemy);
//draw cars
mycar.draw(-vx*100,-tm2*4,tbody,twheel);
enemycar.draw(0,-tm*30,tenemybody,twheel);
if(mycar.colision(enemycar)){ // in colision's case
DrawRect(200,300,200,100,rgba(200,100,100,200));
if(xenemy==220)vx=0.22;
else vx=-0.22;
}
// enemycar's boucle
if( yenemy>480){
if(rand()%100 <50)xenemy=220;
else xenemy=320;
yenemy=-200;
}
//bords's frotement
if(xp<200){xp=200;frotement(vx,vy,0.01);}
if(xp>340){xp=340;frotement(vx,vy,0.01);}
//road's frotement
frotement(vx,vy,0.001);
//keyboard
if(BagtKeyboard(VK_ESCAPE))break;
if(BagtKeyboard(VK_LEFT))vx+=-maxvitesse;
if(BagtKeyboard(VK_RIGHT))vx+=maxvitesse;
if(BagtKeyboard(VK_UP) && -0.05 if(BagtKeyboard(VK_DOWN) && vy<0.05 )vy+=maxvitesse;
ReverseBuffers();//draw all
Sleep(10); // wait
EndLoop();
//free all
twheel.free();
tbody.free();
tenemybody.free();
t1.free();
}






Have fun and enjoy