Fenetre Sprite + gadget.. je bloque

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Fenetre Sprite + gadget.. je bloque

Message par Ar-S »

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 :P) 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

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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

........
Dernière modification par Backup le mar. 19/août/2014 14:23, modifié 1 fois.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Rhoooo lala !! trop puissant ! :P :P :P :P :P :P :P :P
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Nedit pas trop à Dobro qu'il est puissant,il va commencer à le croire et à draguer !
:wink:
Denis

Bonne Jounée à tous
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

:)
Répondre