Barre d'énergie et clipsprite

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Huitbit
Messages : 940
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

Barre d'énergie et clipsprite

Message par Huitbit »

Image

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 me rasant ce matin, j’ai eu une idée :roll: : utiliser clipsprite pour afficher un niveau d’énergie.
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 8) avec la barre d’énergie(charger n'importe quel sprite au lieu de le créer comme je l'ai fait dans l'exemple!)

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"
Image
C'était pour torturer les graphistes et les codeurs ou parce que la machine préférait fonctionner comme ça ?

Une seule planche de sprites que l’on « clippe » vaut-elle mieux que des dizaines de sprites appelés par le programme ?
J’ai l’impression que oui, mais c’est juste une impression.
Comment vous faites vos barres d'énergie ?
Hasta la vista!

PS: encore bravo pour l'aide sur les fenêtres, un copier-coller a suffit pour gommer mes réticences :lol:
Elevé au MSX !