@Mesa : Pas top ton code. Ca scintille.
@Micheao.
■ Ton titre
Problème avec un bout de code n'est pas très explicite.
Modifie ton titre par Problème d'affichage de sprite. Au moins on sait dans quel domaine nous allons opérer.
■ Quelques erreurs dans ce code.
- 0 et #Fond ont le même identifiant. Si tu Debug #Fond, tu auras la valeur 0 tout comme ton sprite 0.
- Si tu crées des sprites transparents alors tu dois aussi activer le décodeur adéquates. UsePNGImageEncoder()
- L'affichage des sprites doit se faire dans la boucle événementielle et non pas avant la boucle.
- Utilises Display
TransparentSprite() pour afficher un sprite transparent.
J'ai enlevé ce qui ne servait à rien, ajouté la constante #SpriteTest, et mis dans l'ordre la séquence d'affichage.
Tu regarderas bien la manière de créer un sprite transparent.
Code : Tout sélectionner
InitKeyboard()
InitMouse()
InitSprite()
UseJPEGImageDecoder()
UsePNGImageEncoder()
Enumeration
#Fond
#SpriteTest
EndEnumeration
; taille de notre écran graphique
Global scrW.i=800 ; largeur en pixels
Global scrH.i=600 ; hauteur en pixels
; variables de déplacement
x.i=scrW + 64 ; positions x correspond à largeur de notre écran + largeur du sprite
y.i=Int(scrH/2) ; position y correspond au milieu vertical de notre écran graphique
If OpenScreen(scrW, scrH, 32, "Tuto simpliste")
LoadSprite(#Fond,"Fond.jpg")
; création du sprite
CreateSprite(#SpriteTest, 225, 64, #PB_Sprite_AlphaBlending)
; Dessin dans le sprite
StartDrawing(SpriteOutput(#SpriteTest))
;Important : Dessin du fond transparent (Couleur RGBA Obligatoire)
;Le dernier parametre de RGBA définit la transparence (0 -> 255)
DrawingMode(#PB_2DDrawing_AllChannels)
Box(0, 0, 225, 64, RGBA(0, 0, 0, 0))
;Dessin du texte avec fond transparent (Couleur RGBA Obligatoire)
DrawText(5,10,"Test de Sprite", RGBA(255, 255, 255, 255), RGBA(255, 255, 255, 0))
StopDrawing()
; on boucle jusqu'à ce que l'utilisateur clique sur le bouton gauche ou appuie sur la touche escape
Repeat
;Affichage des sprites
DisplaySprite(#Fond, 0, 0)
DisplayTransparentSprite(#SpriteTest, x, y, 255)
; on décrémente x pour faire défiler vers la droite
x-2; plus x est petit plus le scroll est lent, et donc plus x est grand plus c'est rapide
If x < 0
x = ScreenWidth()
EndIf
; on inverse les buffers
FlipBuffers()
ClearScreen(RGB(0, 0, 0))
ExamineKeyboard()
ExamineMouse()
Until KeyboardPushed(#PB_Key_Escape) Or MouseButton(#PB_MouseButton_Left)
EndIf
Plus de scintillement de sprite.