Barre d'énergie et clipsprite
Publié : jeu. 10/mai/2007 4:08
Code : Tout sélectionner
;auteur Huitbit
;barre d'énergie avec clipsprite
;pb v4.02
;***************************************************
#largeur_barre=200
#hauteur_barre=#largeur_barre/10
InitSprite()
OpenWindow(0,0,0,#largeur_barre,2*#hauteur_barre,"barre d'énergie",#PB_Window_ScreenCentered|#PB_Window_SystemMenu )
OpenWindowedScreen(WindowID(0),0,0,#largeur_barre,2*#hauteur_barre,1,0,0)
;dessin de la barre complète
CreateSprite(0,#largeur_barre,#hauteur_barre)
StartDrawing(SpriteOutput(0))
For i=0 To #hauteur_barre/2
Line(0,i,#largeur_barre,0,RGB(100+15*i,0,0))
Line(0,i+#hauteur_barre/2,#largeur_barre,0,RGB(255-15*i,0,0))
Next i
For i = 1 To 9
Line(#hauteur_barre*i,0,0,#hauteur_barre,RGB(100,100,100))
Next i
StopDrawing()
x=0;niveau d'énergie
dx=1;variation du niveau d'énergie
Repeat
Repeat
Event = WindowEvent()
If Event = #PB_Event_CloseWindow
End
EndIf
Until Event = 0
FlipBuffers()
ClearScreen(RGB(0, 0, 0))
ClipSprite(0,0,0,x,#hauteur_barre);affichage partiel de la barre d'énergie
DisplaySprite(0, 0,10)
x=x+dx
If x>#largeur_barre Or x<0
dx=-dx
EndIf
Delay(1)
ForEver

En effet, startdrawing() est trop gourmand par rapport au sprites (d’après ce que j’ai compris) et les gadgets ne vont pas sur les screens (que j'utilise plus souvent).
En plus, on peut faire du style

Clipsprite à l’air très intéressant.
Les bornes d’arcade utilisaient (d’après ce que j’ai vu avec l’émulateur MAME) des grandes planches de sprites et des palettes de couleurs.
une planche de sprites découpés en rondelles de "Gauntlet"
C'était pour torturer les graphistes et les codeurs ou parce que la machine préférait fonctionner comme ça ?
J’ai l’impression que oui, mais c’est juste une impression.Une seule planche de sprites que l’on « clippe » vaut-elle mieux que des dizaines de sprites appelés par le programme ?
Hasta la vista!Comment vous faites vos barres d'énergie ?
PS: encore bravo pour l'aide sur les fenêtres, un copier-coller a suffit pour gommer mes réticences
