Kartenspiel

    • VB6
      Habt ihr nicht auch schon mal darüber nachgedacht, ein Kartenspiel zu programmieren und euch gefragt, ob man irgendwie die Karten der Windows-Spiele (Hearts/Solitär) benutzen kann?

      Nun, ich bin auf eine Lösung gestoßen:

      Folgendes in ein Modul:

      <pre>
      Option Explicit

      Public Declare Function cdtInit Lib "Cards.dll" (dx As Long, dy As Long) As Boolean
      Public Declare Function cdtDraw Lib "Cards.dll" (ByVal hDC As Long, ByVal X As Long, ByVal y As Long, _
      ByVal ordCard As Long, ByVal ordDraw As Long, ByVal clr As Long) As Boolean

      Public Declare Function cdtTerm Lib "Cards.dll" () As Integer</pre>

      Dann der Aktivierungscode:

      <pre>
      Private Sub Command1_Click()
      Dim RetVal As Boolean
      Dim dxCard As Long, dyCard As Long

      Dim KartenNr As Integer
      Me.ScaleMode = vbPixels
      picKarte.ScaleMode = vbPixels
      RetVal = cdtInit(dxCard, dyCard)
      picKarte.Width = dxCard
      picKarte.Height = dyCard
      KartenNr = Int(Rnd * 52)
      RetVal = cdtDraw(picKarte.hDC, 0, 0, KartenNr, 0, 0&)
      picKarte.Refresh
      RetVal = cdtTerm()
      End Sub
      </pre>

      mfG,

      Malcolm

      P.S.: Wichtig: Ihr braucht dafür die Cards.dll einer Windows 2000 / NT - Version, da die anderen (95/98-) DLLs 16-Bit-Versionen sind und unter dem 32-Bit-Vb nicht aufgerufen werden können (ich schicke Euch die DLL auf Anfrage per Mail).

      Nachtrag: Die AutoRedraw-Eigenschaft der Picutrebox muss auf "True" stehen.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Malcolm“ ()