Petite navette que l'on controle avec les fleches du clavier . qui sais ce prog deviendra peut être un grand jeu plus tard
Source / Exemple :
#include <stdio.h>
#include <allegro.h>
//declaration des pointeurs que je ne metrise pas parfaitement
BITMAP *ovni;
BITMAP *buffer;
PALLETE pallete;
int x,y,a; //declaration des variables
main()
{
x=320; //initialisation des variables
y=200;
allegro_init(); //inintialisation d'allegro
install_keyboard();//inintialisation du clavier
printf("-appuie sur les fleches pour diriger la navette\n\n");
printf("-si tu sors de l'ecran tu reapparaOtras de l' autre c"t,\n\n");
printf("-appuies sur A pour quitter\n\n\n\n\n\n");
printf("maintenant appuie sur une touche pour commencer\n");
readkey();
set_gfx_mode(GFX_AUTODETECT,640,480,0,0); //mode video
buffer=create_bitmap(54,54); //creation d' une memoire virtuel
clear(buffer);
ovni=load_bitmap("ovni4.bmp",pallete);
set_pallete(pallete);
blit(ovni,buffer,0,0,0,0,54,54); //copie de l'image da,s la memoire virtuel
blit(buffer,screen,0,0,x,y,54,54); //copie de la memoire virtuel a l'ecran
while(1) //boucle attendant la pression des touches disponible
{
readkey();
if(key[KEY_Q]) // sourtie de la boucle
{
set_gfx_mode(GFX_TEXT,640,480,0,0);
printf("Ce programme beta a ,t, fait par Lothar\n");
readkey();
exit(0);
}
if(key[KEY_DOWN])
{ //debut de if
clear(screen); //efface l'ecran
y+=20;// deplacement de 20 pixels
blit(ovni,buffer,0,0,x,y,54,54); //coie l'ovni qui s'est deplacer dans la memoire virtuel
if(y>450){ //si l'ovni sors de l'ecran par le bas alors
y=-40; //il reapparaOt en haut
blit(ovni,buffer,0,0,x,y,54,54); //copie l'emplacement de l'ovni ds la memoire virtuel
} //fine du 2eme if
} //fin du 1er if
//les commentaires sont les meme pour les commande suivantes
//avec qq nuances
if(key[KEY_UP])
{
clear(screen);
y+=-20;
blit(ovni,buffer,0,0,0,0,54,54);
if(y<-40){
y=450;
blit(ovni,buffer,0,0,x,y,54,54);
}
}
if(key[KEY_LEFT])
{
clear(screen);
x+=-20;
blit(ovni,buffer,0,0,0,0,54,54);
if(x<0){
x=625;
blit(ovni,buffer,0,0,0,0,54,54);
}
}
if(key[KEY_RIGHT])
{
clear(screen);
x+=20;
blit(ovni,buffer,0,0,0,0,54,54);
if(x>630){
x=-40;
blit(ovni,buffer,0,0,0,0,54,54);
}
}
blit(buffer,screen,0,0,x,y,54,54);
//j'ai mis ceci en commmentaire car c'est une erreur que j'avais faite
//et pour ne pas le refaire et bien je l'est mise en commentaire
// if (x>645){
//blit(buffer,screen,0,0,-5,y,54,54);
// }
} //fin de while(1)
}//fin de main()
Conclusion :
Prog C compiler avec DJGPP et ALLEGRO . Je trouve le clipping plutot agaçant, nous modifierons ça dans la prochaine version . N'oubliez pas que pour que ce prog fonctionne correctement vous avez besoins de l'image . il faut la mettre dans le meme repertoire que l'EXE que vous compilerais vous même :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.