Page 1 sur 1

Besoin d'aide pour un pauvre sprite enfin je pense [RESOLU]

Publié : mer. 31/déc./2008 18:42
par MetalOS
Salut les copains, voila je cherche à faire une petite appli ou il y à une image qui tape les 4 coins de l'écran en boucle. Pour quitter ce prog j'ai besoin de mettre un texte qui dit "Touche Ech pour quitter". Et c la que j'ai besoin de vous mais je ne suis pas sur si c bien les sprites qu'il faut utiliser pour faire ca ??? Si oui c cool, si ya des exemple c encore plus cool mais je n'en demande pas autant. Merci d'avance les amis.

Ah oui,..... Bonne années 2009 à tous.

Re: Besoin d'aide pour un pauvre sprite enfin je pense lol

Publié : mer. 31/déc./2008 18:46
par beauregard
MetalOS a écrit :Salut les copains, voila je cherche à faire une petite appli ou il y à une image qui tape les 4 coins de l'écran en boucle. Pour quitter ce prog j'ai besoin de mettre un texte qui dit "Touche Ech pour quitter". Et c la que j'ai besoin de vous mais je ne suis pas sur si c bien les sprites qu'il faut utiliser pour faire ca ??? Si oui c cool, si ya des exemple c encore plus cool mais je n'en demande pas autant. Merci d'avance les amis.

Ah oui,..... Bonne années 2009 à tous.
Dobro a mis pleins de petits exemples d'utilisation de sprite, voir tuto
Bonne année :)

Publié : mer. 31/déc./2008 23:43
par MetalOS
Merci désoler j'avais pas vu.

Publié : jeu. 01/janv./2009 2:20
par MetalOS
Bon ok j'y voie un peut plus claire sur les sprites. voici mon code.

Code : Tout sélectionner


If InitSprite() = 0 Or InitKeyboard() = 0
  MessageRequester("Erreur", "Le système de Sprite ne peut pas être initialisé", 0)
  End
EndIf


If OpenScreen(800, 600, 32, "Visualisation")

  ; On charge notre image en BMP 24 bits.
  ; 
  LoadSprite(0, "image.bmp", 0)
  CopySprite(0,1,0)
  
  Repeat
    
    FlipBuffers()
    
    ClearScreen(RGB(0,0,0))
         
    ; On dessine notre Sprite
    DisplaySprite(0, x, x)
    
    x+1
    
     StartDrawing(ScreenOutput()) 
      DrawText(10, 580, "Touche Esc pour quitter." , RGB(242, 249, 85), RGB(0, 0, 0))
     StopDrawing()
    
    ExamineKeyboard()
  Until KeyboardPushed(#PB_Key_Escape)
  
Else
  MessageRequester("Erreur", "Impossible d'ouvrir un écran en 800 * 600 - 32 bits!", 0)
EndIf

End   
La ou je bloque, c comment faire pour que mon sprite ce déplace pour entrer en collision avec chaque bords de l'écran et rebondir sans s'arrêter sauf par l'appuie de la touche echap.

Publié : jeu. 01/janv./2009 7:01
par Backup
voila !!
tout est expliqué dans le code :)

ps : je n'avais pas ton image , alors j'ai crée un sprite
a la place !! , mais il te suffit de decomenter ta ligne chargeant
l'image , et de commenter mes lignes dessinant le sprite ;)




Code : Tout sélectionner

; Dobro
; codé avec mon NC10   ;O)

If InitSprite() = 0 Or InitKeyboard() = 0
    MessageRequester("Erreur", "Le système de Sprite ne peut pas être initialisé", 0)
    End
EndIf

Global Pas_x=2; cette variable indiquera le sens de deplacement x
Global Pas_y= 3; cette variable indiquera le sens de deplacement y
Global largeur_ecran=800
Global hauteur_ecran=600

If OpenScreen(largeur_ecran, hauteur_ecran, 32, "Visualisation")
    
    ; On charge notre image en BMP 24 bits.
    ;
    ;LoadSprite(0, "image.bmp", 0)
    ;CopySprite(0,1,0)
    
    ; *********** creation et dessin d'un sprite *******************
    CreateSprite(0,32,32)
    StartDrawing(SpriteOutput(0))
        Circle(16,16,16,RGB(255,255,15)) ; la tete
        
        Circle( 10,10,5,RGB(0,250,255)); oeil gauche
        Circle( 10,10,2,RGB(0,0,0)); pupille gauche
        
        Circle( 22,10,5,RGB(0,250,255));oeil droit
        Circle( 22,10,2,RGB(0,0,0)); pupille droite
        
        Box (10,22,10,5,RGB(0,0,0)) ;bouche
        Box (7,20,4,4,RGB(0,0,0));coin bouche gauche
        Box (20,20,4,4,RGB(0,0,0));coin bouche droit
    StopDrawing()
    ; ********************************************************
    
    
    Repeat
        
       
        
        ; On dessine notre Sprite
        DisplaySprite(0, x, y)
        
        ; *** fait avancer notre sprite ***
        x=x+Pas_x
        y=y+Pas_y
        ; ****************************
        
        ; *** les tests pour surveiller les sorties d'ecran ***
        If x>largeur_ecran -32; le sprite va sortir par la droite de l'ecran (on retire 32 car c'est la largeur du sprite)
            Pas_x=-Pas_x ; on inverse le sens du deplacement X en mettant une valeur inverse 
        EndIf
        If x<0 ; le sprite va sortir par la gauche de l'ecran
            Pas_x=-Pas_x ; on inverse le sens du deplacement X en mettant une valeur inverse 
        EndIf
        ; ** pour les Y
        If y>hauteur_ecran-32 ; le sprite va sortir par le Bas de l'ecran (on retire 32 car c'est la hauteur du sprite)
            Pas_y=-Pas_y ; on inverse le sens du deplacement Y en mettant une valeur inverse 
        EndIf
        If y<0 ; me sprite va sortir par le Haut de l'ecran
            Pas_y=-Pas_y ; on inverse le sens du deplacement Y en mettant une valeur inverse 
        EndIf
        
        
        ; *********************************************
        
        FlipBuffers() 
        ClearScreen(RGB(0,0,0))
        
        
        StartDrawing(ScreenOutput())
            DrawText(10, 580, "Touche Esc pour quitter." , RGB(242, 249, 85), RGB(0, 0, 0))
        StopDrawing()
        
        ExamineKeyboard()
    Until KeyboardPushed(#PB_Key_Escape)
    
Else
    MessageRequester("Erreur", "Impossible d'ouvrir un écran en 800 * 600 - 32 bits!", 0)
EndIf

End    
  

Publié : jeu. 01/janv./2009 15:08
par MetalOS
Super merci dobro. Et ca aussi été codé sur MON NC10 lol.

Publié : ven. 02/janv./2009 18:46
par Kwai chang caine

Code : Tout sélectionner

; Dobro 
; codé avec mon NC10   ;O) 
:lol: :lol: