Forum Liberty Basic France

Débutant » Signification du sprite gris bitmap correct mais pas pris en compte
Le 01/11/2020 à 14h11

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Salutations dominicales,

Encore un gag de notre langage de programmation qui décidément ne réagit pas comme j'ai décidé qu'il devrait réagir !

J'ai une routine qui dessine un bitmap de 8*16 pixels destiné à devenir sprite, et qui fonctionne.

Dans le programme j'ai besoin de deux sprites, un alien et un missile, les deux sont correctement générés, mais seul le missile est attribué à son sprite, le sprite de l'alien est un carré gris qui n'est pas le bitmap généré.

Comme c'est une routine qu'on appelle pour chaque sprite, le nom du bitmap qu'elle génère est toujours le même, et c'est avec un "addsprite" que je l'attribue au sprite en lui donnant le nom qu'il convient.

Le programme est pour le moment horriblement compliqué pour ce qu'il fait : c'est normal car je prévois de dessiner beaucoup de sprites et qu'il faut prévoir de s'y retrouver dans le futur, je voulais - à titre d'expérience - créer mes sprites comme on le faisait à l'époque des space invaders, et je me suis servi d'un programme tout fait trouvé dans les exemples pour en conserver sa routine d'animation. Mais cette complexité ne devrait pas empêcher l'attribution d'un bitmap à un sprite ?

Code VB :
 
'A partir d'un programme de Rod (rodbird), trouvé dans les exemples,
'dont j'ai gardé la routine d'animation

' ""
'Invaders again! use the mouse to move the gun right click to fire.
'Use this simple video game as a foundation for a more ambitious game.
'Used with permission.
' ""

 'nomainwin

[aliens]
data 60,66,126,129,195,60,66,129
 
[missiles]
data 24,60,126,24,24,60,102,195
 
[vaisseau]
data 24,36,36,24,153,189,231,195
 
[explosion]
'data

 
    WindowWidth  = 800
    WindowHeight = 600
    UpperLeftX   = (DisplayWidth-WindowWidth)/2
    UpperLeftY   = (DisplayHeight-WindowHeight)/2
    graphicbox #w.g, 0,0,800,600
    open "Invaders" for graphics_nf_nsb as #w
    #w "trapclose [quit]"
 
    [initialise]
    x = 1
    y = 2
    dim bullet(6,2) 'bullet x,y
    dim alien(6,2)  'alien x,y
    adir = -10        'alien direction
    aspeed = 1.01     'alien acceleration
    base = 540        'base line of gun

    'box background
    for i = 0 to 150
        j = 256 - i
        #w.g "down ; backcolor ";j/3;" ";j/3;" ";j/3
        #w.g "color ";j/3;" ";j/3;" ";j/3
        #w.g "place ";i;" ";i
        #w.g "boxfilled ";800 - i;" ";600 - i
    next
 
    'stars
    for n = 1 to 100
        c = int(rnd(0)*255)
        #w.g "color ";c;" ";c;" ";c;" ; set ";150+rnd(0)*500;" ";150+rnd(0)*300
    next
    #w.g "getbmp bak 0 0 800 600"
    #w.g "background bak";
    #w.g, "getbmp lebitmap 0 0 ";colonne;" ";ligne+8
 
    'générer les sprites
    'cat=catégorie de sprite
    for cat=1 to 4
        select case cat
            case 1
                'créer les aliens
                restore [aliens]
                couleur$="red"
                gosub [creer_bmpsprite]
                'bmpsave "lebitmap","bitmap";cat;".bmp"
                nd=1    'nombre de lignes de data à lire pour cette catégorie
                for bcl=1 to nd*8
                    for n=1 to 6
                        alien(n,x) = 200+70*n
                        alien(n,y) = 0
                        #w.g "addsprite alien";str$(n);" lebitmap"
                    next
                next
 
            case 2
                'créer les missiles
                restore [missiles]
                couleur$="cyan"
                gosub [creer_bmpsprite]
                'bmpsave "lebitmap","bitmap";cat;".bmp"
                nd=1
                for bcl=1 to nd*8
                    for n=1 to 6
                        bullet(n,x) = 400
                        bullet(n,y) = base
                        #w.g "addsprite bullet";str$(n);" lebitmap"
                    next
                next
 
            case 3
                'restore [vaisseau]
                'nd=1:nsp=1:nom$="alien"
            case 4
                'restore [explosions]
                'nd=1:nsp=1:nom$="alien"
        end select
 
    next
 
    'start the keyboard checking event
    #w.g "when mouseMove [track]"
    #w.g "when leftButtonUp [fire]"
    #w.g "setfocus"
 
 
    ' now start the timer to repeatedly call the drawing loop
    timer 56, [drawingloop]
'timer 500, [drawingloop]
    'now sit and wait
    wait
 
[creer_bmpsprite]
    #w.g, "down"
 
    'préparer le fond du sprite
    #w.g, "backcolor black;color black"
    #w.g, "place 0 0 ; boxfilled 8 16"
 
    'dessiner les zones du sprite
    'on converti les valeurs décimales des datas en valeurs binaires
    'le 1 sera un point visible, le 0 sera un point invisible du sprite
    for ligne=0 to 7
        read decimal
 
        colonne=0
        for exposant=7 to 0 step -1
 
            'détermination des bits
            p=2^exposant
            if decimal>=p then
                bit=1
                decimal=decimal-p
            else
                bit=0
            end if
 
            'en fonction de la valeur du bit
            if bit=0 then
                'le point est transparent
                'il apparait en blanc sur le masque
                'et en noir sur le sprite
                colmask$="white"
                colspr$="black"
            else
                'le point est opaque
                'il apparait en noir sur le masque
                'et dans la couleur du sprite sur le sprite
                colmask$="black"
                colspr$=couleur$
            end if
 
            'placer le point
            #w.g, "color ";colmask$
            #w.g, "set ";colonne;" ";ligne
            #w.g, "color ";colspr$
            #w.g, "set ";colonne;" ";ligne+8
 
            'print bit;
            colonne=colonne+1
        next
        'print
    next
 
    'créer le bitmap du sprite
    #w.g, "getbmp lebitmap 0 0 ";colonne;" ";ligne+8
    #w.g, "up"
 
    return
 
[drawingloop]
    for n = 1 to 6
 
        'move the bullets
        if bullet(n,y) = 540 then
            bullet(n,x) = gunX
        else
            bullet(n,y) = bullet(n,y) -10
            for c= 1 to 6
                'check for collision
                #w.g, "spritecollides alien";str$(c);" list$"
                if left$(list$,6) = "bullet" then
                    'playwave "media\bump.wav",async
                    a = val(mid$(list$,7,1))
                    bullet(a,x) = gunX
                    bullet(a,y) = base
                    alien(c,y) = 600
                    list$ = ""
                end if
            next
            if bullet(n,y) < -40 then bullet(n,y) = base : bullet(n,x) = gunX
        end if
 
        'move the aliens
        alien(n,x) = alien(n,x) + adir
        if alien(n,x) < 0 or alien(n,x) > 760 then bounce=1
 
 
        'place the sprites and draw
        #w.g "spritexy bullet";str$(n);" ";bullet(n,x);" ";bullet(n,y)
        #w.g "spritexy alien";str$(n);" ";alien(n,x);" ";alien(n,y)
        #w.g "drawsprites"
 
    next
 
    'if we hit a wall bounce
    if bounce then
        bounce = 0
        adir = adir * -1
        adir = adir*aspeed
        for m = 1 to 6
            alien(m,y) = alien(m,y)+20
        next
    end if
    wait
 
    [fire]
    'find the first free bullet and launch it
    for b = 1 to 6
        if bullet(b,y)=base then
            bullet(b,y) = base-1
            exit for
        end if
    next
    wait
 
    [track]
    'keep the launch pad lined up with the mouse
    gunX = MouseX-20
    wait
 
    [quit]
    timer 0
    unloadbmp "bak"
    unloadbmp "lebitmap"
    close #w
 
    end
 
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 01/11/2020 à 14h44

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
Il faudrait vérifier la validité du sprite avec un getbmp et un bmpsave; comme tu l'a fait (mais apostrophé) pour le sprite vert
Parce que la conception est suffisamment complexe pour qu'il y ait une (des) erreur(s).
Franchement, tu aime bien compliquer les choses, il serait si simple de charger des images.

Dans ta procédure de sortie tu ne unloade que deux bmp.
Il faudrait unloader tous ceux qui ont été créés dans une boucle ou un par un (ou y a un truc qui m'échappe ?)

Ne faut-il pas que chaque sprite ait son propre bmp ? parce que là il n'y a qu'un seul bmp (lebitmap) ?
Purééééée! plus compliqué, tu meurs!
____________________
Roro

   
Le 01/11/2020 à 18h56

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
ça, je te l'accorde, faut reconnaitre que c'est particulièrement abscon. Trop difficile de faire simple ;)

Une des complexités est de simuler la génération de sprites "façon eighties", ça fait partie du cahier des charges. Aujourd'hui on créé un bitmap avec paint, ou avec des instructions graphiques, on ne définit plus la position des pixels allumés par un bit à 1 dans l'octet codant une ligne du sprite. Tit bout de programme générant les 8 octets définissant un sprite de 8x8 pixels, fournissant la ligne de datas de l'époque :

Code VB :
 
'convertir une grille 8x8 bits en octets
data "00011000"
data "00100100"
data "00100100"
data "00011000"
data "10011001"
data "10111101"
data "11100111"
data "11000011"
 
print "data ";
for a=0 to 7
    read a$
    tr=128
    valeur=0
    for b=1 to 8
        b$=mid$(a$,b,1)
        if b$="1" then valeur=valeur+tr
        tr=tr/2
    next
    if a=7 then print valeur else print valeur;",";
next
 

Citation:

Ne faut-il pas que chaque sprite ait son propre bmp ? parce que là il n'y a qu'un seul bmp (lebitmap) ?

Il n'y a qu'un seul bitmap, parce qu'une fois qu'il a été attribué au sprite "alien" je le redessine pour ensuite l'attribuer au sprite "bullet". peut-être fallait-il que je l'efface entre ces deux définitions de sprites, mais au pire, "bullet" aurait eu le même dessin qu'"alien", et pas un carré gris ?

J'ai simplifié et viré beaucoup de ce qui était boucles, et là ça fonctionne :
Code VB :
 
 'nomainwin

[aliens]
data 60,66,126,129,195,60,66,129
 
[missiles]
data 24,60,126,24,24,60,102,195
 
[vaisseau]
data 24,36,36,24,153,189,231,195
 
[explosion]
'data

 
    WindowWidth  = 800
    WindowHeight = 600
    UpperLeftX   = (DisplayWidth-WindowWidth)/2
    UpperLeftY   = (DisplayHeight-WindowHeight)/2
    graphicbox #w.g, 0,0,800,600
    open "Invaders" for graphics_nf_nsb as #w
    #w "trapclose [quit]"
 
    [initialise]
    x = 1
    y = 2
    dim bullet(6,2) 'bullet x,y
    dim alien(6,2)  'alien x,y
    adir = -10        'alien direction
    aspeed = 1.01     'alien acceleration
    base = 540        'base line of gun

    'box background
    for i = 0 to 150
        j = 256 - i
        #w.g "down ; backcolor ";j/3;" ";j/3;" ";j/3
        #w.g "color ";j/3;" ";j/3;" ";j/3
        #w.g "place ";i;" ";i
        #w.g "boxfilled ";800 - i;" ";600 - i
    next
 
    'stars
    for n = 1 to 100
        c = int(rnd(0)*255)
        #w.g "color ";c;" ";c;" ";c;" ; set ";150+rnd(0)*500;" ";150+rnd(0)*300
    next
    #w.g "getbmp bak 0 0 800 600"
    #w.g "background bak";
 
 
    '               ***** créer le bitmap des aliens ******
    'préparer le fond du sprite
    #w.g, "down"
    #w.g, "backcolor black;color black"
    #w.g, "place 0 0 ; boxfilled 8 16"
 
    'dessiner les zones du sprite
    'on converti les valeurs décimales des datas en valeurs binaires
    'le 1 sera un point visible, le 0 sera un point invisible du sprite
    restore [aliens]
    for ligne=0 to 7
        read decimal
 
        colonne=0
        for exposant=7 to 0 step -1
 
            'détermination des bits
            p=2^exposant
            if decimal>=p then
                bit=1
                decimal=decimal-p
            else
                bit=0
            end if
 
            'en fonction de la valeur du bit
            if bit=0 then
                'le point est transparent
                'il apparait en blanc sur le masque
                'et en noir sur le sprite
                colmask$="white"
                colspr$="black"
            else
                'le point est opaque
                'il apparait en noir sur le masque
                'et dans la couleur du sprite sur le sprite
                colmask$="black"
                colspr$="red"
            end if
 
            'placer le point
            #w.g, "color ";colmask$
            #w.g, "set ";colonne;" ";ligne
            #w.g, "color ";colspr$
            #w.g, "set ";colonne;" ";ligne+8
 
            'print bit;
            colonne=colonne+1
        next
        'print
    next
 
    'créer le bitmap du sprite
    #w.g, "getbmp alien 0 0 ";colonne;" ";ligne+8
    #w.g, "up"
 
 
    '               ***** créer le bitmap des missiles ******
    #w.g, "down"
    #w.g, "backcolor black;color black"
    #w.g, "place 0 0 ; boxfilled 8 16"
 
    restore [missiles]
    for ligne=0 to 7
        read decimal
 
        colonne=0
        for exposant=7 to 0 step -1
 
            'détermination des bits
            p=2^exposant
            if decimal>=p then
                bit=1
                decimal=decimal-p
            else
                bit=0
            end if
 
            'en fonction de la valeur du bit
            if bit=0 then
                'le point est transparent
                'il apparait en blanc sur le masque
                'et en noir sur le sprite
                colmask$="white"
                colspr$="black"
            else
                'le point est opaque
                'il apparait en noir sur le masque
                'et dans la couleur du sprite sur le sprite
                colmask$="black"
                colspr$="yellow"
            end if
 
            'placer le point
            #w.g, "color ";colmask$
            #w.g, "set ";colonne;" ";ligne
            #w.g, "color ";colspr$
            #w.g, "set ";colonne;" ";ligne+8
 
            'print bit;
            colonne=colonne+1
        next
        'print
    next
 
    'créer le bitmap du sprite
    #w.g, "getbmp bullet 0 0 ";colonne;" ";ligne+8
    #w.g, "up"
 
    '               ***** appliquer les bitmaps aux sprites ******
    for n = 1 to 6
        bullet(n,x) = 400
        bullet(n,y) = base
        alien(n,x) = 200+70*n
        alien(n,y) = 0
        #w.g "addsprite alien";str$(n);" alien"
        #w.g "addsprite bullet";str$(n);" bullet"
    next
 
    'start the keyboard checking event
    #w.g "when mouseMove [track]"
    #w.g "when leftButtonUp [fire]"
    #w.g "setfocus"
 
 
    ' now start the timer to repeatedly call the drawing loop
    timer 56, [drawingloop]
'timer 500, [drawingloop]
    'now sit and wait
    wait
 
[drawingloop]
    for n = 1 to 6
 
        'move the bullets
        if bullet(n,y) = 540 then
            bullet(n,x) = gunX
        else
            bullet(n,y) = bullet(n,y) -10
            for c= 1 to 6
                'check for collision
                #w.g, "spritecollides alien";str$(c);" list$"
                if left$(list$,6) = "bullet" then
                    'playwave "media\bump.wav",async
                    a = val(mid$(list$,7,1))
                    bullet(a,x) = gunX
                    bullet(a,y) = base
                    alien(c,y) = 600
                    list$ = ""
                end if
            next
            if bullet(n,y) < -40 then bullet(n,y) = base : bullet(n,x) = gunX
        end if
 
        'move the aliens
        alien(n,x) = alien(n,x) + adir
        if alien(n,x) < 0 or alien(n,x) > 760 then bounce=1
 
 
        'place the sprites and draw
        #w.g "spritexy bullet";str$(n);" ";bullet(n,x);" ";bullet(n,y)
        #w.g "spritescale bullet";str$(n);" 300"
        #w.g "spritexy alien";str$(n);" ";alien(n,x);" ";alien(n,y)
        #w.g "spritescale alien";str$(n);" 300"
        #w.g "drawsprites"
 
    next
 
    'if we hit a wall bounce
    if bounce then
        bounce = 0
        adir = adir * -1
        adir = adir*aspeed
        for m = 1 to 6
            alien(m,y) = alien(m,y)+20
        next
    end if
    wait
 
    [fire]
    'find the first free bullet and launch it
    for b = 1 to 6
        if bullet(b,y)=base then
            bullet(b,y) = base-1
            exit for
        end if
    next
    wait
 
    [track]
    'keep the launch pad lined up with the mouse
    gunX = MouseX-20
    wait
 
    [quit]
    timer 0
    unloadbmp "bak"
    unloadbmp "alien"
    unloadbmp "bullet"
    close #w
 
    end
 

J'ai changé l'échelle des sprites pour qu'ils soient bien visible, mais j'ai rien touché aux conditions de collision, et il aurait fallu que je modifie parce que la zone de collision semble démesurée. Mais c'est pas l'objet de la discussion



Edité par Christophe Le 01/11/2020 à 18h57
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 01/11/2020 à 19h12

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
Bravo ! ça marche; mais quel boulot de ouf.
Si tu veux que ton soft fonctionnel aille dans la bibliothèque, il faudrait que tu lui donne un titre significatif (star shooter ?), et que tu supprime le code non fonctionnel. du premier msg.
De même, il serait judicieux de le sortir de "Débutant" pour le mettre dans "Général" ou "Jeux".
Tu fais comme tu veux, pas de hachoir pour cette fois.
____________________
Roro

   
Le 02/11/2020 à 20h16

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Mais j'espère bien ! ;)

Effectivement, quand on voit le premier listing, on se dit que le positionnement dans "Débutant" est une erreur, mais la question de savoir pourquoi le sprite affiche un carré gris sans rapport avec le dessin qu'il devrait afficher, reste une question de débutant, à laquelle je n'ai pas la réponse ;)

Le premier listing était le point de départ, il n'y a pas de raison de le modifier. Il montre d'ailleurs aux débutants l'exemple à ne pas suivre, parce que j'ai voulu intégrer une routine qui n'était pas du tout au point, dans un programme que je n'étais pas certain de bien comprendre. Les deux ensemble, ça pouvait pas aller bien loin. Erreur typique de débutant, ou de rêveur qui part la fleur au fusil et la tête pleine d'idées.

Cette routine devait gérer la création de bitmaps pour les attribuer à des sprites, et se complique singulièrement si on veut des sprites avec un seul bitmap, et d'autres avec plusieurs bitmaps pour faire des animations. La bonne démarche aurait été de l'étudier à part, et de l'intégrer dans le programme principal seulement quand elle était au point. Et je sais à peine créer un sprite...

Le second listing n'est pas un programme terminé, mais juste une étape qui a permis de supprimer le sac de nœuds du premier. Maintenant, on cherche à étendre ses capacités à une cinquantaine de sprites au lieu de deux, et ce sera une autre étape, pour laquelle je vais probablement ouvrir une discussion dans "jeux".

Sur ce coup là j'ai vraiment agi à la légère. Je laisse la discussion ouverte pour poster des éléments plus en rapport avec son titre et sa description.
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 03/11/2020 à 12h04

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
Dans ton premier code, à la ligne 75 (Notepad++) tu fait "addsprite" sans avoir fait "getbmp" et donc: pas de bmp en mémoire et pas sprite
Ok pour laisser les choses en l'état.
____________________
Roro

   
Le 07/11/2020 à 19h15

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Ayé, j'ai compris où je ne comprenais pas :

je dessine mon sprite
je transforme ce dessin en bitmap : getbmp x1 y1 x2 y2 <nom du bitmap>
j'attribue ce bitmap au sprite : addsprite <nom du sprite> <nom du bitmap>
Jusque là, c'est du classique.

Là où je me gourais, c'est que je pensais qu'une fois qu'on avait attribué le bitmap au sprite, celui-ci n'avait plus besoin du bitmap, et qu'on pouvait donc redéfinir ce bitmap pour l'attribuer à d'autres sprites, par exemple au sprite suivant dans une boucle. En fait, avec addsprite, on n'attribue pas le bitmap au sprite, on établit seulement un lien entre le bitmap et le sprite, et si on casse ce lien, le sprite devient le carré gris.

Dans le premier listing, une boucle crée le dessin des sprites en utilisant le même nom pour le bitmap pour tous les sprites : le sprite des missiles était correctement défini parce qu'étant le dernier créé, il avait toujours le lien avec son bitmap, alors que celui des aliens ne l'avait plus.

CQFD...
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 07/11/2020 à 19h26

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
On doit pouvoir faire dans une boucle, mais il faut changer le nom du bmp pour chaque sprite.
Avec "word$()"; j'aime bien word$()
____________________
Roro

   
Le 08/11/2020 à 13h53

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Je sais ;) Je l'utilise aussi, à l'occasion

Pour les bitmaps d'ici, on peut aussi utiliser un tableau. J'ai procédé comme ça dans cette nouvelle version de l'usine à gaz présentée ici, et ça marche aussi (disons que je n'ai pas vu de messages d'erreur ;).

Cette fois-ci j'ai simplifié le listing pour que son déroulement soit le plus linéaire possible : des étapes simples, qui se répètent et qui sont faciles à dépanner : ça permet de se concentrer sur la suite du programme.

Quand le jeu fonctionnera, il sera toujours temps d'ajouter des cohortes de sprites, et de recourir à des ruses de sioux pour les gérer facilement - si d'aventure on souhaite les laisser modifiables - et éviter de se retrouver avec trois kilomètres de listing...
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 08/11/2020 à 17h04

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2471
Perso, j'aurais fait deux topics;
Un: "Confection de bmp et de sprites à la main façon sixties".
Et un: "Shoot em"; avec des bmp d'importation. (pour y voir plus clair)
____________________
Roro

   
Le 08/11/2020 à 20h26

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 741
Non, eighties ;)

Il y avait effectivement du pour et du contre. Mais j'ai considéré que c'était le jeu en entier (programme et affichage) qui aurait fait un voyage dans le temps, puis revu mes prétentions à la baisse, ce qui devrait permettre d'arriver à un programme relativement simple mais opérationnel.

Mais tant qu'on est pas arrivé au bout ;)
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia7+ Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Débutant » Signification du sprite gris bitmap correct mais pas pris en compte  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie