Navette 1.0

Description

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 :)

Codes Sources

A voir également

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.