Forum Liberty Basic France
• Index
• Projets open source » Sprite : Joli exemple d'utilisation La source est donnée sur la première ligne du code.
Voici un joli exemple de création et d'utilisation des sprites.
Cliquez pour changer les rotations.
Code VB :
Cliquez pour changer les rotations.
Code VB :
' http://justbasic.conforums.com/index.cgi?board=games&action=display&num=1335647630 nomainwin pi = acs(-1) open "test" for graphics_nsb_nf as #gr #gr "trapclose [quit]" #gr "home; posxy cx cy; down" #gr "setfocus" R=100 r=25 dim x(12,5), y(12,5) 'now 12 balls at 5 rings dim ind(12) dim da(4) dim dda(4) 'make sprites for i = 0 to 11 #gr "place 30 30" #gr "backcolor black" #gr "circlefilled ";r #gr "place 1 61" #gr "boxfilled 61 121" #gr "backcolor ";rainbow$(i/12) #gr "place 30 90" #gr "circlefilled ";r bmp$="bm"+right$(using("###",i+100),2) #gr "getbmp ";bmp$;" 1 1 60 120" sprLine$=sprLine$+" "+bmp$ next #gr "cls; fill darkcyan" 'pour changer la couleur du fond #gr "getbmp bckgrd 0 0 315 340" #gr "background bckgrd" for ring = 4 to 0 step -1 for i = 0 to 11 spr$="sp";ring;right$(using("###",i+100),2) #gr "addsprite ";spr$;sprLine$ bmp$="bm"+right$(using("###",i+100),2) #gr "spriteimage ";spr$;" ";bmp$ next next #gr "when leftButtonDown [new]" [new] for ring = 4 to 0 step -1 dda(ring)=(int(rnd(1)*5)-2)*2 next for k = 1 to 1000 for ring = 4 to 0 step -1 da(ring)=da(ring)+dda(ring) for i = 0 to 11 a=(i*360/12+da(ring)) /360 *2 *pi x(i,ring) = cx+ R*cos(a) y(i,ring) = cy+ R*sin(a)/4 -105 +ring*2*r '0th ring is bottom one next 'sort by y for i = 0 to 11: ind(i)=i: next for j = 11 to 1 step -1 'number of pairs for i = 0 to j-1 if y(ind(i),ring)>y(ind(i+1),ring) then tmp = ind(i) ind(i)=ind(i+1) ind(i+1)=tmp end if next next 'then draw for i = 0 to 11 x=x(ind(i),ring) y=y(ind(i),ring) spr$="sp";ring;right$(using("###",i+100),2) bmp$="bm"+right$(using("###",ind(i)+100),2) #gr "spriteimage ";spr$;" ";bmp$ #gr "spritexy ";spr$;" ";int(x)-30;" ";int(y)-30 next next timer 50, [nxt] wait [nxt] timer 0 #gr "drawsprites" next wait [quit] close #gr end '--------------------------------------------- ' 0..1 into red-green-blue-red continuous colors function rainbow$(x) hi = int((x*6) mod 6)+ 5*(x<0) 'fixed to 0..5 f = (x*6) mod 1 + (x<0) 'frac, 0..1 q = (1-f) select case hi case 0 : r = 1 : g = f : b = 0 case 1 : r = q : g = 1 : b = 0 case 2 : r = 0 : g = 1 : b = f case 3 : r = 0 : g = q : b = 1 case 4 : r = f : g = 0 : b = 1 case 5 : r = 1 : g = 0 : b = q end select R = int(r*255) G = int(g*255) B = int(b*255) rainbow$= R;" ";G;" ";B end function
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
On ne voit pas la partie arrière du deuxième anneau supérieur ! WTF ?

____________________
Roro
Roro
Clique, tu le verras

____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
• Projets open source » Sprite : Joli exemple d'utilisation La source est donnée sur la première ligne du code.
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie