Forum Liberty Basic France

Le 11/05/2017 à 17h30

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 315
Hello !

Pour illustrer la cinquième dimension évoquée par atomose dans ce fil consacré au projet Itarius, j'ai voulu jouer avec les sprites, mais par manque d'expérience, je suis confronté à un message bitmap named spr0.bmp not found.

spr0.bmp existe bel et bien en tant que bitmap et est généré par une instruction bmpsave.

Comme sur le chemin d'accès à spr0.bmp, il y avait des espaces, et que j'utilise Wine sous Linux, j'ai pensé à une compatibilité restreinte due à Wine, mais placer mes bmp dans un chemin sans espaces n'a pas eu d'effet, toujours spr0.bmp not found

Le principe du programme :
  • on définit un graphisme de 64 pixels de côté (variables largbmp et hautbmp, boucles cycles, ligne, colonne),
  • par cette méthode un graphisme légèrement différent est créé à chaque cycle,
  • à la fin de chaque cycle on sauve le graphisme sous la forme d'un fichier bitmap,
  • puis le sous-programme [defsprite] tente d'attribuer ce bitmap à un sprite, et c'est là qu'arrive l'erreur bitmap named spr0.bmp not found.


J'ai supprimé les autres instruction d'affichage et de redimensionnement de sprite pour alléger le programme. De même les équations sont choisies 'au pif', l'important étant de faire fonctionner ces sprites

Y a-t-il d'autres méthodes si on veut attribuer le contenu d'une zone d'écran à un sprite ?

Le programme :

Code VB :
 
    'sprites

    largbmp=64
    hautbmp=64
 
    'nomainwin

    open "Ellipses" for graphics as #1
        print #1, "fill black"
        print #1, "trapclose [quit]"
        print #1, "down"
        print #1, "place 0 0"
        F1=20
        F2=25
        F3=50
 
        omega1=2*3.14*F1
        omega2=2*3.14*F2
        omega3=2*3.14*F3
 
        pas=0.001
 
        t1=1+(-0.5+rnd(1)/10)
        t2=1+(-0.5+rnd(1)/10)
        t3=1+(-0.5+rnd(1)/10)
 
    for cycles=0 to 20
        f1=127+int(128*sin(omega1*t1))
        t1=t1+pas
 
        for ligne=0 to hautbmp-1
            f2=127+int(128*sin(omega2*t2))
            t2=t2+pas
 
            for colonne=0 to largbmp-1
                f3=127+int(128*sin(omega3*t3))
                t3=t3+pas
                print #1, "color ";str$(f1);" ";str$(f2);" ";str$(f3);" "
                print #1, "set ";20+colonne;" ";25+ligne;" "
            next
        next
 
        print #1, "getbmp bitmap ";20;" ";25;" ";largbmp;" ";hautbmp;" "
        bmpsave "bitmap", "spr";str$(cycles);".bmp"
        gosub [defsprite]
 
        print #1, "flush"
    next
    wait
 
[defsprite]
'définition des sprites
    for cycles=0 to 20
    ' print #1, "addsprite SP";str$(cycles);" spr";str$(cycles);".bmp"
        print #1, "addsprite SP";str$(cycles);" spr0.bmp"
    next
    wait
 
[quit]
    close #1
    end
 
 
____________________
Just Basic : avec Windows XP sur un petit eeepc, ou avec Linux/Mageia5 + Wine (support partiel et quelques petites choses non implémentées)
Hmm, well... And now : how many sugars in my tea ?

   
Le 11/05/2017 à 18h53

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 376
Petite aide juste pck j'aime bien les gens qui sont fous fous dans leur tête ;)


Code VB :
 'sprites

    largbmp=64
    hautbmp=64
 
    nomainwin
 
    open "Ellipses" for graphics as #1
        print #1, "fill black"
        print #1, "trapclose [quit]"
        print #1, "down"
        print #1, "place 0 0"
        F1=20
        F2=25
        F3=50
 
        omega1=2*3.14*F1
        omega2=2*3.14*F2
        omega3=2*3.14*F3
 
        pas=0.001
 
        t1=1+(-0.5+rnd(1)/10)
        t2=1+(-0.5+rnd(1)/10)
        t3=1+(-0.5+rnd(1)/10)
 
    for cycles=0 to 20
        f1=127+int(128*sin(omega1*t1))
        t1=t1+pas
 
        for ligne=0 to hautbmp-1
            f2=127+int(128*sin(omega2*t2))
            t2=t2+pas
 
            for colonne=0 to largbmp-1
                f3=127+int(128*sin(omega3*t3))
                t3=t3+pas
                print #1, "color ";str$(f1);" ";str$(f2);" ";str$(f3);" "
                print #1, "set ";20+colonne;" ";25+ligne;" "
            next
        next
 
        print #1, "getbmp bitmap ";20;" ";25;" ";largbmp;" ";hautbmp;" "
        bmpsave "bitmap", "spr";str$(cycles);".bmp"
        on error goto[nextXD]
        print #1, "addsprite SP";str$(cycles);" spr";str$(cycles);".bmp"
        [nextXD]
        print #1, "flush"
 
    next cycles
    wait
 
 
[quit]
    close #1
    end
 
 
 
____________________
Yo !

MSN Web    
Le 11/05/2017 à 21h06

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 315
Code VB :
 
	on error goto[nextXD]
        print #1, "addsprite SP";str$(cycles);" spr";str$(cycles);".bmp"
        [nextXD]
 


en effet, c'est radical, je prépare la suite ;)
____________________
Just Basic : avec Windows XP sur un petit eeepc, ou avec Linux/Mageia5 + Wine (support partiel et quelques petites choses non implémentées)
Hmm, well... And now : how many sugars in my tea ?

   

 |  |

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