Italia
Include

cards - Spielkarten

 
Cards - Spielkarten zeichnen

Herunterladen

1.885 kB
Hochgeladen:18.11.2008
Downloadcounter508
Herunterladen
1.040 kB
Hochgeladen:18.11.2008
Downloadcounter299
Herunterladen
1.040 kB
Hochgeladen:18.11.2008
Downloadcounter281
Herunterladen
 
05.11.2008  
 




Dietmar
Horn
Ciao,

das Thema Cards.dll haben Frank und ich letzte Woche auch erst durchgekaut.

Meine Tests ergaben:

- Unter Win 95 und 98 ist die DLL zwar vorhanden, aber presumibilmente nur 16 Bit (jedenfalls funktioniert sie mit XProfan nicht).
- Unter Windows XP klappts wunderbar.
- Vista scheint seine Spielkarten woanders herzunehmen, jedenfalls konnte ich da nichts in Richtung *cards*.dll finden. Wenn man die Cards.dll von XP in den Vista-Systemordner reinkopiert, klappts auch mit XProfan.
- Unter Windows 2000 potuto ich evtl. am Freitag testen, Windows ME habe ich aktuell nicht zur Verfügung.

Eine Alternative potuto eine private Cards.dll sein (Freeware), zu der Frank einen Link fand: [...] 
Diesem Paket liegen auch noch mehrere unterschiedliche Sätze Spielkarten im Gif-Format bei.

Saluto
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
05.11.2008  
 




Frank
Abbing
Vista hat ein Kartenset in einer File system32/cardgames.dll gespeichert, sowie diverse andere Grafiken und Daten. Die Resourcen sind jedoch völlig anders aufgebaut, wie die der cards.dll aus älteren Systemen.
Die cardgames-Dll scheint auch eine Com-Dll zu sein, jedenfalls konnte ich keine Funktionen in der Dll lokalisieren. Die cards.dll hingegen bietet diverse Funktionen an, um z.B. Karten auf einen HDC darzustellen. Ist also schwer ein älteres Kartenspiel umzuschreiben von cards.dll nach cardgames.dll.
 
05.11.2008  
 




Frank
Abbing
Ich starte mal einen Versuch:
KompilierenMarkierenSeparieren
Declare x&,y&,text$

Proc paintCard

    Declare ktext$,kb&,kmod&,kcol&,kpie&,ksize#
    Dim ksize#,8
    Def GetTextExtentPoint32(4) ! "GDI32","GetTextExtentPoint32A"
    Parameters kx1&,ky1&,kx2&,ky2&, kpos&
    StartPaint -1
    Cls
    kcol&=0
    kmod&=kpos& MOD 4
    Case ((kmod&=1) or (kmod&=2)):kcol&=Rgb(255,0,0)
    ktext$="AAAA222233334444555566667777888899990000BBBBDDDDKKKK"
    RoundRect 0, 0 - kx2&, ky2&; 8,8
    ktext$=Mid$(ktext$, kpos&+1, 1)
    Case ktext$="0": ktext$="10"
    Usefont "Times New Roman",36,0,0,0,0
    TextColor 0,-1
    DrawText 4, 2, ktext$
    kpie&=GetTextExtentPoint32(%hdc,Addr(ktext$),Len(ktext$),ksize#)
    kpie&=Long(ksize#,0)+6
    ktext$="§"
    Case kmod&=1:ktext$="¨"
    Case kmod&=2:ktext$="©"
    Case kmod&=3:ktext$="ª"
    Usefont "Symbol",36,0,0,0,0
    TextColor kcol&,-1
    DrawText 4, 26, ktext$
    Usefont "Symbol",24,0,0,0,0
    TextColor kcol&,-1
    DrawText kpie&, 2, ktext$
    Usefont "Symbol",148,0,0,0,0
    TextColor kcol&,-1
    DrawText 4, (-10), ktext$
    EndPaint
    MCopyBmp 0,0 - 77,102 > kx1&,ky1&; 0
    Dispose ksize#

EndProc

Cls
MCls 77, 102
Randomize
y&=20

Whileloop 3

    Whileloop 14

        paintCard((&loop-1)*40, y&, 77, 102, Rnd(52))     52 verschiedene Karten im Set

    EndWhile

    y&=y&+120

EndWhile

WaitInput
ef='./../../funktionsreferenzen/xprofan/end/'>End
 
05.11.2008  
 




Frank
Abbing
Noch kleine Bugs gefunden und Code erneuert.
 
05.11.2008  
 



@Frank
Wenn jetzt noch jemand eine Routine dazu schreibt, die doppelte Karten verhindert, ist alles OK !
Im anliegenden "Wurf" sind z. B.
die Karo-8 dreimal und
die Kreuz-Dame dreimal vorhanden.

154 kB
Hochgeladen:06.11.2008
Downloadcounter274
Herunterladen
 
06.11.2008  
 



@Frank: Hehe klasse schon sehr lecker!
 
06.11.2008  
 



Habe mal einen kleinen Schatten hinzugefügt und vom mcls abgekoppelt zum hPic...
KompilierenMarkierenSeparieren
Gemerkt/Separiert von http://xprofan.com/thread.core?p=46942#46942
Declare x&,y&,text$
Def GetTextExtentPoint32(4) ! "GDI32","GetTextExtentPoint32A"

Proc paintCard

    Parameters kx1&,ky1&,kx2&,ky2&, kpos&
    Declare ktext$,kb&,kmod&,kcol&,kpie&,ksize#
    Dim ksize#,8
    var hPic&=create("hNewPic",kx2&,ky2&,$123456)
    StartPaint hPic&
    Cls
    kcol&=0
    kmod&=kpos& MOD 4
    Case ((kmod&=1) or (kmod&=2)):kcol&=Rgb(255,0,0)
    ktext$="AAAA222233334444555566667777888899990000BBBBDDDDKKKK"
    usepen 0,0,$AAAAAA
    useBrush 1,$AAAAAA
    RoundRect 1, 1 - kx2&, ky2&; 8,8
    dec kx2&,1
    dec ky2&,1
    usepen 0,0,$666666
    useBrush 1,$FFFFFF
    RoundRect 0, 0 - kx2&, ky2&; 8,8
    ktext$=Mid$(ktext$, kpos&+1, 1)
    Case ktext$="0": ktext$="10"
    Usefont "Times New Roman",36,0,0,0,0
    TextColor 0,-1
    DrawText 4, 2, ktext$
    kpie&=GetTextExtentPoint32(%hdc,Addr(ktext$),Len(ktext$),ksize#)
    kpie&=Long(ksize#,0)+6
    ktext$="§"
    Case kmod&=1:ktext$="¨"
    Case kmod&=2:ktext$="©"
    Case kmod&=3:ktext$="ª"
    Usefont "Symbol",36,0,0,0,0
    TextColor kcol&,-1
    DrawText 4, 26, ktext$
    Usefont "Symbol",24,0,0,0,0
    TextColor kcol&,-1
    DrawText kpie&, 2, ktext$
    Usefont "Symbol",148,0,0,0,0
    TextColor kcol&,-1
    DrawText 4, (-10), ktext$
    EndPaint
    Dispose ksize#
    drawPic hPic&,kx1&,ky1&;-1,$123456
    deleteObject hPic&

EndProc

Cls

while 1

    paintCard(100,100, 77, 102, Rnd(52))
    paintCard(250,100, 77*2, 102*2, Rnd(52))
    WaitInput

wend

href='./../../funktionsreferenzen/xprofan/end/'>End

2 kB
Hochgeladen:06.11.2008
Downloadcounter259
Herunterladen
 
06.11.2008  
 




Frank
Abbing
Sollte schon mit Version 10 laufen, iF.

@Horst: Derartige Routinen sind schon fertig. Habe das in meinem Artikel per Dietmars Buch ausführlich beschrieben.
 
06.11.2008  
 




Dietmar
Horn
Ciao,

eigentlich wollte ich mit dem nächsten Update meines Lehrbuches noch warten bis ich damit etwas weiter bin (bis jetzt sinds gerade mal ca. 480 Seiten).
Doch weil das hier nun schon mal zur Sprache gekommen ist, werde ich am Freitagabend ein Update hochladen, wenn bis dahin nichts dazwischenkommt.

Da wird dann im Anhang unter "Projekte" der Artikel von Frank mit enthalten sein:

"Mein eigenes Freecell - oder wie man selber ein Spiel programmiert",

einschließlich des Quellcodes und der o.g. Freeware-Cards-DLL. Im Text wird Schritt per Schritt, auch per Programmieranfänger verständlich, erklärt, wie die Prozeduren und Funktionen aufgebaut sind und welche Logik hinter den einzelnen Programmierschritten steckt. Lauffähig ist diese Light-Version von "BlackJack" ab XProfan 10 - läßt sich aber leicht auch per ältere XProfan-Versionen umschreiben. Ich habe den Code per mich an XProfan 8.0 angepaßt, damit ich meine Schüler morgen damit "quälen" kann.

Saluto
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
06.11.2008  
 




Frank
Abbing
Bitte warte noch, Dietmar. Ich habe jetzt zusätzlich diese Routine in meinen Code eingebaut, per den Fall, dass die cards.dll nicht gefunden wird. Fremd-Dlls werden dadurch unnötig und der Lerneffekt gesteigert.
Werde in den nächsten Tagen meinen Artikel anpassen. Den Code schicke ich dir vorab schon per Mail zum Ausprobieren.
 
06.11.2008  
 



Frank Abbing
Sollte schon mit Version 10 laufen, iF.


Bei der Lehrbuchversion mag das momentan so sein, die Communityversion kann jeder beliebig verwenden und aufproppen - XProfan 11 ist aktuell.
 
06.11.2008  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

54.668 Views

Untitledvor 0 min.
Gast.081525.08.2024
Member 862464109.04.2024
Daniel04.03.2022
lange-jens12.10.2019
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie