Navette 1.1

0/5 (10 avis)

Vue 3 268 fois - Téléchargée 126 fois

Description

Nouvelle version de ce prog comme promis . J' ai donc essayer de corriger le clipping (vous savez lorsque l'on voit que la navette j ' efface et ce redessine) et j' ai tout simplement utiliser une synchronisation d'écran . Le code a un peu changer égalemnt car j' ai fait des fonctions pour rendre le code plus clair .

Source / Exemple :


#include <stdio.h>
#include <allegro.h>
#include <time.h>

//declaration des pointeurs que je ne metrise pas parfaitement
BITMAP *ovni;
BITMAP *buffer;
PALLETE pallete;

int x,y,a; //declaration des variables
void draw();

main()
{
x=320;  //initialisation des variables
y=200;
allegro_init();   //inintialisation d'allegro
install_keyboard();//inintialisation du clavier
install_timer();

printf("-version 2 de pallette, il y a maintenat la synchronisation d'‚cran\n");
printf("le mouvement est donc plus fluide\n\n");
printf("-appuie sur les fleches pour diriger la navette\n\n");
printf("-si tu sors de l'ecran tu reapparaŒtras de l' autre c“t‚\n\n");
printf("-appuies sur ESC 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); //copiie de la memoire virtuel a l'ecran

        while(1)   //boucle attendant la pression des touches disponible
        {
        //readkey();
        draw();
        
        if(key[KEY_ESC])         // sortie de la boucle
        {
        set_gfx_mode(GFX_TEXT,640,480,0,0);
        printf("Ce programme beta a ‚t‚ fait par Lothar en janvier  2003\n");
        readkey();
        exit(0);
        }

        if(key[KEY_DOWN])
        {    //debut de if
        //clear(screen); //efface l'ecran
        y+=5;// 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 reapparaŒt 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+=-5;
        //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+=-5;
        //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+=5;
        //blit(ovni,buffer,0,0,0,0,54,54);
            if(x>630){
            x=-40;
            //blit(ovni,buffer,0,0,0,0,54,54);
            }

        }
        //draw();
        //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()

//programmation des fonctions

void draw()
{
blit(ovni,buffer,0,0,0,0,54,54);
vsync();  // ici la synchronisation
clear(screen);
blit(buffer,screen,0,0,x,y,54,54);

}

Conclusion :


Prog en C compiler avec DJGPP et ALLEGRO . Il se peut que si vous possedez WinXP, a lasortie du prog votre affichage de bureau se dérègle . Dans ce cas fait juste clic droit propriéte puis paramètre et changer votre resolution puis remetter celle que vous voulez ce n'est rien mais je ne sais pas pourquoi ça fait ça .
n'oublier pas l'image de la navette sinon ça ne maechera pas

Codes Sources

A voir également

Ajouter un commentaire Commentaires
kemo_0ne Messages postés 25 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 21 mars 2005
21 mars 2005 à 12:04
Et vous ayez le courage :
1. De lire les règles du site (on envoie pas d'exe)
2. D'arrêter d'écrire comme sur vos portables à la récréation de 10h.
3. De respecter un travail même minime et de critiquer judicieusement.

Donc Lothar, à l'avenir pense plutôt à mettre à jour les infos de ton programme plutôt que de reposter comme une nouvelle source.
fourne Messages postés 25 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 juillet 2012
3 août 2004 à 23:33
j ai mis 1 et encore c pour le courage d avoir ose envoyer une source pareil ...
fourne Messages postés 25 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 19 juillet 2012
3 août 2004 à 23:31
moi j ai meme pas teste mais vu comment c porcio ca donne pas envie . na
revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
19 mai 2003 à 12:50
tu tiens surtout à récupérer un max de point et en plus ça ne sert à rien de récupérer la 1.0 quand on a la 1.1.
Surtout en plus quand la 1.1 sort 2 JOURS après la 1.0....
Si encore la 1.1 apportait de VRAIES nouveautés, passe encore mais là...
cs_Lothar Messages postés 16 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 17 août 2003
17 mai 2003 à 00:25
revinc je ne tiens pas a actualiser les sources et les remplacer car je ve que toute soit dispo
Afficher les 10 commentaires

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.