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.
Besoin d'aide pour un pauvre sprite enfin je pense [RESOLU]
Besoin d'aide pour un pauvre sprite enfin je pense [RESOLU]
Dernière modification par MetalOS le ven. 02/janv./2009 18:58, modifié 1 fois.
-
- Messages : 1307
- Inscription : dim. 08/juil./2007 18:32
- Localisation : Toulouse
Re: Besoin d'aide pour un pauvre sprite enfin je pense lol
Dobro a mis pleins de petits exemples d'utilisation de sprite, voir tutoMetalOS 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.
Bonne année

Bon ok j'y voie un peut plus claire sur les sprites. voici mon code.
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.
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
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
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
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere