Page 1 sur 2

Serpent infini

Publié : ven. 12/oct./2007 21:58
par zorg
Bonsoir à tous,

voici un petit code inspiré d'un effet que j'avais vu la première fois sur Atari ST. D'ailleurs ceux qui l'ont connu (le ST) se souviendront peut-être du jeu d'où provient le sprite utilisé.
C'est sûr que l'on pourrait précaculer une table de Sin et de Cos mais je n'en ai pas le courage ce soir..

Code : Tout sélectionner

;*******************************
;                              ;
;        Serpent-boule         ;
;   Ecrit en PureBasic 4.02    ;
;                              ;
;   par Zorg, le 12/10/2007    ;
;                              ;
;*******************************

If InitSprite()=0 Or InitKeyboard()=0
  MessageRequester("Erreur","Problème avec DirectX",0)
  End
EndIf

;Ouvre un nouvel écran et crée les sprite
OpenScreen(320,240,32,"Boule")
CreateSprite(1,320,240)
CreateSprite(2,320,240)
CreateSprite(3,320,240)
CreateSprite(4,320,240)
CreateSprite(5,320,240)
CreateSprite(6,320,240)

;Restore le sprite de la boule
CreateSprite(0,32,31)
StartDrawing(SpriteOutput(0))
Restore Boule
For y_boule=0 To 30
  For x_boule = 0 To 31
    Read coul
    Plot(x_boule,y_boule,coul)
  Next x_boule
Next y_boule
StopDrawing()
TransparentSpriteColor(0,RGB(0,255,0))

x.w=150
y.w=140
vitesse_x.w=2
vitesse_y.w=-2
min_x.w=0
max_x.w=320-SpriteWidth(0)
min_y.w=0
max_y.w=240-SpriteHeight(0)
image.w=1

angle_1.f=0
angle_2.f=#PI

Repeat
    ;Calcul des coordonnées - Formule qui tue pour avoir un dépacement pas trop répétitif
    angle_1=angle_1+0.018
    angle_2=angle_2-0.017
    x=120*(Sin(angle_1)*Cos(angle_2*2)*Sin(angle_1*2+angle_2))+150
    y=30*(Cos(angle_2)-Sin(angle_1*0.5)+Sin(angle_2/2)+Sin(angle_2+Cos(angle_2)*3))+110

    ;Permutation des images de fond et affichage du sprite
    image=image+1
    If image>6
      image=1
    EndIf
    UseBuffer(image)
    DisplayTransparentSprite(0,x,y)
    UseBuffer(#PB_Default)
    DisplaySprite(image,0,0)
    FlipBuffers()
    
    ExamineKeyboard()
Until KeyboardPushed(#PB_Key_All)

UseBuffer(#PB_Default)
;Libération de la mémoire
FreeSprite(0)
FreeSprite(1)
FreeSprite(2)
FreeSprite(3)
FreeSprite(4)
FreeSprite(5)
FreeSprite(6)
End

DataSection
Boule:
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $632021, $632021, $632021, $632021, $632021, $632021, $632021, $632021, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $632021, $632021, $424142, $424142, $424142, $424142, $424142, $424142, $424142, $424142, $424142, $632021, $632021, $632021, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $632021, $632021, $424142, $632021, $844121, $632021, $632021, $632021, $632021, $844121, $424142, $424142, $424142, $424142, $424142, $632021, $632021, $632021, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $632021, $632021, $632021, $632021, $844121, $844121, $424142, $424142, $424142, $424142, $424142, $632021, $632021, $632021, $632021, $632021, $632021, $424142, $632021, $632021, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $632021, $632021, $632021, $632021, $A54121, $632021, $632021, $632021, $632021, $424142, $424142, $424142, $424142, $632021, $0, $632021, $0, $0, $0, $424142, $632021, $632021, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $632021, $632021, $632021, $0, $A54121, $A54121, $848284, $848284, $848284, $848284, $424142, $424142, $424142, $424142, $424142, $0, $0, $632021, $0, $0, $0, $632021, $632021, $632021, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $632021, $844121, $424142, $632021, $A54121, $848284, $848284, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $848284, $A54121, $A54121, $632021, $0, $0, $0, $0, $0, $0, $A54121, $632021, $632021, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $632021, $A54121, $424142, $632021, $424142, $A54121, $848284, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $848284, $A54121, $844121, $632021, $0, $0, $0, $0, $0, $0, $0, $632021, $632021, $632021, $FF00, $FF00
  Data.l $FF00, $FF00, $A54121, $848284, $424142, $A54121, $A54121, $848284, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $C64121, $A54121, $A54121, $632021, $422021, $0, $0, $0, $0, $0, $0, $632021, $632021, $632021, $FF00, $FF00
  Data.l $FF00, $A54121, $848284, $848284, $A54121, $844121, $848284, $848284, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $848284, $A54121, $A54121, $844121, $632021, $422021, $0, $0, $0, $632021, $0, $0, $A54121, $632021, $632021, $632021, $FF00
  Data.l $FF00, $A54121, $848284, $424142, $A54121, $844121, $848284, $848284, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $C64121, $C64121, $A54121, $A54121, $844121, $422021, $422021, $0, $0, $0, $844121, $0, $0, $A54121, $632021, $632021, $632021, $FF00
  Data.l $FF00, $848284, $848284, $A54121, $A54121, $A54121, $848284, $848284, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $848284, $A54121, $A54121, $A54121, $844121, $632021, $422021, $0, $0, $0, $0, $632021, $0, $0, $A54121, $844121, $632021, $632021, $FF00
  Data.l $FF00, $848284, $848284, $A54121, $844121, $A54121, $848284, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $E7E3E7, $C64121, $A54121, $A54121, $844121, $632021, $422021, $422021, $0, $0, $0, $632021, $632021, $0, $0, $A54121, $A54121, $0, $632021, $FF00
  Data.l $A54121, $848284, $848284, $A54121, $844121, $632021, $848284, $848284, $848284, $E7E3E7, $E7E3E7, $E7E3E7, $C64121, $C64121, $844121, $844121, $632021, $632021, $422021, $0, $0, $0, $0, $0, $0, $0, $0, $424142, $424142, $0, $632021, $632021
  Data.l $A54121, $E7E3E7, $848284, $A54121, $844121, $844121, $848284, $848284, $424142, $848284, $848284, $848284, $C64121, $844121, $844121, $844121, $422021, $422021, $0, $0, $0, $0, $0, $0, $0, $0, $424142, $424142, $632021, $0, $632021, $632021
  Data.l $A54121, $E7E3E7, $848284, $A54121, $844121, $844121, $632021, $424142, $848284, $424142, $A54121, $A54121, $844121, $844121, $844121, $422021, $422021, $0, $0, $0, $0, $0, $0, $0, $0, $0, $0, $424142, $632021, $632021, $632021, $632021
  Data.l $844121, $848284, $844121, $844121, $0, $632021, $424142, $424142, $424142, $424142, $424142, $424142, $424142, $632021, $632021, $0, $0, $0, $0, $424142, $0, $0, $0, $632021, $0, $A54121, $424142, $0, $0, $632021, $844121, $632021
  Data.l $632021, $848284, $844121, $632021, $0, $632021, $424142, $424142, $632021, $632021, $424142, $632021, $632021, $632021, $0, $0, $0, $0, $0, $0, $0, $632021, $632021, $0, $424142, $424142, $844121, $0, $0, $632021, $424142, $632021
  Data.l $632021, $A54121, $632021, $0, $632021, $0, $848284, $424142, $632021, $632021, $632021, $632021, $632021, $632021, $0, $0, $0, $0, $0, $632021, $632021, $632021, $0, $A54121, $A54121, $844121, $0, $0, $632021, $632021, $424142, $632021
  Data.l $FF00, $632021, $0, $632021, $0, $0, $632021, $632021, $632021, $632021, $632021, $632021, $0, $0, $0, $0, $0, $632021, $632021, $A54121, $A54121, $848284, $A54121, $844121, $844121, $0, $0, $632021, $632021, $424142, $844121, $FF00
  Data.l $FF00, $632021, $632021, $632021, $0, $0, $0, $0, $632021, $632021, $632021, $0, $0, $0, $0, $632021, $A54121, $A54121, $848284, $A54121, $424142, $424142, $844121, $632021, $632021, $0, $632021, $632021, $632021, $424142, $632021, $FF00
  Data.l $FF00, $632021, $844121, $632021, $0, $0, $0, $0, $0, $0, $632021, $632021, $632021, $632021, $424142, $424142, $424142, $424142, $424142, $632021, $632021, $632021, $632021, $632021, $632021, $632021, $844121, $632021, $844121, $632021, $632021, $FF00
  Data.l $FF00, $FF00, $632021, $844121, $632021, $0, $0, $0, $0, $0, $0, $0, $0, $0, $632021, $844121, $844121, $844121, $632021, $632021, $632021, $0, $0, $844121, $632021, $632021, $A54121, $844121, $844121, $632021, $FF00, $FF00
  Data.l $FF00, $FF00, $632021, $844121, $632021, $632021, $0, $0, $0, $0, $0, $0, $0, $0, $0, $0, $0, $0, $632021, $632021, $0, $632021, $844121, $844121, $632021, $844121, $A54121, $632021, $844121, $632021, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $632021, $844121, $A54121, $422021, $422021, $422021, $632021, $0, $0, $0, $0, $0, $0, $0, $0, $632021, $632021, $844121, $844121, $632021, $844121, $632021, $844121, $632021, $632021, $632021, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $632021, $844121, $632021, $632021, $844121, $422021, $422021, $422021, $422021, $0, $0, $632021, $632021, $632021, $844121, $844121, $844121, $632021, $632021, $844121, $844121, $424142, $844121, $632021, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $632021, $424142, $424142, $632021, $424142, $A54121, $844121, $422021, $422021, $422021, $844121, $844121, $424142, $632021, $632021, $844121, $844121, $632021, $632021, $632021, $632021, $632021, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $632021, $424142, $424142, $424142, $424142, $424142, $A54121, $A54121, $A54121, $844121, $424142, $A54121, $844121, $844121, $844121, $844121, $632021, $844121, $632021, $632021, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $632021, $632021, $424142, $424142, $424142, $848284, $848284, $848284, $848284, $A54121, $A54121, $A54121, $A54121, $844121, $632021, $844121, $632021, $632021, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $632021, $632021, $632021, $424142, $424142, $424142, $424142, $844121, $844121, $844121, $632021, $632021, $632021, $632021, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $632021, $632021, $632021, $632021, $632021, $632021, $632021, $632021, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
EndDataSection

Bonne nuit

Zorg

Publié : ven. 12/oct./2007 22:03
par Mytic
J’adore… Bravo :D

Publié : ven. 12/oct./2007 23:43
par Ar-S
Ah trop bien !!!!!! des metaballs :P :P :P :P

Publié : sam. 13/oct./2007 0:30
par Frenchy Pilou
Un serpent minute! 8)
Il n'y a pas moyen à cette résolution, d'avoir une boule plus lissée?

Publié : sam. 13/oct./2007 1:59
par Ollivier
J'aime trop ton boule... J'aime trop ton boule...
Pardon...
Nickel, très jolie ton sprite : je vais te le piquer 2 minutes essayer de voir si ça peut faire un beau skin. Je reposte le code d'ici à quelques heures...

Publié : sam. 13/oct./2007 9:04
par zorg
Frenchy Pilou a écrit :Un serpent minute! 8)
Il n'y a pas moyen à cette résolution, d'avoir une boule plus lissée?
Surement vu que le sprite actuel n'utilise que 10 couleurs, celles d'origine. Si on en rajoute quelques milliers ça devrait être plus beau.

Publié : sam. 13/oct./2007 11:32
par Frenchy Pilou
Alors faut pas hésiter, cela va hypnotiser des milliers de personnes devant leurs moniteurs :lol:

Publié : sam. 13/oct./2007 14:51
par zorg
Frenchy Pilou a écrit :Alors faut pas hésiter, cela va hypnotiser des milliers de personnes devant leurs moniteurs :lol:
Ok, voici le même prog avec une boule lissée et courbe un peu différente pour que le mouvement soit moins rapide. Ca fait plus l'effet de serpent. Il suffit de jouer sur les lignes:

Code : Tout sélectionner

    angle_1=angle_1+0.01
    angle_2=angle_2-0.013
A part ça, j'ai une question. Sur Atari on pouvait définie l'adresse de l'écran physique (que l'on voit) et celle de l'écran logique (où l'on dessine). Existe-t-il quelque chose de semblable en PB? Ca eviterait de faire

Code : Tout sélectionner

    DisplaySprite(image,0,0)
à chaque cycle. En fait je souhaite faire pointer directement l'affichage sur un des six sprites.
Merci d'avance.

Zorg

Code : Tout sélectionner

;*******************************
;                              ;
;        Serpent-boule         ;
;   Ecrit en PureBasic 4.02    ;
;                              ;
;   par Zorg, le 12/10/2007    ;
;                              ;
;*******************************

If InitSprite()=0 Or InitKeyboard()=0
  MessageRequester("Erreur","Problème avec DirectX",0)
  End
EndIf

;Ouvre un nouvel écran et crée les sprite
OpenScreen(320,240,32,"Boule")
CreateSprite(1,320,240)
CreateSprite(2,320,240)
CreateSprite(3,320,240)
CreateSprite(4,320,240)
CreateSprite(5,320,240)
CreateSprite(6,320,240)

;Restore le sprite de la boule
CreateSprite(0,32,31)
StartDrawing(SpriteOutput(0))
Restore Sprite
For y_boule=0 To 30
  For x_boule = 0 To 31
    Read coul
    Plot(x_boule,y_boule,coul)
  Next x_boule
Next y_boule
StopDrawing()
TransparentSpriteColor(0,RGB(0,255,0))

x.w=150
y.w=140
vitesse_x.w=2
vitesse_y.w=-2
min_x.w=0
max_x.w=320-SpriteWidth(0)
min_y.w=0
max_y.w=240-SpriteHeight(0)
image.w=1

angle_1.f=0
angle_2.f=#PI

Repeat
    ;Calcul des coordonnées - Formule qui tue pour avoir un dépacement pas trop répétitif
    angle_1=angle_1+0.01
    angle_2=angle_2-0.013
    x=120*(Sin(angle_1)*Cos(angle_2*2)*Sin(angle_1*2+angle_2))+150
    y=30*(Cos(angle_2)-Sin(angle_1*0.5)+Sin(angle_2/2)+Sin(angle_2+Cos(angle_2)*3))+110

    ;Permutation des images de fond et affichage du sprite
    image=image+1
    If image>6
      image=1
    EndIf
    UseBuffer(image)
    DisplayTransparentSprite(0,x,y)
    UseBuffer(#PB_Default)
    DisplaySprite(image,0,0)
    FlipBuffers()
    
    ExamineKeyboard()
Until KeyboardPushed(#PB_Key_All)

UseBuffer(#PB_Default)
;Libération de la mémoire
FreeSprite(0)
FreeSprite(1)
FreeSprite(2)
FreeSprite(3)
FreeSprite(4)
FreeSprite(5)
FreeSprite(6)
End

DataSection
Sprite:
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $682728, $712C2E, $712C2E, $712C2E, $712C2E, $712C2E, $712C2E, $6A2627, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $612222, $662624, $53413E, $584343, $5B4344, $5B4344, $5C4444, $5C4746, $584949, $54494B, $534446, $642A2C, $642424, $612020, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $621F1F, $6C2424, $5E3E3E, $7C302C, $8E472E, $713330, $6F3031, $6F3031, $713331, $834B33, $594B49, $54494B, $564749, $594446, $5E4243, $71282A, $6C2424, $612020, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $642020, $722424, $7B2828, $7E2F2A, $924428, $90462A, $614443, $594446, $564749, $564B4B, $594B49, $703131, $6F2C2E, $6D282A, $6D282A, $6A2627, $642424, $523D3E, $6D282A, $632222, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $642020, $712424, $712424, $802C24, $B1472C, $843833, $803B37, $7C3B3B, $713B3C, $544F50, $505050, $524E4F, $564749, $66282A, $1F0C0C, $5F1D1D, $1D0707, $100505, $100C0C, $4B3B3C, $6F2627, $642020, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $662422, $712828, $712624, $371611, $AE4E30, $BD6142, $AA9291, $A89C9E, $A89C9E, $A1969A, $706D6E, $646364, $615B5B, $61504E, $584341, $190C0A, $110505, $4F1919, $50202, $20202, $F0606, $662322, $772624, $682220, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $6D2622, $87432C, $614343, $782F2C, $AC4E31, $A48985, $B4A7A5, $FFFAFD, $FFFFFF, $FFFFFF, $FFFFFF, $FFFCFF, $F4EFF4, $A29392, $B15637, $AC472A, $662420, $D0404, $50202, $30101, $0, $30101, $160605, $933820, $772624, $642020, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $6E2723, $A74C31, $664E47, $7A3330, $6F4C44, $B96143, $B4A7A5, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $B79C94, $C25633, $A24927, $712723, $120505, $20101, $0, $0, $0, $50201, $1A0705, $702423, $722424, $621F1F, $FF00, $FF00
  Data.l $FF00, $FF00, $A85236, $9C8380, $6F544F, $AE4F30, $B45B3D, $AC9A96, $FFFAFD, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFF4F6, $E36A49, $C4522C, $B74927, $7A2A24, $441F1F, $50303, $0, $30101, $50202, $30101, $100504, $6F2422, $7C2727, $6E2323, $FF00, $FF00
  Data.l $FF00, $9D462C, $9D8683, $9C8886, $B25636, $A25633, $A18E86, $AEA8AA, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFAFA, $BE9D94, $CA5B36, $C35027, $9F4927, $782C27, $492222, $70404, $0, $C0403, $541D1A, $C0403, $140604, $9E3D22, $802A27, $722424, $621F1F, $FF00
  Data.l $FF00, $A55338, $9E8E88, $775F58, $BA522F, $A55936, $9F908F, $ADACAD, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFAFA, $EC7154, $E35B36, $C8522C, $BD4E27, $944627, $592824, $421F1F, $50303, $0, $100504, $71351D, $100504, $170704, $A44122, $822F27, $7B2727, $6A2222, $FF00
  Data.l $FF00, $8E8282, $9F8F8E, $B95938, $BE5028, $BD5936, $A59391, $B4B1B4, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $BFA29E, $CB5B36, $CA5027, $BF4E27, $9D4727, $7A2E27, $4E2423, $D0505, $20101, $30101, $160605, $61201D, $F0504, $170704, $A84322, $9A4424, $772724, $642020, $FF00
  Data.l $FF00, $908889, $A2908F, $BD5936, $A84E27, $B95636, $A89694, $F6F1F6, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFF0EE, $E76644, $C4522C, $BD4E27, $9E4727, $7D2E27, $562624, $421F1F, $50303, $0, $50202, $561B1B, $5B1D1D, $A0303, $140705, $9F4324, $A24427, $2A100D, $621F1F, $FF00
  Data.l $B15436, $A49493, $A79391, $BC5936, $A14C27, $863E36, $9F9191, $A7A4A7, $B0ADB0, $FEFAFE, $FFFFFF, $FFF4F6, $F17152, $E3542F, $AA5027, $9D4B27, $7E2F27, $6F2624, $462020, $C0505, $20101, $0, $30101, $A0303, $A0303, $50303, $110D0D, $544443, $53423E, $1D0D0C, $642020, $6E2323
  Data.l $CD6342, $F9E3E3, $AE9D9A, $BC5936, $A14E27, $9A5233, $968584, $918E90, $6E6D6E, $9F9A9C, $AE9F9F, $B4938F, $DD5B36, $AC5027, $9E4E27, $904627, $592824, $462020, $D0505, $20101, $0, $0, $0, $0, $0, $40404, $3C3B3C, $4F4446, $642A2C, $230D0D, $6E2323, $7A2627
  Data.l $CA6342, $F6E1DE, $AD9691, $B45331, $944724, $90492C, $7B3C38, $61595B, $848284, $635C5B, $AC593E, $B15637, $9D502F, $9A4B28, $904424, $562823, $43201F, $C0505, $40303, $40404, $20202, $0, $30101, $50202, $70302, $100705, $161211, $463E3E, $642424, $6F2423, $782724, $7B2727
  Data.l $A1593B, $A59089, $A16142, $8F4627, $2F120C, $6E2A27, $594747, $544F50, $595052, $5B4E4E, $5F4C49, $624B46, $624643, $782E28, $682420, $120605, $50303, $20101, $40404, $313031, $60505, $A0303, $110505, $521B1B, $1A0D0C, $8E3E24, $4E3E3C, $110D0C, $170707, $6F2624, $8E422A, $7B2A28
  Data.l $803633, $9C807C, $934F31, $6D2620, $1D0A07, $622728, $564E4F, $564E4F, $702F30, $712F2F, $5B4344, $712F2F, $722A2C, $6D2424, $140505, $30101, $0, $0, $50303, $F0606, $170707, $5F1D1D, $611F1D, $24100D, $59433E, $614942, $7B3E24, $F0605, $140505, $6C2727, $614343, $772C2C
  Data.l $712827, $A4442E, $712A24, $220C0A, $561B1B, $1D1111, $807277, $5F4B4C, $722A2C, $782728, $77282A, $712627, $6E2323, $5F1D1D, $A0303, $0, $30101, $A0303, $170605, $6A231F, $772A27, $722E2C, $351610, $A24323, $A84928, $804224, $190D06, $160605, $632222, $702E2E, $5B4343, $6C2727
  Data.l $FF00, $6C2320, $2C0D0D, $5F1D1D, $110505, $F0606, $612627, $6D282A, $712627, $7A2627, $722424, $642020, $140505, $A0303, $50202, $D0403, $1D0A05, $6C2623, $7B2F2C, $AE472C, $AE4F33, $917B77, $AA4C2F, $9C4724, $8F4323, $200D06, $160605, $642020, $71282A, $5F4443, $80422A, $FF00
  Data.l $FF00, $662220, $712624, $662220, $D0404, $30101, $A0303, $140505, $621F1F, $6E2323, $6E2323, $200A0A, $110505, $D0505, $110A0A, $622624, $9D4328, $A74E33, $967C78, $AE4F33, $6C4C46, $664F4B, $92492F, $802F27, $712623, $230D0A, $682320, $782724, $782E2C, $614343, $682724, $FF00
  Data.l $FF00, $63221F, $8E3E24, $712723, $160605, $30101, $0, $30101, $A0303, $140505, $5F1D1D, $5F1D1D, $5B1D1D, $5C2020, $4F3E3E, $5E4743, $664E44, $665049, $644E4B, $7C302F, $712A2A, $6C2727, $702724, $7A2824, $772624, $772724, $904224, $813027, $904328, $772C28, $612020, $FF00
  Data.l $FF00, $FF00, $712823, $8F4224, $6A2420, $110505, $30101, $0, $0, $30101, $A0303, $D0404, $D0404, $140606, $612423, $804227, $804327, $814328, $712C2A, $712627, $6A2222, $220C0A, $2C110C, $894124, $7E2C27, $812F27, $B24727, $9D4927, $944627, $712723, $FF00, $FF00
  Data.l $FF00, $FF00, $64231F, $8F4224, $7E2E24, $6C2420, $140605, $70404, $A0404, $70303, $30101, $0, $0, $30101, $C0403, $110604, $120704, $1D0C06, $6F2423, $712424, $2E100D, $6D2620, $884223, $914424, $802F27, $984427, $B14627, $833027, $8F4224, $64231F, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $6C2420, $914324, $A74324, $582623, $4C2322, $4F2422, $5E201F, $100505, $70404, $50303, $20101, $30101, $A0303, $D0404, $1A0706, $712623, $7D2E24, $8E4324, $904324, $803027, $944627, $803328, $92472A, $803028, $7B2824, $682320, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $6E2620, $8F4327, $772F2C, $712E2C, $85422A, $5B2C28, $532724, $4F2422, $43201F, $D0505, $120605, $63231F, $6D2623, $6F2824, $8E4227, $944627, $984927, $803027, $7F2E27, $924327, $90462A, $664641, $884228, $682320, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $642423, $594343, $5B4646, $703331, $5E4744, $9E492F, $89462C, $5F2E27, $582723, $5E2A23, $8F4427, $90492E, $684742, $80312A, $823327, $9A4B27, $944627, $7F2E27, $7F2E27, $7D2E28, $722A28, $662422, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $612627, $544344, $564749, $564C4C, $5B504C, $62504B, $AC5236, $B15336, $B15436, $9A5435, $715244, $B14E2E, $9F4B28, $9E4B27, $9D4C27, $964727, $802F27, $904127, $782724, $642020, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $5F2323, $642A2C, $534446, $54494B, $5E5050, $908180, $988684, $968684, $968280, $B25333, $BC5028, $BC4E27, $B54B27, $984627, $802F27, $8E4124, $712723, $62201F, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $5F2323, $632627, $682E2F, $5C4E4F, $615354, $615354, $64504F, $964C2F, $9E4927, $9C4627, $802E24, $712623, $6D2422, $63221F, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
  Data.l $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $6A2627, $712C2E, $712C2E, $772C2C, $7C2C28, $7E2C27, $7D2A27, $6F2423, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00, $FF00
EndDataSection

Publié : sam. 13/oct./2007 15:00
par zorg
Et voici le générateur de data pour créer le sprite de la boule. Il crée un fichier texte à intégrer ensuite à la fin du source ci-dessus.
N'oubliez pas de changer les coordonnées de votre sprite en début de programme.

La couleur transparente dans le serpent boule est du vert : RGB(0,255,0). Facilement modifiable.

Code : Tout sélectionner

;*******************************
;                              ;
; Générateur de section Data   ;
;    à partir d'une image      ;
;    pour le Serpent-boule     ;
;   Ecrit en PureBasic 4.02    ;
;                              ;
;   par Zorg, le 12/10/2007    ;
;                              ;
;*******************************

UseJPEGImageDecoder()
UsePNGImageDecoder()

If InitSprite()=0 Or InitKeyboard()=0
  MessageRequester("Erreur","Problème avec DirectX",0)
  End
EndIf

Global nomfichier.s, nomfichiertxt.s

; Coordonnées du sprite à extraire
origine_x=0
origine_y=0
largeur=32
hauteur=31

nomfichier = OpenFileRequester("Sélectionner le fichier image", "", "Images|*.bmp;*.jpg;*.png", 0)
nomfichiertxt = OpenFileRequester("Sélectionner le fichier texte contenant les datas", "", "Fichier texte|*.txt", 0)


image=LoadImage(0,nomfichier)
If image=0
    MessageRequester("Erreur","Impossible de charger l'image",0)
    End
EndIf

If CreateFile(0, nomfichiertxt)
  If OpenScreen(1024,768,32,"Ecran")
    StartDrawing(ScreenOutput())
    DrawImage(image,0,0)

    WriteStringN(fichier, "DataSection")
    WriteStringN(fichier, "Sprite:")
    For y=origine_y To origine_y+hauteur-1
      texte$="  Data.l "
      For x=origine_x To origine_x+largeur-2
        couleur=Point(x,y)
        texte$=texte$+"$"+Hex(couleur)+", "
      Next x 
      couleur=Point(origine_x+largeur-1,y)
      texte$=texte$+"$"+Hex(couleur)
      WriteStringN(fichier, texte$)
    Next y
    WriteStringN(fichier, "EndDataSection")
    CloseFile(fichier)
    StopDrawing()
  Else
    MessageRequester("Information","Impossible de créer l'image!")
    End
  EndIf
  
Else
  MessageRequester("Information","Impossible de créer le fichier!")
EndIf

Publié : sam. 13/oct./2007 15:21
par Ollivier
Ta question sur l'utilisation de DisplaySprite est intéressante : La solution consiste à ne plus effacer la totalité de l'écran avec ClearScreen() mais juste effacer la queue du serpent. Or dans le cas de cet algo, effacer la queue est un vrai casse-tête...

Publié : sam. 13/oct./2007 15:29
par Ollivier
Oups! Pardon, je n'avais pas regardé l'algo... Dans ton cas, c'est, il me semble la meilleure manière d'afficher le serpent et de le faire défiler : trop d'angles différents pour chercher à faire mieux.

Très bel effet.

Publié : sam. 13/oct./2007 16:30
par Buckethead
Très bon zorg. J'adore cet effet !

La première fois que je l'ai vu c'était dans un screen de la "DRAGONS MEGADEMO". Unlimited bobs. (Mars 1990) C'était vraiment quelque chose...
Image

Publié : sam. 13/oct./2007 16:36
par Frenchy Pilou
marche nickel ton truc
je suis en 1280*1024, pas moyen d'avoir cette résolution? (même dans une fenêtre plus petite)
Car là le sprite est "grossi" à l'écran et donc on voit chaque pixel comme un petit carré :)
(j'ai pas découpé au mieux juste pour tester :roll:

Code : Tout sélectionner

;*******************************
;                              ;
;        Serpent-boule         ;
;   Ecrit en PureBasic 4.02    ;
;                              ;
;   par Zorg, le 12/10/2007    ;
;                              ;
;*******************************

If InitSprite()=0 Or InitKeyboard()=0
  MessageRequester("Erreur","Problème avec DirectX",0)
  End
EndIf

;Ouvre un nouvel écran et crée les sprite
OpenScreen(320,240,32,"Boule")
CreateSprite(1,320,240)
CreateSprite(2,320,240)
CreateSprite(3,320,240)
CreateSprite(4,320,240)
CreateSprite(5,320,240)
CreateSprite(6,320,240)

;Restore le sprite de la boule
CreateSprite(0,32,31)
StartDrawing(SpriteOutput(0))
Restore Sprite
For y_boule=0 To 30
  For x_boule = 0 To 31
    Read coul
    Plot(x_boule,y_boule,coul)
  Next x_boule
Next y_boule
StopDrawing()
TransparentSpriteColor(0,RGB(255,255,255))

x.w=150
y.w=140
vitesse_x.w=2
vitesse_y.w=-2
min_x.w=0
max_x.w=320-SpriteWidth(0)
min_y.w=0
max_y.w=240-SpriteHeight(0)
image.w=1

angle_1.f=0
angle_2.f=#PI

Repeat
    ;Calcul des coordonnées - Formule qui tue pour avoir un dépacement pas trop répétitif
    angle_1=angle_1+0.01
    angle_2=angle_2-0.013
    x=120*(Sin(angle_1)*Cos(angle_2*2)*Sin(angle_1*2+angle_2))+150
    y=30*(Cos(angle_2)-Sin(angle_1*0.5)+Sin(angle_2/2)+Sin(angle_2+Cos(angle_2)*3))+110

    ;Permutation des images de fond et affichage du sprite
    image=image+1
    If image>6
      image=1
    EndIf
    UseBuffer(image)
    DisplayTransparentSprite(0,x,y)
    UseBuffer(#PB_Default)
    DisplaySprite(image,0,0)
    FlipBuffers()
   
    ExamineKeyboard()
Until KeyboardPushed(#PB_Key_All)

UseBuffer(#PB_Default)
;Libération de la mémoire
FreeSprite(0)
FreeSprite(1)
FreeSprite(2)
FreeSprite(3)
FreeSprite(4)
FreeSprite(5)
FreeSprite(6)
End
DataSection
Sprite:
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FCFDFE, $EBF3F8, $E9F0F8, $F7FAFD, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $F6FBFE, $B9DDFE, $88C0FA, $539EEB, $409ADA, $480B8, $D7BC0, $277EC8, $3887C5, $5398C4, $8CB5D3, $E1EAF3, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $EFF9FF, $7BC5FC, $1588F1, $1990FA, $459FFD, $4D9BF7, $37A5E3, $FA8CF, $38B0E0, $1F9CD3, $88DC0, $D85B4, $4192C3, $A60A6, $5191C4, $D2E4F1, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $B3E2FE, $36B4FF, $289EFF, $57FFA, $238DFD, $2087F5, $6EDC, $1192D8, $3DC9ED, $4DCBF7, $44C0ED, $9EC7, $B98BC, $3AA1CB, $2589C0, $1C89C7, $258CC4, $7FB2CD, $F9FAFC, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FEFEFF, $80C8FA, $13A2FD, $3EB4FF, $1E99FF, $7EFF, $308FFF, $1E7BF2, $62D9, $391DD, $3ACAF7, $39C8F9, $4CCEFA, $18B4D8, $9EBD, $C9FC4, $1E9ECE, $2AA4D7, $D93C5, $E7AA7, $3E82A1, $EAF1F4, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $7FBDF5, $309FFB, $C9BFB, $2EA9FF, $1498FF, $128FFF, $2F90FF, $F70ED, $563DA, $994E4, $1FC1F6, $28C4F9, $23C1F0, $21BCE0, $CB0CE, $1FB2D4, $23AFDC, $13A9D8, $96C2, $1D86AF, $337C9D, $5A8FA3, $ECF2F3, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $87C5E7, $74C8, $47FD4, $58DE7, $898F9, $36ACFF, $1F9EFF, $B90FF, $1790FD, $1195F5, $2A0EC, $EAEEA, $34BBEE, $10A5D3, $139DC8, $293BF, $109ECC, $1FA1D2, $17A2D2, $49CC6, $2F95B9, $3698E, $3A738F, $578698, $F9FAFB, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $D3F0FD, $29A9E9, $582CF, $7DCD, $27A7F3, $21ABFE, $51BEFF, $25A2FF, $85FF, $2697FF, $48A9FF, $1697EF, $189FE4, $2CAADD, $B95BB, $C8EAF, $87AE, $1396C7, $1494CF, $895CF, $1096CA, $A7EB0, $5D8E, $135A85, $215F81, $769EAF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FDFEFF, $56DAFE, $56D3FF, $41B1F1, $13A0E1, $3CC0FB, $AA7FB, $23A7FF, $249CFF, $584FF, $298BFF, $388EFE, $1174E0, $B7BCE, $3599CA, $1D8EA6, $158897, $809C, $1B91C1, $148CD0, $84CB, $1A8BC8, $6BA9, $5A94, $115B8E, $1D5C87, $54D74, $D6E0E6, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $A8F0FE, $7D2FF, $46D8FF, $65D0FF, $32B9F0, $50D1FC, $59C9FF, $8EF9, $339AFF, $318BFF, $4690FF, $3C7FF8, $1261D6, $763BC, $1676A5, $7783, $D8180, $798B, $1286B8, $C85CF, $984CD, $1B85C1, $2179B1, $5D95, $95D8F, $C5885, $4570, $5B849D, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $44DAFC, $9CFFD, $B5EB, $23AFE7, $21B2E5, $4ECBF8, $69CBFF, $F81EE, $56A6FF, $9CD5FF, $89B8FF, $3E75E8, $135AC6, $2265B1, $5883, $2E8487, $248880, $87F8D, $318FBD, $1082CC, $1086C7, $238FBD, $1F82AD, $B719A, $C6990, $B6086, $55075, $7496D, $E5ECEF, $FFFFFF
  Data.l $FFFFFF, $E3F3FB, $24BCF6, $19BBF5, $A0D9, $19A6D7, $59BD2, $2DACEB, $3CA4F4, $1D6FDF, $7DBAFF, $C8F9FF, $87B8FA, $2867C7, $1C65B3, $1F6BA1, $C6986, $38888B, $14807E, $7A8C, $F83B0, $1A88C9, $1F94C8, $1293B5, $128DAD, $2288A6, $23809C, $186D8C, $55375, $B4C6F, $9CB6C2, $FFFFFF
  Data.l $FFFFFF, $ABCEF0, $3B9DEE, $48AFF3, $897D0, $26A4CD, $793CA, $399FE9, $3996EE, $1C7AE2, $57A0F9, $78BBFB, $438FD8, $146CAC, $176C9C, $46A89, $127989, $2E868D, $D7984, $14829A, $482AD, $A87BD, $1990BF, $1395B6, $890AF, $986A3, $97A98, $96989, $55175, $3446C, $57849A, $FFFFFF
  Data.l $FFFFFF, $749DE2, $216DD8, $519EEA, $98BC5, $1299BE, $E88C3, $1C82DA, $76CD2, $870DA, $2280E0, $1C80CF, $157EB7, $1D7FA4, $127088, $7080, $1C8492, $258595, $15728D, $1D84A6, $168AB3, $984B3, $7FAD, $188EB3, $1A8FB0, $7FA0, $37294, $46286, $24B73, $3A69, $1A5779, $FFFFFF
  Data.l $FFFFFF, $557CE6, $E60DB, $308ADB, $2A91CB, $1989BE, $2F88D0, $146DD1, $59CB, $59CC, $2370D3, $1973BF, $877A2, $1A8795, $A7583, $56F8B, $147DA2, $1686B4, $A79B2, $2585BD, $E78AF, $1878A9, $2A82AD, $1B78A1, $3182A7, $E7498, $4678B, $85A7E, $2486D, $3D67, $13E64, $FAFBFB
  Data.l $FFFFFF, $4362E3, $245D3, $1A70D0, $3696DA, $158ED0, $982C7, $2389D1, $2381D8, $1977DB, $2C7FE2, $3786DE, $117AC3, $1782B8, $428BBA, $276CA6, $45AA1, $1667B3, $2973BE, $3681C4, $E70AE, $126DA3, $3280A9, $6288, $5668A, $96D8C, $B6684, $95775, $24969, $24467, $24263, $ECF1F3
  Data.l $FFFFFF, $4C5ADE, $932CA, $555C1, $1A80D1, $1889D9, $80C7, $148ECA, $3C99E4, $2283E6, $870E3, $287BED, $4188EF, $1A74DA, $D5BBE, $446DC2, $2355B4, $3EA7, $1153AF, $1160AD, $969A7, $D72A4, $3087A7, $36B87, $6680, $36E85, $D697E, $115D72, $1F5D74, $1A5770, $E4D67, $EFF3F4
  Data.l $FFFFFF, $6B73D6, $1D39BA, $1A58B8, $146EC2, $86EC9, $A71CC, $A71CA, $267BDE, $2B74E9, $1160E6, $135DE7, $1A5DE3, $2261DE, $195DCB, $316AC5, $1558B7, $46A5, $959A8, $969A6, $107FAA, $809F, $248FA4, $A7D8E, $167B8B, $177987, $136E7B, $116573, $35B6C, $145D6F, $306475, $FEFEFE
  Data.l $FFFFFF, $8697D0, $14439F, $2E64AB, $145FAE, $205FC0, $B4CC9, $245D4, $3DD5, $23CD9, $3ADA, $63FD6, $43DCC, $3AC1, $3576D1, $2E83CA, $64AE, $1571AF, $4396C1, $3D9FBD, $2FA1B4, $D94A0, $2797A2, $4808D, $37C88, $2747F, $46B75, $26672, $2626F, $75E6C, $3C7481, $FFFFFF
  Data.l $FFFFFF, $BACDE0, $B6096, $5D93, $1C62AB, $1E4DBB, $223FD3, $142FDD, $112CDC, $142FDA, $1432D5, $203DCF, $193DC3, $B3BB7, $4281CA, $2287BB, $238CB8, $3FA4C2, $47AEC0, $2BA5B3, $21A0A8, $8C91, $E8892, $158190, $7481, $96D78, $26873, $6470, $606E, $5969, $6A949E, $FFFFFF
  Data.l $FFFFFF, $F8FBFC, $42A3BF, $2890B7, $3779C1, $638BB, $B26CC, $D24D4, $1125D3, $F26CF, $B26C9, $1431C5, $1035BC, $234B4, $4A7DC3, $227FAA, $3899B8, $2CA1B8, $28A3B4, $1C9DA9, $20939D, $C7F89, $1C7988, $187084, $6072, $76171, $B6171, $A5D6E, $9596B, $85265, $B0C4CA, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $71C7D7, $3EADD0, $1871BE, $635BD, $D26C4, $26C1, $827C3, $422BF, $18BA, $621B9, $827B7, $2CB2, $3D6BB9, $196E9A, $4395B2, $6889F, $8E9E, $1794A2, $238695, $6476, $166177, $9576F, $12586D, $2566A, $145A6E, $14576B, $145368, $255B6F, $F8F9FA, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $D9EFF5, $2BA5C9, $D77B3, $434A0, $102DAC, $25AB, $1DA9, $218A8, $B19A9, $61DA8, $25A9, $634AC, $1548A3, $115692, $4A8AA9, $208497, $7D8C, $E8593, $247D8A, $115E69, $115461, $95463, $1A5B6A, $135565, $54D5F, $1A5364, $194F60, $89A4AD, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $84C3D8, $318BBB, $854A5, $7339F, $5279F, $209C, $91D9C, $101B9B, $111A9B, $D219B, $142E9D, $113993, $4681, $287291, $388C9C, $77C88, $57786, $116E7B, $3555F, $25059, $195A65, $D525F, $105260, $6495A, $64758, $205868, $F3F6F6, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $F1F7FA, $4A9BBF, $3081B7, $C4FA0, $32F92, $6258F, $15258F, $161F8C, $181F8B, $1B228A, $1F258A, $C3580, $24D77, $15687E, $408B94, $2B838C, $6707B, $5D68, $4F57, $84F57, $A4F57, $2454F, $E4E59, $2414F, $34354, $B4C7CD, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $D0E4EC, $267FA9, $17629C, $94A8F, $33985, $A2E80, $7217A, $11257A, $162679, $1C2476, $113C70, $195B6D, $125D65, $176769, $297377, $1E6B71, $21666C, $145357, $2484B, $474B, $134E52, $E4D53, $54751, $83A3AB, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $BAD4DE, $C6088, $2D6F98, $54E80, $23E76, $326D, $22C69, $E336A, $82A63, $2E516C, $D4C50, $E4B49, $17524F, $55052, $1C5C61, $265D63, $195051, $174C4E, $B484D, $7474B, $C474D, $71969B, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $CADDE3, $3E7A92, $A5777, $94C6F, $53D63, $204A6B, $103D5F, $83959, $29505F, $204B4B, $3532, $3B3B, $4149, $3F4E, $23E4C, $63D46, $43B43, $23B45, $74048, $91A9AC, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $F0F4F5, $6C929F, $1D4D62, $124158, $183E55, $9354C, $8354A, $63746, $234E53, $C3A41, $83844, $174659, $15465F, $F415B, $2354C, $3044, $35626E, $CCD8DA, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $D8DFE2, $6A8390, $D374A, $C3244, $B3444, $23847, $1B4856, $53447, $F3D53, $154764, $D4569, $255172, $5A7A8F, $B2C1C9, $FEFEFE, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
  Data.l $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $F7F8F9, $BFCACB, $829B9F, $648389, $657F88, $4C697C, $5E7C91, $7D98AD, $A8BCCB, $E9EEF2, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF, $FFFFFF
EndDataSection

Publié : sam. 13/oct./2007 16:37
par zorg
Merci à tous, c'est sympa.

Au fait, la boule vient du jeu The Light Corridor.

Publié : sam. 13/oct./2007 16:42
par Buckethead
Oui, The light corridor ! :)