Comment calculer la valeur d'un sprite dans une zone définie

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Comment calculer la valeur d'un sprite dans une zone définie

Message par Micoute »

Bonjour à tous,

pour l'instant, je n'ai fait que ça, les sprites, c.-à-d. l'image de fond, les pièces de monnaie, mais j'aimerais que quand on descend les pièces dans la zone en bas, ça me cumule la valeur des pièces, c'est pour cette raison que j'ai mis un fond de couleur différente.

J'aimerais aussi placer un bouton pour valider l'opération, mais je n'envisage pas encore comment je vais m'y prendre.

C'est pourquoi, je me tourne vers vous pour solliciter votre aide bienveillante et je vous en remercie par anticipation.

Imageimagik
Imageimagik
Imageimagik
Imageimagik
Imageimagik
Imageimagik
Imageimagik
Imageimagik
Imageimagik
Imageimagik

Code : Tout sélectionner

;Monnaie

;Niveau 1 : maximum 12€
;Niveau 2 : maximum 99 centimes
;Niveau 3 : euros et centimes
;Niveau 4 : rendre la monnaie, juste des euros
;Niveau 5 : rendre la monnaie, juste des centimes
;Niveau 6 : rendre la monnaie, euros et centimes

Enumeration
  #Fenetre_principale
EndEnumeration

Enumeration Gadgets
  #Btn_valider
  #Fond
EndEnumeration

Enumeration Polices
  #Police
  #Police2
  #Police3
EndEnumeration  

Structure Monnaie
  Sprite.i ;Id de la pièce
  x.i      ;Position horitontale de la pièce
  y.i      ;Position verticale de la pièce
  Largeur.i;Largeur de la pièce
  Hauteur.i;Hauteur de la pièce
  Valeur.i ;Valeur de la pièce (en centimes)
  Type.b   ;Type de pièce (Euro ou centime)
EndStructure

Structure Present
  cout_Euros.i  ;Prix coûtant euros
  cout_Cts.i    ;Prix coûtant centimes
  donne_Euros.i ;Prix payé euros
  donne_Cts.i   ;Prix payé centimes
EndStructure  

Global NewList Piece.Monnaie(), NewList PieceBis.Monnaie(), Evenement, i, Mouse, mousePress, Niveau = 0, Texte$, TxtEuros$, TxtCts$, MontantEuros, MontantCts, MontantTotal, totalValeursComptees
Global enonce$, enonce2$, enonce3$
Global Points = 0, Cado.Present
Global Fond_principal, Cadeau, N1, N2, N3, N4, N5, N6, Valider, ZoneRassemblage, ZoneScore

#Chemin = #PB_Compiler_FilePath + "Images\"

LoadFont(#Police2, "FontAwesome", 16)
LoadFont(#Police3, "Impact", 60)

UsePNGImageDecoder()

InitSprite()
InitKeyboard()
InitMouse()


Procedure AfficherMonnaie()  
  ForEach Piece()
    With Piece()      
      DisplayTransparentSprite(\Sprite, \x, \y)
    EndWith
  Next
EndProcedure

Procedure AfficherPoints()
  Select Niveau
    Case 1, 4
      MontantTotal = MontantEuros * 100
      If MontantTotal = totalValeursComptees
        Points + 1
      EndIf  
    Case 2, 5
      MontantTotal = MontantCts
      If MontantTotal = totalValeursComptees
        Points + 1
      EndIf
    Case 3, 6
      MontantTotal = MontantEuros * 100 + MontantCts
      If MontantTotal = totalValeursComptees
        Points + 1
      EndIf 
  EndSelect
  DrawingFont(FontID(#Police3)) 
  DrawText((160-TextWidth(Space(10)))/2, (100-TextHeight(Space(10)))/2, Space(10), #Yellow, $3CC53C)
  DrawText((160-TextWidth(Str(Points)))/2, (100-TextHeight(Str(Points)))/2, Str(Points), #Yellow, $3CC53C)
EndProcedure

Procedure AfficherMontant()
  Protected TexteMontant$
  If Niveau
    TexteMontant$ = "Valeur pièces déplacées : " + StrF(totalValeursComptees/100, 2) + " €"
    DrawingFont(FontID(#Police))
    DrawText(0, 0, Space(100), #Yellow, $1EA01E)
    DrawText((850-TextWidth(TexteMontant$))/2, 0, TexteMontant$, #Yellow, $1EA01E)
  Else
    TexteMontant$ = "Choisis un niveau"
    DrawingFont(FontID(#Police))
    DrawText(0, 0, Space(100), #Yellow, $1EA01E)
    DrawText((850-TextWidth(Texte$))/2, 0, TexteMontant$, #Yellow, $1EA01E)  
  EndIf
EndProcedure

Procedure AfficherTexte()
  Select Niveau
    Case 1
      enonce2$ = "Rassemble "
      If MontantEuros And MontantCts
        enonce2$ + TxtEuros$ + " et " + TxtCts$
      ElseIf MontantEuros
        enonce2$ + TxtEuros$
      ElseIf Not MontantEuros And MontantCts
        enonce2$ + TxtCts$
      EndIf
      enonce2$ + " sur le tapis"
      enonce$ = " joue avec les euros"
      enonce3$ = ""
    Case 2
      enonce2$ = "Rassemble "
      If MontantEuros And MontantCts
        enonce2$ + TxtEuros$ + " et " + TxtCts$
      ElseIf MontantEuros
        enonce2$ + TxtEuros$
      ElseIf Not MontantEuros And MontantCts
        enonce2$ + TxtCts$
      EndIf
      enonce2$ + " sur le tapis"
      enonce$ = " joue avec les centimes"
      enonce3$ = ""
    Case 3
      enonce2$ = "Rassemble "
      If MontantEuros And MontantCts
        enonce2$ + TxtEuros$ + " et " + TxtCts$
      ElseIf MontantEuros
        enonce2$ + TxtEuros$
      ElseIf Not MontantEuros And MontantCts
        enonce2$ + TxtCts$
      EndIf
      enonce2$ + " sur le tapis"
      enonce$ = " joue avec les euros et les centimes"
      enonce3$ = ""
    Case 4
      Cado\cout_Euros = Random(6, 1)
      Cado\donne_Euros = MontantEuros + Cado\cout_Euros
      enonce$ = " joue avec les euros" + " " + Str(MontantEuros)
      enonce2$ = " Tu donnes " + Str(Cado\donne_Euros) + " €"
      enonce2$ + " pour un cadeau qui vaut " + Str(Cado\cout_Euros) + " €"
      enonce3$ = "Combien la marchande va-t-elle te rendre ?"
    Case 5
      Cado\cout_Cts   = Random(50, 1)
      Cado\donne_Cts  = MontantCts  + Cado\cout_Cts
      enonce$ = " joue avec les centimes" + " " + Str(MontantCts)
      enonce2$ = " Tu donnes " + Str(Cado\donne_Cts)
      If Cado\donne_Cts < 2 : enonce2$ + " centime" : Else : enonce2$ + " centimes" : EndIf
      enonce2$ + " pour un cadeau qui vaut " + Str(Cado\cout_Cts)
      If Cado\cout_Cts < 2 : enonce2$ + " centime." : Else : enonce2$ + " centimes." : EndIf
      enonce3$ = "Combien la marchande va-t-elle te rendre ?"
    Case 6
      Cado\cout_Euros = Random(6, 1)
      Cado\cout_Cts   = Random(50, 1)
      Cado\donne_Euros = MontantEuros + Cado\cout_Euros
      Cado\donne_Cts  = MontantCts  + Cado\cout_Cts
      enonce$ = " joue avec les euros et les centimes " + Str(MontantEuros) + "." + RSet(Str(MontantCts),2, "0") + " €."
      enonce2$ = " Tu donnes " + Str(Cado\donne_Euros) + "," + RSet(Str(Cado\cout_Cts),2, "0") + " € pour un cadeau qui vaut " + Str(Cado\cout_Euros) + "," + RSet(Str(Cado\donne_Cts),2, "0") + " €."
      enonce3$ = "Combien la marchande va-t-elle te rendre ?"
  EndSelect
  
  DrawingFont(FontID(#Police))      
  DrawText(0, 316, Space(200), #Yellow, $1D9E1D)
  DrawText((850-TextWidth(enonce2$))/2, 316, enonce2$, #Yellow, $1D9E1D)
  DrawText(100, 356, Space(200), #Yellow, $21A321)
  DrawText(100, 356, enonce3$, #Yellow, $21A321)
  
  DrawingFont(FontID(#Police2))
  DrawText(10, 410, Space(100), #Yellow, $26A926)
  DrawText(10, 410, "Niveau " + Str(Niveau) + enonce$, #Yellow, $26A926)
EndProcedure

Procedure DefinirMontantCts(MontantMaxi)
  MontantCts = Random(MontantMaxi, 1)
  TxtCts$ = Str(MontantCts)
  
  If MontantCts < 2
    TxtCts$ + " centime"
  Else
    TxtCts$ +  " centimes"
  EndIf
  
  AfficherTexte()
  
  ProcedureReturn MontantCts
EndProcedure

Procedure DefinirMontantEuros(MontantMaxi)
  MontantEuros = Random(MontantMaxi, 1)
  TxtEuros$ = Str(MontantEuros)
  
  If MontantEuros < 2
    TxtEuros$ + " euro"
  Else
    TxtEuros$ +  " euros"
  EndIf
  
  AfficherTexte()
  
  ProcedureReturn MontantEuros
EndProcedure

Procedure InitMontant()  
  Select Niveau 
    Case 1
      DefinirMontantEuros(12)
      
    Case 2
      DefinirMontantCts(99)
      
    Case 3
      DefinirMontantEuros(12)
      DefinirMontantCts(99)
      
    Case 4
      DefinirMontantEuros(6)
      
    Case 5
      DefinirMontantCts(50)
      
    Case 6
      DefinirMontantEuros(6)
      DefinirMontantCts(50)
  EndSelect
EndProcedure

Procedure principale()
  OpenWindow(#Fenetre_principale, 0, 0, 999, 752, "Monnaie", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
  OpenWindowedScreen(WindowID(#Fenetre_principale), 0, 0, WindowWidth(#Fenetre_principale), WindowHeight(#Fenetre_principale))
  
  Fond_principal = CatchSprite(#PB_Any, ?Fond)
  
  ;Création du cadeau
  Cadeau = CatchSprite(#PB_Any, ?Cadeau)
  
  TransparentSpriteColor(Cadeau, $FF00FF)
  
  ;- Création de la souris
  LoadFont(#Police ,"FontAwesome", 30)
  
  Mouse = CreateSprite(#PB_Any, 24, 40)
  
  StartDrawing(SpriteOutput(Mouse))
  Box(0, 0, 24, 40, #White)
  DrawingFont(FontID(#Police))
  DrawText(0, 0, Chr($F245), #Black, #White)
  StopDrawing()
  
  TransparentSpriteColor(Mouse, #White)
  
  ;- Création de la zone de rassemblage
  ZoneRassemblage = CreateSprite(#PB_Any, 850, 40)
  StartDrawing(SpriteOutput(ZoneRassemblage))
  Box(0, 0, 850, 40, $FF00FF)
  StopDrawing()
  
  TransparentSpriteColor(ZoneRassemblage, $FF00FF)
  
  ;- Création de la zone de score
  zoneScore = CreateSprite(#PB_Any, 160, 100)
  StartDrawing(SpriteOutput(zoneScore))
  Box(0, 0, 160, 100, $3CC53C)
  StopDrawing()
  
  ;- Création du bouton valider
  Valider = CreateSprite(#PB_Any, 160, 50)
  StartDrawing(SpriteOutput(Valider))
  Box(0, 0, 160, 50, $FF00FF)
  RoundBox(0, 0, 120, 50, 25, 25, #Black)
  DrawingFont(FontID(#Police))
  Texte$ = "Valider"
  DrawText((120-TextWidth(Texte$))/2, 3, Texte$, #Yellow, #Black)
  StopDrawing()
  
  TransparentSpriteColor(Valider, $FF00FF)
  
  ;- Création du bouton niveau 1
  N1 = CreateSprite(#PB_Any, 130, 50)
  StartDrawing(SpriteOutput(N1))
  Box(0, 0, 130, 50, $FF)
  DrawingFont(FontID(#Police))
  Texte$ = "Niveau 1"
  DrawText((130-TextWidth(Texte$))/2, 3, Texte$, #Black, $FF)
  StopDrawing()
  
  ;- Création du bouton niveau 2
  N2 = CreateSprite(#PB_Any, 130, 50)
  StartDrawing(SpriteOutput(N2))
  Box(0, 0, 130, 50, $006DFF)
  DrawingFont(FontID(#Police))
  Texte$ = "Niveau 2"
  DrawText((130-TextWidth(Texte$))/2, 3, Texte$, #Black, $006DFF)
  StopDrawing()
  
  ;- Création du bouton niveau 3
  N3 = CreateSprite(#PB_Any, 130, 50)
  StartDrawing(SpriteOutput(N3))
  Box(0, 0, 130, 50, $00D5FF)
  DrawingFont(FontID(#Police))
  Texte$ = "Niveau 3"
  DrawText((130-TextWidth(Texte$))/2, 3, Texte$, #Black, $00D5FF)
  StopDrawing()
  
  ;- Création du bouton niveau 4
  N4 = CreateSprite(#PB_Any, 130, 50)
  StartDrawing(SpriteOutput(N4))
  Box(0, 0, 130, 50, $00FF40)
  DrawingFont(FontID(#Police))
  Texte$ = "Niveau 4"
  DrawText((130-TextWidth(Texte$))/2, 3, Texte$, #Black, $00FF40)
  StopDrawing()
  
  ;- Création du bouton niveau 5
  N5 = CreateSprite(#PB_Any, 130, 50)
  StartDrawing(SpriteOutput(N5))
  Box(0, 0, 130, 50, $DBFF00)
  DrawingFont(FontID(#Police))
  Texte$ = "Niveau 5"
  DrawText((130-TextWidth(Texte$))/2, 3, Texte$, #Black, $DBFF00)
  StopDrawing()
  
  ;- Création du bouton niveau 6
  N6 = CreateSprite(#PB_Any, 130, 50)
  StartDrawing(SpriteOutput(N6))
  Box(0, 0, 130, 50, $FF8700)
  DrawingFont(FontID(#Police))
  Texte$ = "Niveau 6"
  DrawText((130-TextWidth(Texte$))/2, 3, Texte$, #Black, $FF8700)
  StopDrawing()
  
  ;- Création des différentes pièces de monnaie, les valeurs sont en centimes
  With Piece()
    ;4 pièces de 2€
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece2Euros):\x = 0:\y = 0:\Largeur = 127:\Hauteur = 126:\Valeur = 200:\Type = Euro
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece2Euros):\x = 0:\y = 53.5:\Largeur = 127:\Hauteur = 126:\Valeur = 200:\Type = Euro
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece2Euros):\x = 0:\y = 107:\Largeur = 127:\Hauteur = 126:\Valeur = 200:\Type = Euro
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece2Euros):\x = 0:\y = 160.5:\Largeur = 127:\Hauteur = 126:\Valeur = 200:\Type = Euro
    
    ;4 pièces de 1€
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece1Euro):\x = 125.5:\y = 0:\Largeur = 113:\Hauteur = 113:\Valeur = 100:\Type = Euro
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece1Euro):\x = 125.5:\y = 48.5:\Largeur = 113:\Hauteur = 113:\Valeur = 100:\Type = Euro
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece1Euro):\x = 125.5:\y = 97:\Largeur = 113:\Hauteur = 113:\Valeur = 100:\Type = Euro
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece1Euro):\x = 125.5:\y = 145.5:\Largeur = 113:\Hauteur = 113:\Valeur = 100:\Type = Euro
    
    ;4 pièces de 50 centimes
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece50Cts):\x = 237:\y = 0:\Largeur = 116:\Hauteur = 116:\Valeur = 50:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece50Cts):\x = 237:\y = 47:\Largeur = 116:\Hauteur = 116:\Valeur = 50:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece50Cts):\x = 237:\y = 97:\Largeur = 116:\Hauteur = 116:\Valeur = 50:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece50Cts):\x = 237:\y = 144:\Largeur = 116:\Hauteur = 116:\Valeur = 50:\Type = Centime
    
    ;4 pièces de 20 centimes
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece20Cts):\x = 352:\y = 0:\Largeur = 106:\Hauteur = 106:\Valeur = 20:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece20Cts):\x = 352:\y = 47:\Largeur = 106:\Hauteur = 106:\Valeur = 20:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece20Cts):\x = 352:\y = 94:\Largeur = 106:\Hauteur = 106:\Valeur = 20:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece20Cts):\x = 352:\y = 141:\Largeur = 106:\Hauteur = 106:\Valeur = 20:\Type = Centime
    
    ;4 pièces de 10 centimes
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece10Cts):\x = 461:\y = 0:\Largeur = 94:\Hauteur = 94:\Valeur = 10:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece10Cts):\x = 461:\y = 44.5:\Largeur = 94:\Hauteur = 94:\Valeur = 10:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece10Cts):\x = 461:\y = 89:\Largeur = 94:\Hauteur = 94:\Valeur = 10:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece10Cts):\x = 461:\y = 133.5:\Largeur = 94:\Hauteur = 94:\Valeur = 10:\Type = Centime
    
    ;4 pièces de 5 centimes
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece5Cts):\x = 561:\y = 0:\Largeur = 102:\Hauteur = 104:\Valeur = 5:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece5Cts):\x = 561:\y = 39.5:\Largeur = 102:\Hauteur = 104:\Valeur = 5:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece5Cts):\x = 561:\y = 79:\Largeur = 102:\Hauteur = 104:\Valeur = 5:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece5Cts):\x = 561:\y = 118.5:\Largeur = 102:\Hauteur = 104:\Valeur = 5:\Type = Centime
    
    ;4 pièces de 2 centimes
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece2Cts):\x = 666.5:\y = 0:\Largeur = 84:\Hauteur = 84:\Valeur = 2:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece2Cts):\x = 666.5:\y = 37.5:\Largeur = 84:\Hauteur = 84:\Valeur = 2:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece2Cts):\x = 666.5:\y = 75:\Largeur = 84:\Hauteur = 84:\Valeur = 2:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece2Cts):\x = 666.5:\y = 112.5:\Largeur = 84:\Hauteur = 84:\Valeur = 2:\Type = Centime
    
    ;4 pièces de 1 centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece1Ct):\x = 762:\y = 0:\Largeur = 76:\Hauteur = 76:\Valeur = 1:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece1Ct):\x = 762:\y = 27:\Largeur = 76:\Hauteur = 76:\Valeur = 1:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece1Ct):\x = 762:\y = 54:\Largeur = 76:\Hauteur = 76:\Valeur = 1:\Type = Centime
    AddElement(Piece())
    \Sprite = CatchSprite(#PB_Any, ?Piece1Ct):\x = 762:\y = 81:\Largeur = 76:\Hauteur = 76:\Valeur = 1:\Type = Centime
  EndWith
  
  CopyList(Piece(), PieceBis())
  
  ForEach Piece()
    With Piece()
      TransparentSpriteColor(\Sprite, $FF00FF)
    EndWith
  Next
  
  ;- boucle
  Repeat
    Repeat : Until WindowEvent() = 0
    ;{ Affichage des sprites
    ;Dessiner le tapis
    DisplaySprite(Fond_principal, 0, 0)
    
    ;Affichage du bouton niveau 1
    DisplaySprite(N1, 860, 10)
    
    ;Affichage du bouton niveau 2
    DisplaySprite(N2, 860, 70)
    
    ;Affichage du bouton niveau 3
    DisplaySprite(N3, 860, 130)
    
    ;Affichage du bouton niveau 4
    DisplaySprite(N4, 860, 190)
    
    ;Affichage du bouton niveau 5
    DisplaySprite(N5, 860, 250)
    
    ;Affichage du bouton niveau 6
    DisplaySprite(N6, 860, 310)
    
    ;affichage du bouton valider
    DisplayTransparentSprite(Valider, 860, 430)
    
    ;affichage de la zone de score
    DisplaySprite(zoneScore, 850, 650)
    
    ;affichage de la zone de rassemblage
    DisplayTransparentSprite(ZoneRassemblage, 0, 270)
    
    Select Niveau
      Case 4 To 6
        DisplayTransparentSprite(Cadeau, 300, 550)
    EndSelect 
    
    ;Affichage des piéces
    AfficherMonnaie()   
    
    ;Affichage de la souris en dernier
    DisplayTransparentSprite(Mouse, MouseX(), MouseY())
    ;}
    
    ;Evénements clavier
    If ExamineKeyboard()
    EndIf
    
    ;Evénements souris
    If ExamineMouse()
      If MouseButton(#PB_MouseButton_Left)
        mousePress = #True
      Else
        mousePress = #False
      EndIf
      
      
      ;Test de collision entre la souris et le bouton valider
      If Bool(MouseX() >= 860 And MouseX() <= 1020) And Bool(MouseY() >= 430 And MouseY() <= 480) And mousePress = #True
        
        Select Niveau
          Case 1, 4
            If MontantEuros * 100 = totalValeursComptees
              CopyList(PieceBis(), Piece())              
            EndIf  
          Case 2, 5
            If MontantCts = totalValeursComptees
              CopyList(PieceBis(), Piece())
            EndIf
          Case 3, 6
            If MontantEuros * 100 + MontantCts = totalValeursComptees
              CopyList(PieceBis(), Piece())
            EndIf
        EndSelect
        
        StartDrawing(SpriteOutput(zoneScore))
        AfficherPoints()
        StopDrawing()
        
        Delay(500)
        
        StartDrawing(SpriteOutput(Fond_principal))
        InitMontant()
        StopDrawing()
        
      EndIf
      
      ;Test de collision entre la souris et le bouton niveau 1
      If Bool(MouseX() >= 860 And MouseX() <= 990) And Bool(MouseY() >= 10 And MouseY() <= 60) And mousePress = #True
        Delay(500)
        Niveau = 1
        MontantEuros = 0
        MontantCts = 0
        StartDrawing(SpriteOutput(Fond_principal))
        InitMontant()
        StopDrawing()      
      EndIf
      
      ;Test de collision entre la souris et le bouton niveau 2
      If Bool(MouseX() >= 860 And MouseX() <= 990) And Bool(MouseY() >= 70 And MouseY() <= 120) And mousePress = #True
        Delay(500)
        Niveau = 2
        MontantEuros = 0
        MontantCts = 0
        StartDrawing(SpriteOutput(Fond_principal))
        InitMontant()
        StopDrawing()
      EndIf
      
      ;Test de collision entre la souris et le bouton niveau 3
      If Bool(MouseX() >= 860 And MouseX() <= 990) And Bool(MouseY() >= 130 And MouseY() <= 180) And mousePress = #True
        Delay(500)
        Niveau = 3
        MontantEuros = 0
        MontantCts = 0
        StartDrawing(SpriteOutput(Fond_principal))
        InitMontant()
        StopDrawing()
      EndIf
      
      ;Test de collision entre la souris et le bouton niveau 4
      If Bool(MouseX() >= 860 And MouseX() <= 990) And Bool(MouseY() >= 200 And MouseY() <= 240) And mousePress = #True
        Delay(500)
        Niveau = 4
        MontantEuros = 0
        MontantCts = 0
        StartDrawing(SpriteOutput(Fond_principal))
        InitMontant()
        StopDrawing()
      EndIf
      
      ;Test de collision entre la souris et le bouton niveau 5
      If Bool(MouseX() >= 860 And MouseX() <= 990) And Bool(MouseY() >= 260 And MouseY() <= 300) And mousePress = #True
        Delay(500)
        Niveau = 5
        MontantEuros = 0
        MontantCts = 0
        StartDrawing(SpriteOutput(Fond_principal))
        InitMontant()
        StopDrawing()
      EndIf
      
      ;Test de collision entre la souris et le bouton niveau 6
      If Bool(MouseX() >= 860 And MouseX() <= 990) And Bool(MouseY() >= 320 And MouseY() <= 360) And mousePress = #True
        Delay(500)
        Niveau = 6
        MontantEuros = 0
        MontantCts = 0
        StartDrawing(SpriteOutput(Fond_principal))
        InitMontant()
        StopDrawing()
      EndIf
      
    EndIf ;ExamineMouse()
    
    
    ;Test collision entre souris et piéces
    totalValeursComptees=0
    ForEach Piece()
      With Piece()
        If SpriteCollision(Mouse, MouseX(), MouseY(), \Sprite, \x, \y) And mousePress = #True
          \x = MouseX() - \Largeur/2
          \y = MouseY() - \Hauteur/2
          
          Break
          
        EndIf
        If mousePress= #False
          If \x <840 And \y > 440
            totalValeursComptees + (\Valeur)
          EndIf
        EndIf    
      EndWith
    Next
    
    StartDrawing(SpriteOutput(ZoneRassemblage))
    AfficherMontant()
    StopDrawing()
    
    FlipBuffers()
    
  Until KeyboardReleased(#PB_Key_Escape)
  
EndProcedure


principale()


DataSection
  Piece2Euros:
  IncludeBinary #Chemin + "2 EUROS.png"
  Piece1Euro:
  IncludeBinary #Chemin + "1 EURO.png"
  Piece50Cts:
  IncludeBinary #Chemin + "50 CTS.png"
  Piece20Cts:
  IncludeBinary #Chemin + "20 CTS.png"
  Piece10Cts:
  IncludeBinary #Chemin + "10 CTS.png"
  Piece5Cts:
  IncludeBinary #Chemin + "5 CTS.png"
  Piece2Cts:
  IncludeBinary #Chemin + "2 CTS.png"
  Piece1Ct:
  IncludeBinary #Chemin + "1 CT.png"
  Fond:
  IncludeBinary #Chemin + "Ecran principal.png"
  Cadeau:
  IncludeBinary #Chemin + "Cadeau.png"
EndDataSection
Dernière modification par Micoute le dim. 16/juil./2017 11:23, modifié 12 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par TazNormand »

Je n'ai pas regardé ni testé ton code, mais tes Sprites étant normalement "unique", tu peux surement créer une structure comprenant en autres champs la valeur de la pièce :

Code : Tout sélectionner

Structure Monnaie
  sprID.i
  posX.i
  posY.i
  valeur.i
EndStructure
Ce qui fait que pour ton élément "monnaie.sprID", tu auras donc sa valeur via "monnaie.valeur"
Image
Image
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par Micoute »

Heureusement que tu as dis que tu n'avais pas regardé mon code, car j'ai déjà mis une structure Pièces.

En fait ce que je souhaite, c'est comment lire la valeur d'un sprite quand il est dans la zone plus claire et qu'on l'oublie s'il retourne dans la zone plus foncée.

Merci de m'avoir donné de ton temps.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par TazNormand »

Et bien, je dirais par 2 méthodes :
  • Méthode 1 : Soit en testant la position des sprites par rapport à la zone où il doivent être comptabilisés. Si les sprites se trouvent à l'intérieur du rectangle, on les compte.
    Méthode 2 : Soit en utilisant un sprite "zone de calcul" et en utilisant les tests de collisions
En gros, pour la méthode 1, si les coordonnées Y du sprite sont inférieures au haut du rectangle de calcul, les X ne dépassent pas la zone sur sa droite (attention à comptabiliser la largeur du sprite), tu compte la valeur de la pièce.

Pour être sur que c'est toujours bon, tu fais le teste dans ta boucle évenementielle, mais c'est un peu gourmand.
Image
Image
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par TazNormand »

Un peu à l'arrache, voici ce que cela pourarit donner, recherche les lignes avec le commentaire "; AJOUT de TAZNORMAND" :

PS : j'ai du modifier le nom des images pour coller celles que tu as mises dans le premier topic

Code : Tout sélectionner

;Monnaie

;Niveau 1 : maximum 12€
;Niveau 2 : maximum 99 centimes
;Niveau 3 : euros et centimes
;Niveau 4 : rendre la monnaie, juste des euros
;Niveau 5 : rendre la monnaie, juste des centimes
;Niveau 6 : rendre la monnaie, euros et centimes

Enumeration
  #Fenetre_principale
EndEnumeration

Enumeration Gadgets
  #Btn_valider
  #Fond
EndEnumeration

Enumeration Polices
  #Police
  #Police2
EndEnumeration 

Structure Pieces
  Sprite.i ;Id de la pièce
  x.f      ;Position horitontale de la pièce
  y.f      ;Position verticale de la pièce
  Valeur.i ;Valeur de la pièce (en centimes)
  Type.b   ;Type de pièce (Euro ou centime)
EndStructure

Global NewList Piece.Pieces(), Evenement, i, Mouse, mousePress, Niveau, Euro = 1, Centime = 0, Texte$, TxtEuros$, TxtCts$, MontantEuros, MontantCts
#Chemin = #PB_Compiler_FilePath + "Images\"

Global totalValeursComptees = 0 ; AJOUT de TAZNORMAND

LoadFont(#Police2, "FontAwesome", 16)

UsePNGImageDecoder()

InitSprite()
InitKeyboard()
InitMouse()

Niveau = 1 ;en attendant de faire un menu pour choisir le niveau

Procedure AfficherPieces() 
  ForEach Piece()
    With Piece()     
      DisplayTransparentSprite(\Sprite, \x, \y)
    EndWith
  Next
EndProcedure

Procedure AfficherTexte()
  Texte$ = "Rassemble "
  If MontantEuros And MontantCts
    Texte$ + TxtEuros$ + " et " + TxtCts$
  ElseIf MontantEuros
    Texte$ + TxtEuros$
  ElseIf Not MontantEuros And MontantCts
    Texte$ + TxtCts$
  EndIf
  Texte$ + " sur le tapis"
  DrawText((1000-TextWidth(Texte$))/2, 376, Texte$, #Yellow, Point(263,376))
  DrawingFont(FontID(#Police2))
  DrawText(10, 410, "Niveau " + Niveau, #Yellow, Point(263,376))
EndProcedure

Procedure DefinirMontantCts(MontantMaxi)
  montantcts = Random(MontantMaxi, 1)
  TxtCts$ = Str(montantcts)
  If montantcts < 2
    TxtCts$ + " centime"
  Else
    TxtCts$ +  " centimes"
  EndIf
  AfficherTexte()
  ProcedureReturn montantcts
EndProcedure

Procedure DefinirMontantEuros(MontantMaxi)
  montanteuros = Random(MontantMaxi, 1)
  TxtEuros$ = Str(montanteuros)
  If montanteuros < 2
    TxtEuros$ + " euro"
  Else
    TxtEuros$ +  " euros"
  EndIf
  AfficherTexte()
  ProcedureReturn montanteuros
EndProcedure

OpenWindow(#Fenetre_principale, 0, 0, 1000, 752, "Monnaie", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(#Fenetre_principale), 0, 0, WindowWidth(#Fenetre_principale), WindowHeight(#Fenetre_principale))

Fond_principal = CatchSprite(#PB_Any, ?Fond)

;Création de la souris
LoadFont(#Police ,"FontAwesome", 30)

Mouse = CreateSprite(#PB_Any, 24, 40)

StartDrawing(SpriteOutput(Mouse))
Box(0, 0, 24, 40, #White)
DrawingFont(FontID(#Police))
DrawText(0, 0, Chr($F245), #Black, #White)
StopDrawing()

TransparentSpriteColor(Mouse, #White)

;Création des différentes pièces de monnaie, les valeurs sont en centimes
With Piece()
  ;4 pièces de 2€
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece2Euros):\x = 0:\y = 0:\Valeur = 200:\Type = Euro
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece2Euros):\x = 0:\y = 53.5:\Valeur = 200:\Type = Euro
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece2Euros):\x = 0:\y = 107:\Valeur = 200:\Type = Euro
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece2Euros):\x = 0:\y = 160.5:\Valeur = 200:\Type = Euro
 
  ;4 pièces de 1€
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece1Euro):\x = 120.5:\y = 0: \Valeur = 100:\Type = Euro
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece1Euro):\x = 120.5:\y = 48.5: \Valeur = 100:\Type = Euro
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece1Euro):\x = 120.5:\y = 97: \Valeur = 100:\Type = Euro
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece1Euro):\x = 120.5:\y = 145.5: \Valeur = 100:\Type = Euro
 
  ;4 pièces de 50 centimes
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece50Cts):\x = 237:\y = 0:\Valeur = 50:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece50Cts):\x = 237:\y = 47:\Valeur = 50:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece50Cts):\x = 237:\y = 97:\Valeur = 50:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece50Cts):\x = 237:\y = 144:\Valeur = 50:\Type = Centime
 
  ;4 pièces de 20 centimes
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece20Cts):\x = 352:\y = 0:\Valeur = 20:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece20Cts):\x = 352:\y = 47:\Valeur = 20:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece20Cts):\x = 352:\y = 94:\Valeur = 20:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece20Cts):\x = 352:\y = 141:\Valeur = 20:\Type = Centime
 
  ;4 pièces de 10 centimes
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece10Cts):\x = 461:\y = 0:\Valeur = 10:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece10Cts):\x = 461:\y = 44.5:\Valeur = 10:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece10Cts):\x = 461:\y = 89:\Valeur = 10:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece10Cts):\x = 461:\y = 133.5:\Valeur = 10:\Type = Centime
 
  ;4 pièces de 5 centimes
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece5Cts):\x = 561:\y = 0:\Valeur = 5:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece5Cts):\x = 561:\y = 39.5:\Valeur = 5:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece5Cts):\x = 561:\y = 79:\Valeur = 5:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece5Cts):\x = 561:\y = 118.5:\Valeur = 5:\Type = Centime
 
  ;4 pièces de 2 centimes
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece2Cts):\x = 666.5:\y = 0:\Valeur = 2:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece2Cts):\x = 666.5:\y = 37.5:\Valeur = 2:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece2Cts):\x = 666.5:\y = 75:\Valeur = 2:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece2Cts):\x = 666.5:\y = 112.5:\Valeur = 2:\Type = Centime
 
  ;4 pièces de 1 centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece1Ct):\x = 762:\y = 0:\Valeur = 1:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece1Ct):\x = 762:\y = 27:\Valeur = 1:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece1Ct):\x = 762:\y = 54:\Valeur = 1:\Type = Centime
  AddElement(Piece())
  \Sprite = CatchSprite(#PB_Any, ?Piece1Ct):\x = 762:\y = 81:\Valeur = 1:\Type = Centime
EndWith

ForEach Piece()
  With Piece()
    TransparentSpriteColor(\Sprite, $FF00FF)
  EndWith
Next

StartDrawing(SpriteOutput(Fond_principal))
DrawingFont(FontID(#Police))
If Niveau = 1
  DefinirMontantEuros(12)
ElseIf Niveau = 2
  DefinirMontantCts(99)
ElseIf Niveau = 3
  DefinirMontantEuros(12)
  DefinirMontantCts(99) 
EndIf 
StopDrawing()


Repeat
  Repeat : Until WindowEvent() = 0
 
  ;Dessiner le tapis
  DisplaySprite(Fond_principal, 0, 0)
 
  ;Affichage des piéces
AfficherPieces()
 
  ;Affichage de la souris en dernier
  DisplayTransparentSprite(Mouse, MouseX(), MouseY())
 
  ;Evénements clavier
  If ExamineKeyboard()
  EndIf
 
  ;Evénements souris
  If ExamineMouse()
    If MouseButton(#PB_MouseButton_Left)
      mousePress = #True
    Else
      mousePress = #False
    EndIf
   
    ;Test collision entre souris et piéces
    totalValeursComptees=0
    ForEach Piece()
      With Piece()
        If SpriteCollision(Mouse, MouseX(), MouseY(), \Sprite, \x, \y) And mousePress = #True
          \x = MouseX() - SpriteWidth(\Sprite)/2
          \y = MouseY() - SpriteHeight(\Sprite)/2
          ; Comptabiliser les pièces ou non  ; AJOUT de TAZNORMAND
          If \x <840 And \y > 440 ; AJOUT de TAZNORMAND
            Debug "Pièce comptabilisée =>"+ Str(\valeur) ; AJOUT de TAZNORMAND
          EndIf ; AJOUT de TAZNORMAND
          Break
        EndIf
        If mousePress= #False ; AJOUT de TAZNORMAND
          If \x <840 And \y > 440 ; AJOUT de TAZNORMAND
            totalValeursComptees+\Valeur ; AJOUT de TAZNORMAND
          EndIf ; AJOUT de TAZNORMAND
        EndIf        
      EndWith
    Next
    Debug "Valeur pièce déplacées : " + totalValeursComptees ; AJOUT de TAZNORMAND
  EndIf
  
    FlipBuffers()
 
Until KeyboardReleased(#PB_Key_Escape)

DataSection
  Piece2Euros:
  IncludeBinary #Chemin + "2EUROS.png"
  Piece1Euro:
  IncludeBinary #Chemin + "1EURO.png"
  Piece50Cts:
  IncludeBinary #Chemin + "50CTS.png"
  Piece20Cts:
  IncludeBinary #Chemin + "20CTS.png"
  Piece10Cts:
  IncludeBinary #Chemin + "10CTS.png"
  Piece5Cts:
  IncludeBinary #Chemin + "5cTS.png"
  Piece2Cts:
  IncludeBinary #Chemin + "2CTS.png"
  Piece1Ct:
  IncludeBinary #Chemin + "1CT.png"
  Fond:
  IncludeBinary #Chemin + "Ecranprincipal.png"
EndDataSection 

Image
Image
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par Micoute »

Mais c'est génial ça, merci beaucoup, encore une bonne de chose de faite, il ne me reste plus qu'à peaufiner et ajouter les quelques gadgets qui me manquent encore.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Tonio
Messages : 95
Inscription : ven. 07/avr./2017 14:49
Localisation : Sud Est

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par Tonio »

Merci de ce partage
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par Micoute »

Bonjour à tous,

j'ai bien avancé dans mon programme que je mis à jour dans le premier post, mais je n'arrive pas à changer de niveau en cours de partie, il y a forcément quelque chose que je ne vois pas, sûrement un flag que je n'ai pas mis.

Alors je reviens toujours à vous, pour solliciter votre aide bienveillante et je vous en remercie à l'avance.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Tonio
Messages : 95
Inscription : ven. 07/avr./2017 14:49
Localisation : Sud Est

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par Tonio »

Salut Micoute
j'ai étudié qui est pas mal du tout , juste une petite question :
Pour tu écris

Code : Tout sélectionner

 x.f
je sais que f ça veux dire Float, et pourquoi pas écrire comme ceci : ?
j'aimerai savoir poôurquoi ?

merci
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par Micoute »

Ta question est très pertinente, c'est vrai en fait puisque ce sont des valeurs qui indiquent où doivent s'afficher les sprites monnaie.

Je corrige de suite.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Tonio
Messages : 95
Inscription : ven. 07/avr./2017 14:49
Localisation : Sud Est

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par Tonio »

Micoute a écrit :Ta question est très pertinente, c'est vrai en fait puisque ce sont des valeurs qui indiquent où doivent s'afficher les sprites monnaie.

Je corrige de suite.
de rien micoute
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par TazNormand »

Bah écoute, moi ça marche, je peux changer de niveau en cours de partie
Image
Image
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par Micoute »

C'est normal, car j'ai corrigé moi-même, maintenant j'ai un autre problème dans les niveaux 4 à 6, quand je clique sur les boutons, normalement ça dépose un cadeau sur le tapis qui devrait rester en place, mais en fait, il fait juste une courte apparition. Il me faudrait trouver la solution pour poursuivre, si quelqu'un à une solution, je suis preneur, le premier poste est remis à jour assez souvent.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par Micoute »

Bonjour à tous,

Dans l'état actuel, c'est à peu près fonctionnel, sauf que j'aimerais que quand je clique, ça ne fasse qu'un clique, j'ai aussi mon problème d'affichage du cadeau que j'ai commenté pour le moment, mais que j'aimerais régler.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment calculer la valeur d'un sprite dans une zone déf

Message par Micoute »

Bonjour à tous,

finalement, je ne m'en sors pas trop mal, car ça y est j'ai réussi à afficher le cadeau, j'ai aussi réparé beaucoup de bugs et je crois bien que vous allez pouvoir amuser vos petits-enfants comme je le fais.

Merci tout de même à ceux qui m'ont bien aidé, ils se reconnaîtront.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre