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