Fenetre Sprite + gadget.. je bloque
Publié : lun. 28/mai/2007 18:10
Salut à tous,
Par rapport au code de Dobro sur les fenetres sprite plus gadget
J'aimerai qu'à la place des carrés, faire scroller un texte (genre greetings) demooldschool.
Ma question : Vaut il mieux ouvrir une fenetre et appeler un Drawtext genre
Code:
DrawText(220+(10*Sin(m/5)),220,"Mon texte ici")
Ou est-il possible de changer du texte en sprite et le faire défiler (j'irai jusqu'au sinus scroll si j'osai Smile
) et comment ?
Pour posser le vis jusqu'au bout j'aimerai meme un petit défilement d'étoiles de droite à gauche en arriere plan (sur le fond noir quoi)
Pour le moment, y'a surement des maladresses mais le script marche.
Par contre niveau coord des sprites, je suis un peu perdu, ils n'apparaissent pas...
Voilà le code, j'ai desactivé le XM pour plus de calme pendant vos tests Smile
Merci de vos lumières
Par rapport au code de Dobro sur les fenetres sprite plus gadget
J'aimerai qu'à la place des carrés, faire scroller un texte (genre greetings) demooldschool.
Ma question : Vaut il mieux ouvrir une fenetre et appeler un Drawtext genre
Code:
DrawText(220+(10*Sin(m/5)),220,"Mon texte ici")
Ou est-il possible de changer du texte en sprite et le faire défiler (j'irai jusqu'au sinus scroll si j'osai Smile

Pour posser le vis jusqu'au bout j'aimerai meme un petit défilement d'étoiles de droite à gauche en arriere plan (sur le fond noir quoi)
Pour le moment, y'a surement des maladresses mais le script marche.
Par contre niveau coord des sprites, je suis un peu perdu, ils n'apparaissent pas...
Voilà le code, j'ai desactivé le XM pour plus de calme pendant vos tests Smile
Code : Tout sélectionner
; Renamer par Ar-S / PB.402
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
#Image_1 ; image haut
#Image_2 ; image bas
#ButtonImage_1 ; Quitter
#Editor_0 ; Panneau affichage
#Image_0 ; logo
#String_0 ; MDP
#Button_1 ; Ouvrir
#sprite ; numero du sprite
EndEnumeration
Structure sprite
num.l ; numero du sprite
x.l ; la coordonée x du sprites
Y.l ; la coordonée y du sprites
sensx.l ; le sens du deplacement x du sprite
sensy.l ; le sens du deplacement y du sprite
coul.l ; la couleur du sprite
EndStructure
nombre_de_Sprite=4
Dim sprite.sprite(nombre_de_Sprite)
For i=1 To nombre_de_Sprite
sprite(i)\x= Random (400) +32 ; on donne une coordonée de depart au sprite
sprite(i)\Y= Random (100)+32
de= Random (1)
If de=1
sprite(i)\sensx=4 ; on donne un sens de deplacement par defaut au sprite
sprite(i)\sensy=4 ; ce chiffre correspond a la vitesse de deplacement du sprite
Else
sprite(i)\sensx=-4 ; on donne un sens de deplacement par defaut au sprite
sprite(i)\sensy=4 ; ce chiffre correspond a la vitesse de deplacement du sprite
EndIf
sprite(i)\coul = RGB ( Random (200)+50, Random (200)+50, Random (200)+50) ; attribut une couleur
Next i
;
Global Image_0_Tooltip
;}
;{ Images
Enumeration
#Image_Image_0
#Image_Image_1
#Image_ButtonImage_2
EndEnumeration
;}
;{ Included Images
DataSection ;>
Image_Image_0:
IncludeBinary "hautt.jpg"
Image_Image_1:
IncludeBinary "basxx.jpg"
Image_ButtonImage_2:
IncludeBinary "ferme.jpg"
EndDataSection ;<
;}
;{ Image Plugins
UseJPEGImageDecoder ()
;}
Define.l Event, EventWindow , EventGadget , EventType , EventMenu
;}
;---------------Je desactive la zic XM pour l'exemple---------------
;- uFMOD flags
;#XM_RESOURCE = 0 ;
;#XM_MEMORY = 1
;#XM_FILE = 2
;#XM_NOLOOP = 8
;#XM_SUSPENDED = 16
;- Zik
;If uFMOD_PlaySong(?xm, ?endxm-?xm, #XM_MEMORY) <> 0
;EndIf
;DataSection
;xm:
;IncludeBinary "Mazik.xm"
;endxm:
;EndDataSection
;---------------------------------------------------------------------
;- Fonts
Global FontID1
FontID1 = LoadFont (1, "arial" , 6)
;- Differents textes
intro$= Chr (10)+ " Entrez le mot de passe" + Chr (10)+ " PUIS cliquer sur Ouvrir" + Chr (10) + " ===>>>"
ok$= Chr (10)+ Chr (13)+ " Operation terminée avec succes"
zob$= Chr (13)+ " Mot de passe incorrect !"
zobi$= Chr (10)+ " Fichier manquant ! Assurez vous" + Chr (13) + " d'avoir copié le renamer" + Chr (10)+ " au même endroit que vos archives."
; fin des differents textes
Procedure OpenWindow_Window_0()
If OpenWindow ( #Window_0 , 450, 200, 345, 160, "Ar-S Renamer 1.5 scrolltext test " , #PB_Window_SystemMenu )
OpenWindowedScreen ( WindowID ( #Window_0 ), 0, 100, 345, 100, 0, 1, 1) ; on creer un ecran graphique dedans
If CreateGadgetList ( WindowID ( #Window_0 ))
ImageGadget ( #Image_1 , 0, 0, 345, 30, CatchImage ( #Image_Image_0 , ?Image_Image_0))
ImageGadget ( #Image_2 , 0, 95, 345, 30, CatchImage ( #Image_Image_1 , ?Image_Image_1))
EditorGadget ( #Editor_0 , 0, 29, 255, 66, #PB_Editor_ReadOnly )
StringGadget ( #String_0 , 255, 57, 90, 20, "" , #PB_String_LowerCase|#PB_String_Password )
SetGadgetFont ( #Button_1 , FontID1)
ButtonGadget ( #Button_1 , 255, 30, 90, 27, "Ouvrir" )
; Window Backcolor
PureCOLOR_SetWindowColor( #Window_0 , $FFFFFF)
EndIf
EndIf
EndProcedure
InitSprite ()
OpenWindow_Window_0()
SetGadgetText ( #Editor_0 , intro$)
; ****** creation des sprites *********
For i=1 To nombre_de_Sprite
CreateSprite (i,4,4) ; creation d'une cellule vide (un sprite)
StartDrawing ( SpriteOutput (i)) ; on va dessiner dans notre sprite un carre coloré
Box (1,1,4,4,sprite(i)\coul) ; voila le dessin du carre vert dans notre sprite
StopDrawing ()
Next i
;**************************************
;{- Event loop
Repeat ;
Event = WaitWindowEvent ()
WindowID = EventWindow ()
GadgetID = EventGadget ()
EventType = EventType ()
If Event = #PB_Event_Gadget
If GadgetID = #Editor_0
ElseIf GadgetID = #ButtonImage_1
End
ElseIf GadgetID = #Button_1
FichierParDefaut$ = "monarchive.rar"
Filtre$ = "*.rar|*.rar"
Filtre = 0
Fichier$ = OpenFileRequester ( "Choisissez le fichier à charger" , FichierParDefaut$, Filtre$, Filtre)
If Fichier$
If GadgetID = #Button_1
mdp$= GetGadgetText ( #String_0 )
If mdp$= "motde" + "passe"
If RenameFile ( "monarchive.rar" , "vrainom.rar" )
SetGadgetText ( #Editor_0 , ok$)
Else
SetGadgetText ( #Editor_0 , zobi$)
EndIf
Else
SetGadgetText ( #Editor_0 , zob$)
EndIf
For i=1 To nombre_de_Sprite
sprite(i)\x= sprite(i)\x+sprite(i)\sensx ; on lance le sprite
sprite(i)\Y=sprite(i)\Y+sprite(i)\sensy
; on va tester les sortie de l'ecran pour creer des rebonds
; les verticales
If sprite(i)\Y<0 ; sort par le haut !!
sprite(i)\sensy=-sprite(i)\sensy ; on inverse le deplacement vertical
EndIf
If sprite(i)\Y>350-16 ; sort par le bas !!
sprite(i)\sensy=-sprite(i)\sensy ; on inverse le deplacement vertical
EndIf
; les horizontales
If sprite(i)\x<0 ; sort par la gauche
sprite(i)\sensx=-sprite(1)\sensx ;on inverse le deplacement horizontal
EndIf
If sprite(i)\x>400-16 ; sort par la droite
sprite(i)\sensx=-sprite(i)\sensx ;on inverse le deplacement horizontal
EndIf
; ********** fin des test de sorti d'ecran *****************
; **************Affichage du sprite ***********
DisplaySprite (i,sprite(i)\x,sprite(i)\Y)
Next i
FlipBuffers ()
ClearScreen ( RGB (0,0,0)) ; on nettoie l'ecran pour le prochain affichage
; *****************************************
EndIf
EndIf
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ;
End
;
; ---------------------------------------
Merci de vos lumières