Bonsoir, un petit bout de code pour faire la main sur la 2D

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Bonsoir, un petit bout de code pour faire la main sur la 2D

Message par jbernard13 »

bonsoir
en ce moment j'etudie les nombreux tutos sur les sprites et aussi la 2d
j'ai crée un petit sprite an guise de curseur pour me faire la main
je suis pas un pro en programation , j'ai juste compris comment on crée un curseur ....

Code : Tout sélectionner


;*****************************************
;* Un bout de code  pour apprendre la 2D *
;*****************************************
; on initialise le sprite,le clavier et la souris 
InitSprite()
InitKeyboard()
InitMouse()
; Definition de la constante pour le curseur 
Enumeration
 #curseur
EndEnumeration 


; Creation de l'ecran 800*600 avec une profondeur de 32 bits 


OpenScreen(800,600,32," test de 2D")
 
 
 ; Creation d'un simple sprite pour le cuseur 
 CreateSprite(#curseur,32,32)
 StartDrawing(SpriteOutput(#curseur))
 Circle(4,4,5,RGB(255,255,255))
 StopDrawing()
 
 
  
  ;Boucle principale 
  
  Repeat 
   ClearScreen(RGB(0,0,0))
   ExamineKeyboard()
   ExamineMouse()
   DisplayTransparentSprite(#curseur,MouseX(),MouseY())
   FlipBuffers()
   Until KeyboardPushed(#PB_Key_Escape)
  
   
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Message par Cool Dji »

C'est bien jbernard, l'important en programmation est d'être motivé et de ne pas relacher l'effort (être patient). Parfois, c'est décourageant...
Ensuite, en pratiquant, on s'améliore, on trouve de nouvelles astuces, de nouvelles possibilités...

En partant de ton code, en apportant des modifications légères à chaque fois, tu peux arriver à tester un grand nombre de fonctions de PureBasic...

Les sources d'exemples sur les sprites qui sont dans le repertoires de C:\Program Files\PureBasic\Examples\Sources sont très utiles pour démarrer

Bon courage et encore bravo pour ce début. A bientôt pour la suite
Only PureBasic makes it possible
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

merci , maintenant tu me dire comment je peux ameliorer mon programme svp?
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Message par Cool Dji »

Si on reprends depuis le début.

1 - commence par afficher un sprite : ça, c'est fait
2 - fais le bouger avec les touches du clavier (ou la souris) : ça, c'est fait
3 - fais apparaitre un autre sprite qui bouge tout seul : ça, c'est pas encore fait
4 - quand ces 2 sprites se touchent, tu joues un son ça, c'est pas encore fait

Pour faire le 3, on modifie ton code :

Code : Tout sélectionner

;***************************************** 
;* Un bout de code  pour apprendre la 2D * 
;***************************************** 
; on initialise le sprite,le clavier et la souris 
InitSprite() 
InitKeyboard() 
InitMouse() 
; Definition de la constante pour le curseur 
Enumeration 
 #curseur 
 #cible 
EndEnumeration 

; Creation de l'ecran 800*600 avec une profondeur de 32 bits 

OpenScreen(800,600,32," test de 2D") 
    
 ; Creation d'un simple sprite pour le cuseur 
 CreateSprite(#curseur,32,32) 
 StartDrawing(SpriteOutput(#curseur)) 
 Circle(16,16,16,RGB(255,255,255)) 
 StopDrawing() 
  
; Creation d'un simple sprite pour la cible 
 CreateSprite(#cible,32,32) 
 StartDrawing(SpriteOutput(#cible)) 
 Circle(16,16,16,RGB(255,0,0)) ; Couleur Rouge (Red Green Blue)
 StopDrawing()
 
; Prépare les coordonnées de la cible
CibleX=0
 CibleY=200
 
 ;Boucle principale 
  
  Repeat 
   ClearScreen(RGB(0,0,0)) 
   ExamineKeyboard() 
   ExamineMouse() 
   DisplayTransparentSprite(#curseur,MouseX(),MouseY()) 

; on bouge la cible en augmentant de 1 à chaque fois la positionX
   CibleX+1
; Si la position X de la cible dépasse 800 (la taille de la fenetre) on repart du début
   If CibleX>800
     CibleX=0
   EndIf

; Affiche la cible
   DisplayTransparentSprite(#cible,CibleX,CibleY) 
  
 FlipBuffers() 
   Until KeyboardPushed(#PB_Key_Escape) 
Ensuite, ton travail à faire tout seul : faire bouger la cible également en Y...

Mais as-tu regardé les sources disponibles dans les exemples de PureBasic ?
Only PureBasic makes it possible
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

merci je suis entrain de modifier le code en rajoutant une image de fond
mais comment crée un cercle plus grand? j'ai beau modifier les paramettres et j'obtiens des quarts de cercles ..
j'ai regarder les tutos de Comtois et de kayne
Anonyme

Message par Anonyme »

mais comment crée un cercle plus grand? j'ai beau modifier les paramettres et j'obtiens des quarts de cercles ..

Fait un tuto sur le création de quart de cercle ! :D

Code : Tout sélectionner

 CreateSprite(#cible,32,32)

 Circle(16,16,16,$FF0000)

Ton sprite fait 32x32 pixels
Ton cercle fait 16 de rayon , donc 32 de diamètre , et tu le dessine en 16,16 (x,y) , c'est le centre de ton sprite ( qui fait 32x32 )

don pour un sprite de 64x64 , le cercle donne :


Circle(32,32,32,$FF0000)[/code]
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

merci Cpl.Bator
pour tes explications et bonne année à toi
Répondre