Navette 1.1

0/5 (10 avis)

Vue 3 216 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
Messages postés
25
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
21 mars 2005

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.
Messages postés
25
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
19 juillet 2012

j ai mis 1 et encore c pour le courage d avoir ose envoyer une source pareil ...
Messages postés
25
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
19 juillet 2012

moi j ai meme pas teste mais vu comment c porcio ca donne pas envie . na
Messages postés
385
Date d'inscription
mardi 15 octobre 2002
Statut
Membre
Dernière intervention
19 décembre 2017

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à...
Messages postés
16
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
17 août 2003

revinc je ne tiens pas a actualiser les sources et les remplacer car je ve que toute soit dispo

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.