Cards.dll

Description

Encore une démo de l'utilisation de l'API des cartes de jeu...

Pour les débutants. Plutôt bien commenté (si vous en voulez plus, ben, demandez-le moi ;-)

Amusez-vous bien avec ce ptit truc.

Source / Exemple :


'Déclaration des API de manipulation des cartes à jouer
Private Declare Function cdtInit Lib "Cards" (nWidth As Long, nHeight As Long) As Long
Private Declare Function cdtTerm Lib "Cards" () As Long
Private Declare Function cdtDraw Lib "Cards" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nCard As Long, ByVal nDraw As Long, ByVal nColor As Long) As Long
'Private Declare Function cdtDrawExt Lib "Cards" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal nCard As Long, ByVal nDraw As Long, ByVal nColor As Long) As Long

'Cartes :
' Faces visible : 0-51
' Faces cachée  : 53-68
' nDraw  :  0 = cartes face visible normale
'           2 = cartes face visible sélectionnée
'           1 = cartes face cachée
'  Note: On ne peut pas sélectionner une carte face cachée (!!!).
' nColor :  Couleur de sélection. Avec la carte 53 (1ère face visible),
'           cette couleur sert de couleur de fond du quadrillage en croix.

Private Sub Form_Load()
 'Redimensionner la fenêtre
 Me.Width = 3000
 Me.Height = 4125
 Me.Show
 DoEvents
 
 'Taille par défaut des cartes en pixels
 cdtInit 71, 96
 DoEvents
 
 'Initilatise l'affichage pour la 1ère fois
 OptionCouleurs(0).Value = True
 Option2(0).Value = True
 Picture2.Tag = "15"
 Call Picture2_DblClick
 
End Sub

Private Sub Form_Unload(Cancel As Integer)
 'Nécéssaire afin de libérer la mémoire prise par ces API...
 cdtTerm
End Sub

Private Sub OptionCouleurs_Click(Index As Integer)
 'Change la couleur
 Static t As Integer
 Static Couleur As Integer
 Static Carte As Integer
 
 'Recherche la carte...
 Couleur = Index
 Carte = 0
 For t = 0 To (Option2.Count - 1)
  If Option2(t).Value = True Then Carte = t: Exit For
 Next t
 Carte = Index + (Carte * 4)  '0-51 [52 cartes]
 
 cdtDraw Picture1.hDC, 9, 9, Carte, &H0, RGB(0, 0, 255)
End Sub

Private Sub Option2_Click(Index As Integer)
 'Change la carte
 Static t As Integer
 Static Couleur As Integer
 Static Carte As Integer
 
 'Recherche la couleur...
 Couleur = 0
 For t = 0 To (OptionCouleurs.Count - 1)
  If OptionCouleurs(t).Value = True Then Couleur = t: Exit For
 Next t
 Carte = Index
 Carte = Couleur + (Carte * 4)  '0-51 [52 cartes]
 
 cdtDraw Picture1.hDC, 9, 9, Carte, &H0, RGB(0, 0, 255)
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
 'Selectionne la carte visible
 Static t As Integer
 Static Couleur As Integer
 Static Carte As Integer
 
 'Recherche la couleur...
 Couleur = 0
 For t = 0 To (OptionCouleurs.Count - 1)
  If OptionCouleurs(t).Value = True Then Couleur = t: Exit For
 Next t
 'Recherche la carte...
 Carte = 0
 For t = 0 To (Option2.Count - 1)
  If Option2(t).Value = True Then Carte = t: Exit For
 Next t
 Carte = Couleur + (Carte * 4)  '0-51 [52 cartes]
 
 If (X < 9 Or X > 9 + 70) Or (Y < 9 Or Y > 9 + 95) Then
  'La souris est hors de la carte : Désélectionner
  ' (Afficher la carte normale.)
  cdtDraw Picture1.hDC, 9, 9, Carte, 0, RGB(0, 0, 255)
 Else
  'La souris est sur la carte : Sélectionner
  ' (Afficher la carte sélectionnée.)
  cdtDraw Picture1.hDC, 9, 9, Carte, 2, 16777215
 End If
 
End Sub

Private Sub Picture2_DblClick()
 'Change le jeu (l'image)
 Picture2.Tag = CLng(Picture2.Tag) + 1
 If Picture2.Tag > 15 Then Picture2.Tag = 0
 '53-68
 cdtDraw Picture2.hDC, 9, 9, CLng(Picture2.Tag) + 53, 1, 255
End Sub

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.