Allegro Une librairie de développement de jeux vidéo


Support This Project
Hébergé par: SourceForge
Page du projet

  

FAQ d'Allegro
Si la réponse n'est pas ici, demandez et elle sera ajoutée...


Table des matières


Problèmes triviaux



Voir readme.txt.



Sur n'importe quel miroir SimTel, dans le répertoire gnu/djgpp/v2tk/ ou à partir du site Web d'Allegro, http://alleg.sourceforge.net/.



Voir allegro.txt.


Problèmes avec DJGPP



Make fait partie de la distribution standard de djgpp, dans le fichier v2gnu/mak*b.zip (quel que soit le dernier numéro de version). Vous pouvez le récupérer à partir de http://www.delorie.com/djgpp/.



Etes-vous sûr d'avoir installé djgpp correctement ? Vérifiez les instructions dans le fichier readme.1st de DJGPP et en particulier vérifiez que vous avez défini la variable d'environnement DJGPP et ajouté le répertoire djgpp\bin à la variable d'environnement PATH.



Etes-vous sûr de bien utiliser le programme make de GNU et pas une autre version comme celle de Borland ? En cas de doute, tapez make -v et vérifiez que le message de copyright GNU s'affiche.



Vous ne devez pas lancer make à partir de l'explorateur de Windows ! Ouvrez une fenêtre DOS, allez dans votre répertoire Allegro et tapez make sur la ligne de commande.



Etes-vous sûr que l'heure et la date système sont correctes ? Vous avez aussi pu télécharger un fichier récent créé par quelqu'un qui se trouve dans une zone horaire différente. Dans ce cas, vous pouvez attendre quelques heures, avancer temporairement votre heure système ou utiliser un utilitaire comme touch pour changer l'heure des fichiers.



Comme le message d'erreur l'indique, vous devez fournir plus de mémoire au compilateur. Le programme go32-v2 vous indiquera la quantité de mémoire disponible actuellement. Si vous êtes sous DOS, essayez de libérer un peu plus d'espace disque pour l'utilisation comme fichier d'échange. Si vous utilisez win95, augmentez la limite de mémoire DPMI pour votre session DOS jusqu'à 65535 (vous allez devoir saisir cette valeur à la main, parce que la liste déroulante ne va pas au delà de 16384).



Comme le message d'erreur le suggère, il y a un conflit entre des versions récentes de gcc et des versions anciennes de la libc. Vous devriez lire le fichier readme.DJGPP qui se trouve dans l'archive gcc*b.zip (une correction est disponible à la fin de ce fichier).



C:\TEMP\ccdaaaaa(.text+0x9):x.c: undefined reference to `allegro_init'
C:\TEMP\ccdaaaaa(.text+0xe):x.c: undefined reference to `install_keyboard'

Vous n'avez pas lu la doc, si ? :-) Vous devez lier votre programme avec le fichier de la librairie liballeg.a. D'abord, assurez vous que vous avez tout installé correctement (lancer make install devrait faire ça pour vous). Ensuite, si vous compilez à partir de la ligne de commande ou d'un makefile, ajoutez -lalleg à la fin de votre ligne de commande gcc ou si vous utilisez Rhide, allez dans le menu Options/Libraries, tapez alleg dans le premier champ vide et assurez vous que la boîte juste à côté est cochée.



Non, désolé. Pour commencer, liballeg.a fait à peu près 450k, mais vous voudrez aussi probablement divers utilitaires comme le grabber, le setup, etc. Et pourquoi pas tous les programmes d'exemple ? Si on inclut les versions compilées de l'ensemble, une distribution binaire ferait plus de 7 Mo : beaucoup trop gros en pratique ! Plus sérieusement, il n'y a aucune raison que vous ne la compiliez pas vous-même. La compilation est un processus déterministe : avec un fichier d'entrée et une ligne de commande donnés, la même sortie sera toujours produite. Si cela ne marche pas, soit vous n'avez pas les bons fichiers d'entrée (ie. votre copie d'Allegro a eu un problème quelconque), soit pas la bonne ligne de commande (difficile de voir comment ça pourrait arriver, étant donné que tout ce que vous avez à faire est de taper make...) ou votre compilateur a un problème, ie. vous n'avez pas installé djgpp correctement. Vous devez trouver et corriger le problème et pas juste le balayer sous le tapis en faisant compiler Allegro par quelqu'un d'autre pour vous...



Les outils GNU écrivent leurs messages d'erreur vers le canal d'erreur standard, stderr. Malheureusement, command.com est trop stupide pour savoir comment les rediriger, mais heureusement DJ a été assez astucieux pour corriger ça. Vous pouvez utiliser son programme redir pour capturer les messages de sortie, par exemple

         redir -eo make > logfile.txt
      


Problèmes sous DOS



C'est variable. Certaines personnes ont rapporté des problèmes, alors que d'autres disent que ça marche bien. Utilisez la version Windows d'Allegro si vous voulez créer des programmes Windows. Si vous voulez lancer des programmes DOS, utilisez DOS !



Oui, mais avec un peu de paramétrage. Si vous utilisez la version OpenDOS de EMM386, vous devez désactiver leur implémentation DPMI (spécifiez DPMI=OFF dans la ligne device EMM386.EXE de votre config.sys). Vous devez aussi vous assurer que l'option PIC=OFF est active, mais c'est le cas par défaut donc ce ne sera pas un problème si vous ne l'avez pas spécifiquement modifiée.



Vous ne pouvez pas. Cette limite est imposée par le matériel VGA, pas par Allegro. Pour accéder à plus de 256 Ko de mémoire vidéo vous devez utiliser un mode SVGA, ce qui veut dire soit choisir une résolution plus élevée, soit récupérer une copie de SciTech Display Doctor, qui fournit plusieurs modes SVGA en basse résolution.



Cela marche pour certains, mais pour d'autres pas. Le problème est que Creative Labs refuse de fournir ses spécifications, donc nous ne savons pas comment écrire un pilote pour cette carte. Plaignez-vous directement à eux ou achetez une autre carte chez un revendeur plus raisonnable.



Cela peut être dû au fait que vous avez réglé le volume à un niveau très bas : essayez de le changer dans le programme de setup. Allegro mixe plusieurs sons en un seul tampon de sortie, contrairement au lecteur de sons de Windows qui ne joue qu'un échantillon à la fois, donc chaque son individuel ne peut utiliser qu'un petit pourcentage du volume total de sortie. C'est juste le prix à payer pour avoir plusieurs canaux de sortie. Si cela ne vous plaît pas, utilisez le programme de setup pour changer le nombre de canaux : cela peut être n'importe quelle puissance de deux inférieure ou égale à 64 et plus ce nombre sera petit, plus le son sera fort. Vous pouvez aussi utiliser la fonction set_volume_per_voice() décrite dans la documentation. Cela vous permettra d'ajuster le volume général de la sortie sonore digitale d'Allegro.



Essayez d'utiliser un pilote FreeBE/AF (http://www.talula.demon.co.uk/freebe/) ou le produit commercial SciTech Display Doctor (http://www.scitechsoft.com). Si cela ne marche toujours pas, postez une description de votre problème sur la liste de diffusion Allegro, avec une copie de la sortie de l'exécution des programmes afinfo et vesainfo.



L'interface VBE/AF supporte déjà ce système pour les pilotes vidéo : jetez un oeil au projet FreeBE/AF à http://www.talula.demon.co.uk/freebe/. Pour des choses plus générales comme le son, VESA et les routines en mode-X, ce serait assez difficile à faire car les pilotes dépendent d'un tas de fonctions de la librairie de base. Le format djgpp DXE n'est pas assez flexible pour permettre ce genre de choses et nous ne voulons pas rendre Allegro dépendant d'autres paquets de librairies dynamiques.



Oui, euh, vous devez augmenter la taille de votre environnement alors :-) Vous pouvez le faire en modifiant le paramétrage de votre boîte DOS (cliquez sur le menu Système et sélectionnez Propriétés) ou au démarrage dans votre fichier config.sys (eg. shell=c:\command.com /e:8192 /p).


Problèmes sous Windows



Oui, euh, vous devez augmenter la taille de votre environnement alors :-) Vous pouvez le faire en modifiant le paramétrage de votre boîte DOS (cliquez sur le menu Système et sélectionnez Propriétés) ou au démarrage dans votre fichier config.sys (eg. shell=c:\command.com /e:8192 /p).



Assurez-vous que vous n'avez pas un point-virgule à la fin de votre variable MSVCDIR si vous utilisez MSVC, de votre variable MINGDIR si vous utilisez Mingw32 ou de votre variable BCC32DIR si vous utilisez BCC. Aussi, tapez make -v à partir de la ligne de commande et vérifiez que vous utilisez bien le make de GNU et pas celui de Borland ou Microsoft.



Vous devez dire à votre compilateur comment trouver les fichiers d'inclusion et les librairies de DirectX : mettez les chemins des répertoires /include et /lib du SDK DirectX dans le chemin du compilateur/linker. Si vous ne voulez pas modifier votre configuration, vous pouvez simplement copier les fichiers des répertoires /include et /lib du SDK DirectX dans ceux correspondant à votre compilateur.



Vous devez installer une version plus récente du SDK DirectX, au moins la version 5, que vous pouvez trouver sur le site des développeurs Microsoft.



Si un anti-virus (Norton ou McAfee par exemple) tourne en tâche de fond sur votre ordinateur, essayez de le désactiver temporairement.



Vous devez écrire END_OF_MAIN() juste après votre fonction main(). Allegro l'utilise, avec quelques commandes du préprocesseur, pour transformer une fonction main() normale en un point d'entrée Windows WinMain().



Assurez-vous que vous construisez une application Windows GUI et pas une application Windows Console. C'est une option quand vous créez un projet avec MSVC ou Borland C++ Builder. Elle est spécifiée par l'option -tW pour le compilateur Borland C++ en ligne de commande ou par -subsystem:console pour le linker MSVC. Sinon définissez le symbole du préprocesseur ALLEGRO_USE_CONSOLE avant d'inclure les en-têtes d'Allegro si vous avez vraiment besoin de la console pour votre programme.



Si votre programme inclut directement des en-têtes de l'API Win32, lisez la section de la documentation spécifique à Windows.

Si votre programme inclut seulement des en-têtes de la librairie standard C++, vous essayez très probablement de le compiler avec gcc 3.x pour Mingw32 ; dans ce cas, définissez le symbole __GTHREAD_HIDE_WIN32API sur la ligne de commande du compilateur :

         g++ -D__GTHREAD_HIDE_WIN32API program.cpp -lalleg
      


En mode fenêtré, des artefacts restent présents sur le bureau quand la fenêtre est déplacée ou quand une autre fenêtre est placée dessus.

Désactivez la mise à jour directe pour le pilote DirectX fenêtré en utilisant la variable de configuration dédiée. Lisez la section concernant les routines de configuration dans la documentation et le fichier d'exemple allegro.cfg pour plus d'information.



Désactivez la mise à jour directe pour le pilote DirectX fenêtré en utilisant la variable de configuration dédiée. Lisez la section concernant les routines de configuration dans la documentation et le fichier d'exemple allegro.cfg pour plus d'information.


Problèmes sous Unix



Vous devez écrire END_OF_MAIN() juste après votre fonction main(). Allegro l'utilise, avec quelques commandes préprocesseur, pour récupérer une copie de vos paramètres argv[] (il en a besoin pour certaines choses en interne).



Vous êtes probablement sur un système Darwin/MacOS X. Si c'est le cas, assurez-vous que le symbole USE_CONSOLE n'est pas défini dans votre programme : c'est un symbole obsolète qui doit être remplacé par ALLEGRO_USE_CONSOLE. Notez également que main ne peut pas être désactivé sur un système de ce genre : vous ne pouvez simplement pas définir le symbole ALLEGRO_NO_MAGIC_MAIN dans un programme lié avec Allegro.



Vous devez rediriger stderr vers un fichier, pour pouvoir les visualiser plus tard. La méthode pour le faire dépend de votre shell : si vous utilisez un shell style Bourne comme bash, essayez make 2> logfile.txt



Il y a deux raisons possibles : 1) DGA2 supporte peut-être des résolutions/couleurs différentes de X, lancez le programme gfxinfo pour savoir quelles combinaisons vous pouvez utiliser, 2) vous avez peut-être une implémentation de DGA2 boguée, voir question suivante.



Vous utilisez probablement un serveur XFree86 avec une implémentation très boguée de DGA2, comme la 4.0.3 (fournie avec Red Hat 7.1 par exemple). Passer à la 4.1.0 corrigera probablement votre problème. Vous pouvez l'obtenir à partir de ftp://ftp.xfree86.org/pub/XFree86/4.1.0/binaries/ en sélectionnant le répertoire approprié à votre plate-forme et en suivant les instructions que vous trouverez dans le fichier Install.


Problèmes généraux



Le grabber doit être lié avec le code de datedit.c. Mais vous n'avez pas à la faire à la main : lancez seulement make et tout se compilera automatiquement.


Quand je compile Allegro, make échoue avec quelque chose comme `Error: operands given don't match any known 386 instruction' ou `Error: no such instruction `maskmovq %mm3, %mm1''.

Vous devez mettre à jour votre version des GNU binutils. Lisez readme.txt pour déterminer la version minimale requise.



Pas tant que <foobar> n'est pas mentionné dans le readme.txt comme étant une plate-forme supportée. Vous pouvez le porter vous-même, mais ça nécessite généralement un travail important. Si <foobar> est un compilateur DOS 16 bits comme Borland C, vous feriez mieux de carrément oublier cette idée :-)



WIP signifie "work in progress" ou "version en cours de développement" et fait référence à tous les changements qui sont plus récents que la dernière distribution officielle. Les versions WIP de la libraire sont disponibles sous forme de patches à partir du site d'Allegro (http://alleg.sourceforge.net/) et sont généralement assez stables, bien qu'évidemment pas aussi bien testées que des versions stables.



Avez-vous une copie de patch.exe ? Si ce n'est pas le cas, récupérez le à partir du même endroit que celui où vous avez récupéré le reste de djgpp : c'est un outil standard de la distribution du compilateur. Vous pouvez trouver la version compilée avec Mingw depuis http://sourceforge.net/projects/gnuwin32/

Si vous avez le programme patch mais qu'il ne fonctionne pas correctement, assurez vous que vous installez le patch sur une copie non modifiée de la version d'Allegro que vous voulez mettre à jour (ce sera généralement la version officielle la plus récente avant que les WIP existent, mais vérifiez dans le fichier texte que vous trouverez dans la WIP pour être sûr).



Ce fichier est distribué séparément dans les versions WIP. Il est ici : http://alleg.sourceforge.net/wip.html. (alldata.zip)


Comment puis-je afficher différentes images au même moment ? Quand j'affiche la seconde la palette de la première est modifiée.

C'est simplement de cette façon que fonctionne le matériel vidéo : il ne peut y avoir qu'une palette utilisée à un moment donné. Essayez soit de convertir vos images pour qu'elles utilisent toutes la même palette, soit de changer votre mode graphique vers un mode truecolor.



Allez sur le site Allegro.cc (http://allegro.cc/) pour trouver quelques utilitaires comme par exemple FixPal et Smacker.



Le matériel VGA utilise seulement 6 bits pour chaque composante de couleur, ce qui signifie que les valeurs de rouge, vert et bleu dans la palette vont de 0 à 63 et pas jusqu'à 255. Cela vous donne un accès théorique à 2^18 = 262144 couleurs différentes ou 64 niveaux de gris. Si vous en voulez plus vous pouvez essayer d'utiliser la fonction VESA 0x4F08 pour sélectionner un DAC de 8 bits, mais Allegro ne le supporte pas directement et je ne sais pas à quel point c'est fiable sur différents matériels.



Quand vous êtes dans un mode 256 couleurs, la carte VGA affiche la couleur #0 autour de la bordure de la zone d'affichage (dans les modes truecolor ça affiche du noir). Votre couleur bizarre disparaîtra si vous modifiez la palette pour que la couleur #0 soit le noir.



Avec beaucoup de difficultés :-) Il n'y a pas d'astuce aussi simple que de juste modifier la palette, donc vous devrez redessiner l'image plusieurs fois sous une forme plus claire ou plus foncée. Vous pourriez dessiner des rectangles noirs translucides par dessus l'écran pour l'assombrir ou utiliser draw_lit_sprite() pour teinter un bitmap pendant que vous le copiez vers l'écran, mais sachez que ces opérations sont lourdes et nécessitent un PC rapide !

Vous pouvez aussi regarder sur http://www.allegro.cc/ pour des paquets additionnels (notamment FBlend v0.5) permettant d'effectuer cette opération aussi vite que possible.



fade_in() et fade_out() ne fonctionnent que dans les modes 8 bits avec palette. Lisez les questions précédentes pour plus de détails.



Consultez le site Allegro.cc (http://allegro.cc/) pour trouver quelques utilitaires, comme par exemple DTA et Smacker. Vous pouvez aussi utiliser ASE (Allegro Sprite Editor, http://ase.sourceforge.net/), qui permet de dessiner/éditer chaque frame de l'animation et de la sauver au format FLI. Ou vous pouvez utiliser The GIMP (http://www.gimp.org/) avec son plugin GFli, en utilisant les calques comme des frames et sauver votre travail sous "fichier.fli". The Gimp vous permet également d'éditer des fichiers FLI existants.


Comment puis-je rendre certaines parties de mes sprites transparentes dans les modes truecolor ? Je ne comprends pas ce que les docs entendent par "rose clair"...

Dans votre programme de dessin favori, modifiez la couleur en mode RVB en faisant en sorte que les valeurs pour le rouge et le bleu soient au maximum (généralement 255, mais ça dépend des unités utilisées par votre logiciel) et que la valeur du vert soit à zéro. Le résultat est une teinte spéciale de rose clair, qu'on appelle aussi magenta.



Rappelez-vous que les positions des sommets sont stockées dans le format point fixe, donc vous devez utiliser la macro itofix() ou décaler vos coordonnées de 16 bits vers la gauche.



Rappelez-vous que les angles de rotation sont stockées dans le format point fixe, donc vous devez utiliser la macro itofix() ou décaler vos coordonnées de 16 bits vers la gauche. Par exemple, rotate_sprite(bmp, spr, x, y, itofix(32)) effectuera une rotation du graphique de 45 degrés.



Vous essayez probablement d'initialiser la structure du dialogue avec un pointeur sur votre bitmap, exact ? Cela ne marchera pas parce que le dialogue est créé à la compilation, mais le bitmap est seulement chargé à l'éxecution, donc le compilateur ne sait pas encore où il sera localisé. Vous devez affecter un pointeur NULL à la structure du dialogue, puis ensuite copier le pointeur réel du bitmap dans le champ dp lors de l'initialisation de votre programme, après que vous ayez chargé le bitmap en mémoire.



Cela dépend de ce que vous faites exactement. Si vos images sont complètement opaques, il n'y a aucun avantage à utiliser des sprites RLE et ce sera probablement plus rapide d'utiliser des bitmaps classiques avec la fonction blit(). Si vos graphiques contiennent des zones masquées, un sprite RLE sera presque toujours plus petit et plus rapide que la fonction draw_sprite(). Les sprites compilés sont en général plus rapides que les deux autres pour les images masquées et un peu plus rapides pour les images opaques, mais c'est beaucoup plus variable. Ils sont plus efficaces avec des petits sprites, sur des machines plus anciennes et en mode-X et peuvent être plus lents que blit() quand vous utilisez les modes SVGA sur un Pentium (la grande taille des sprites compilés est très mauvaise pour la performance du cache).



Vous devez vous assurer que la logique du jeu est mise à jour à un rythme régulier, mais sauter le rafraîchissement écran de temps en temps si l'ordinateur est trop lent pour suivre. Cela peut être fait en installant un compteur de temps qui va incrémenter une variable globale à la vitesse de la logique de votre jeu, c'est-à-dire :

      volatile int speed_counter = 0;

      void increment_speed_counter()
      {
         speed_counter++;
      }

      END_OF_FUNCTION(increment_speed_counter);

      void play_the_game()
      {
         LOCK_VARIABLE(speed_counter);
         LOCK_FUNCTION(increment_speed_counter);

         install_int_ex(increment_speed_counter, BPS_TO_TIMER(60));

         while (!game_over) {
            while (speed_counter > 0) {
               update_game_logic();
               speed_counter--;
            }

            update_display();
         }
      }



Ajoutez un appel à save_bitmap() quelque part dans votre code. Lisez la documentation de save_bitmap() pour une discussion sur un piège classique dans ce type d'utilisation et exemple de code.



Appelez srand(time(NULL)) au début de votre programme et utilisez ensuite rand()%limite pour obtenir un nombre pseudo-aléatoire entre 0 and limite-1.


Pourquoi ne pas faire une version "allégée" d'Allegro ? Je n'ai pas besoin des routines sonores, mathématiques ou GUI...

Il n'y en a pas besoin. Le linker va uniquement inclure les parties de la librairie que vous utilisez effectivement, donc si vous n'utilisez aucune des routines de texture mapping ou d'affichage de FLIC par exemple, elles ne seront pas intégrées à votre exécutable. Ca ne marche pas parfaitement parce qu'une grande partie du code d'Allegro utilise des pointeurs sur des tables de fonctions qui font que certaines routines non nécessaires sont liées, donc la majorité des fonctions graphiques seront intégrées dans chaque exécutable, mais j'ai essayé de le réduire au minimum. Lisez allegro.txt pour avoir des informations sur des moyens plus précis d'enlever quelques pilotes graphiques et sonores.



Non. Je pense que cette sorte de support matériel serait plus utile dans une vraie librairie 3D, ce qu'Allegro n'est pas et ne sera jamais. Si vous voulez travailler là-dessus, la librairie MESA (une implémentation libre d'OpenGL) est AMHA l'endroit où démarrer.

Cependant, si vous êtes intéressé par l'utilisation d'OpenGL pour le graphisme et d'Allegro pour tout le reste, vous pouvez essayer les différentes librairies additionnelles sur http://www.allegro.cc/ comme AllegroGL.



Il en existe déjà plusieurs qui sont très bien, par exemple les packages JGMOD ou DUMB. Allez voir les librairies d'extension audio sur le site Allegro.cc (http://allegro.cc/). Vous n'êtes pas autorisé à suggérer que l'une de ces librairies soit intégrée à Allegro, parce que ce sujet a déjà été abordé et abandonné dans la liste de diffusion et que je suis fatigué d'en entendre parler.



Il existe déjà plusieurs packages réseau actuellement en développement ou se balladant sur le net et à mon avis, ce genre de code est plus utile en tant que librairie externe qu'il ne le serait en étant intégré à Allegro.



Unisys dispose d'un brevet sur l'algorithme de compression LZW qui est utilisé par le format GIF. Je veux que tout ce qui est dans Allegro soit librement utilisable sans aucune restriction, ce qui veut dire que je ne peux pas inclure un code breveté ou sujet au paiement de royalties.



Peut-être. Essayez d'isoler le plus petit fragment de code capable de reproduire le problème et nous essayerons d'y jeter un oeil. Si vous pouvez nous envoyer un programme de 10 lignes, nous le corrigerons. 100 lignes et nous pourrons probablement le corriger. 1000 lignes et nous n'aurons aucune chance :-)



Bien sûr. Lisez les termes de la licence giftware dans le fichier readme.txt. Vous pouvez faire ce que vous voulez avec et il n'y a aucun problème pour un usage commercial.



Quand ce sera fait ! Un peu d'encouragement est toujours le bienvenu, mais nous n'avons pas de contrainte de temps et nous n'allons pas nous en imposer une pour vous :-) Dès que ce sera fini, se sera distribué.



Le grabber peut importer directement des polices de caractères GRX ou BIOS au format .fnt ou vous pouvez les dessiner sur une image .pcx en utilisant n'importe quel programme de dessin. Sur http://www.talula.demon.co.uk/ttf2pcx/ vous en trouverez un qui permet de convertir des polices de caractères Windows au format TrueType vers le format .pcx.



Regardez les liens sur le site Allegro (http://alleg.sourceforge.net/) Vous pouvez utiliser des patches Gravis (format .pat) ou SoundFont 2.0 (format .sf2), mais ce dernier doit être converti vers un fichier patches.dat avec l'utilitaire pat2dat.



Vous devez télécharger l'outil de conversion makertf (http://www.giffer.com/public/win/pwflemgt/Files/MKRTF104.ZIP) et le compilateur d'aide Windows (ftp://ftp.microsoft.com/Softlib/MSLFILES/HC505.EXE). Créez un répertoire temporaire, copiez le fichier allegro.txi du répertoire allegro/docs et lancez les commandes makertf --no-warn allegro.txi -o allegro.rtf -J allegro.hpj suivi par hcp allegro.hpj. La seconde commande affichera un tas d'avertissements, mais vous pouvez les ignorer.



Le fichier allegro.rtf peut être lu directement avec Microsoft Word et imprimé à partir de là, mais vous devrez d'abord cliquer sur le bouton droit de la souris et mettre à jour la table des matières et les champs d'index pour les remplir avec les données correctes. Sinon, vous pouvez installer le package TeX et utiliser les programmes tex et dvips pour convertir allegro.txi vers le format Postscript.



Regardez sur le site Allegro.cc, http://allegro.cc/. Si vous avez quoi que ce soit à y ajouter, s'il vous plaît envoyez l'adresse !



Cela simplifie la maintenance de votre programme, au cas où la valeur de PI aurait besoin d'être modifiée. Et puis cela rendra votre programme plus portable pour d'autres compilateurs qui utilisent une autre valeur de PI.



Un certain nombre de cartes graphiques ont une implémentation boguée ou incomplète de la norme VESA et souvent la fonction vsync() n'est pas implémentée. Pour des exemples d'affichage sans artefacts, regardez le code du jeu de démonstration, il utilise une grande variété de méthodes pour l'affichage.



Si le code fonctionne sans optimisation, alors ça pourrait être la faute du compilateur. Vous pouvez essayer de feinter le compilateur, par exemple :

      while (!key[KEY_ENTER])
         yield_timeslice();

Dans ce cas, toutefois, ce serait mieux d'utiliser readkey(). Ou envisager de passer à une version plus récente/plus ancienne de votre compilateur.



Voir http://alleg.sourceforge.net/maillist.html.