Code : Tout sélectionner
EnableExplicit
#NomAppli$="SinusScroll"
#LargeurEcran=800
#HauteurEcran=600
#NomFonte$="199-64x64.png"
#LargeurFonte=64
#HauteurFonte=64
#NbCaracParLigne=13
#Amplitude=150
#PosYCentre=300
Global.i ib
Global.i fonte, largeurImageFonte, nbCaracteresParLigneFonte, nbCaracteresParLigneEcran,*texte
Global texte$
Global.i decalage=0
Global.i vitesseCaracteres = 1, vitesseCourbe = 1 ;les valeurs positives seulement
Global.i j=0
Global.i i, j2, k
Global.a car
Global.i x,y
texte$="abcdefghijklmnopqrstuvwxyz"
texte$= Space(#nbCaracParLigne) + UCase(texte$) + Space(#nbCaracParLigne); + Chr(0)
*texte=@texte$ +5
Global Dim posY.i(360)
For ib=0 To 359
posY(ib)=Cos(Radian(ib))*#Amplitude+#PosYCentre
Next
UsePNGImageDecoder()
If InitKeyboard()=0 Or InitSprite()=0
MessageRequester("Error", "Initialization failed !", #PB_MessageRequester_Ok|#MB_ICONERROR)
End
EndIf
If OpenWindow(0,0,0,#LargeurEcran,#HauteurEcran,#NomAppli$,#PB_Window_BorderLess)=0 Or
OpenWindowedScreen(WindowID(0),0,0,#LargeurEcran,#HauteurEcran)=0
MessageRequester("Error", "Couldn't open the screen !", #PB_MessageRequester_Ok|#MB_ICONERROR)
End
EndIf
fonte=LoadSprite(#PB_Any, #NomFonte$)
If fonte=0
MessageRequester("Error", "GFX not loaded !",#PB_MessageRequester_Ok|#MB_ICONERROR)
End
EndIf
largeurImageFonte=SpriteWidth(fonte)
nbCaracteresParLigneFonte=largeurImageFonte/#LargeurFonte
j=0
Repeat
Repeat
Until WindowEvent()=0
ClearScreen(0)
j2=j
For i=0 To (#largeurEcran/#largeurFonte)+1
car=PeekA(*texte+i)-32
x=(car%nbCaracteresParLigneFonte)*#largeurFonte
y=(car/nbCaracteresParLigneFonte)*#hauteurFonte
For k=0 To #LargeurFonte-2 Step 2
ClipSprite(fonte,x+k,y,2,#hauteurFonte-6)
DisplayTransparentSprite(fonte,(i*#largeurFonte)-decalage+k,posY(j2));
j2+1
j2%360
Next
Next
j+vitesseCourbe
j%360
decalage+vitesseCaracteres
If decalage>=#largeurFonte
j + decalage - (#LargeurFonte / 2)
j % 360
decalage%#largeurFonte
If PeekC(*texte+(#nbCaracParLigne+1) * SizeOf(Character))=0
*texte=@texte$
Else
*texte+1
EndIf
EndIf
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)