Big ScrollText mais caractères qui se chevauchent
Publié : mer. 03/juin/2009 9:12
Salut
qui peut me dire pourquoi dans le source qui suit, j'ai des caractères/sprites qui se chevauchent. J'ai beau regarder dans tous les sens, je vois pas où est mon erreur !!!
merci de votre aide
qui peut me dire pourquoi dans le source qui suit, j'ai des caractères/sprites qui se chevauchent. J'ai beau regarder dans tous les sens, je vois pas où est mon erreur !!!
merci de votre aide
Code : Tout sélectionner
; Big Scroll
; ©.2009 TazNormand
;EnableExplicit
; Définition de type
;Define.w ScreenW, ScreenH, Index, PosX, PosY, Speed, TailleW, TailleH, i, x
;Define.s char, alphabet, message
; Variables / Constantes
Global alphabet.s="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789<>-/\;().,!?:=+' "
Global message.s="WORIE Eh oui, encore un scrolltext, mais que voulez-vous, je ne m'en lasse pas !!! "
; Structures
Structure SpriteChar
Index.w
PosX.w
PosY.w
Speed.w
Dernier.b
car.s
EndStructure
; Liste Chainées
Global NewList SprChar.spritechar()
; Procédures
Procedure ChargeListe(alphab.s,mess.s)
; Charger Liste Chainée
positionX.w=801
For i=1 To Len(mess.s)
element.w=FindString(alphab,Mid(mess,i,1),1)
If element=0
;stop
Debug element
EndIf
larg=SpriteWidth(element)
positionX+larg+16
Debug Mid(mess,i,1)
Debug positionX
Debug element
Debug larg
AddElement(sprchar())
sprchar()\Index=element
sprchar()\posX=positionX
sprchar()\posY=200
sprchar()\speed=5
sprchar()\dernier=0
sprchar()\car=Mid(mess,i,1)
Next i
sprchar()\dernier=1
EndProcedure
Procedure CreerSprites(alphab.s)
; Choisir la police
LoadFont (1, "impact" , 220)
; Créer sprites
For i.w=1 To Len(alphab)
char.s=Mid(alphab,i,1)
StartDrawing(WindowOutput(0))
DrawingFont ( FontID (1))
tailleH.w=TextHeight(char)
tailleW.w=TextWidth(char)
StopDrawing()
CreateSprite (i,tailleW,tailleH,#PB_Sprite_Texture)
StartDrawing(SpriteOutput(i))
DrawingFont ( FontID (1))
DrawText(0,0,char,RGB(0,255,75),RGB(0,0,0))
StopDrawing()
Next i
EndProcedure
Procedure DisplayChar()
ResetList(sprchar())
While NextElement(sprchar())
sprchar()\posX - sprchar()\speed
DisplayTransparentSprite(sprchar()\index,sprchar()\posX,sprchar()\PosY)
StartDrawing(WindowOutput(0))
DrawText(sprchar()\posx,10,sprchar()\car,RGB(255,255,255),RGB(0,0,0))
StopDrawing()
Wend
If sprchar()\PosX<-60 And sprchar()\dernier=1
chargeliste(alphabet,message)
EndIf
EndProcedure
; Initialisations
If InitSprite () =0 Or InitKeyboard ()=0 Or InitMouse ()=0 Or InitSprite3D()=0
MessageRequester ( "Problème" , "Initialisations impossibles" , 0)
End
EndIf
; Taille écran
ExamineDesktops()
ScreenW.w=DesktopWidth(0)
ScreenH.w=DesktopHeight(0)
; Ouverture écran
If OpenWindow (0,0,0,800,600, "Big Scroll" , #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
If OpenWindowedScreen ( WindowID (0),0,0,800,600,1,0,0)
ClearScreen ( RGB (0,0,0))
; Boucle principale
creersprites(alphabet)
chargeliste(alphabet,message)
Repeat
ClearScreen(RGB(0,0,0))
DisplayChar()
ExamineKeyboard()
ExamineMouse()
Event=WaitWindowEvent()
FlipBuffers()
Until KeyboardPushed ( #PB_Key_Escape ) Or Event= #PB_Event_CloseWindow Or MouseButton ( #PB_MouseButton_Right )
EndIf
EndIf
End