Kartenspiel(z.b. "Magic The Gathering")
Übersicht

Gehe zu Seite 1, 2, 3, 4 Weiter
![]() |
BlitzerBetreff: Kartenspiel(z.b. "Magic The Gathering") |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich habe es derzeit so geschrieben:
Code: [AUSKLAPPEN] Graphics 1024,768,32,1
Global a=0 Global b=0 Global RedDragon=LoadImage("D:\Karten\RedDragon.bmp") Global IceDragon=LoadImage("D:\Karten\IceDragon.bmp") Global BlackDragon=LoadImage("D:\Karten\BlackDragon.bmp") Global StoneDragon1=LoadImage("D:\Karten\StoneDragon1.bmp") Global StoneDragon2=LoadImage("D:\Karten\StoneDragon2.bmp") Global StoneDragon3=LoadImage("D:\Karten\StoneDragon3.bmp") Global StoneDragon4=LoadImage("D:\Karten\StoneDragon4.bmp") Global HinterKarte=LoadImage("D:\Karten\HinterKarte.bmp") Global KarteFont=LoadFont("Palatino Linotype",18,0,1,0) MaskImage RedDragon,250,250,250 MaskImage IceDragon,250,250,250 MaskImage BlackDragon,250,250,250 MaskImage StoneDragon1,250,250,250 MaskImage StoneDragon2,250,250,250 MaskImage StoneDragon3,250,250,250 MaskImage StoneDragon4,250,250,250 MaskImage HinterKarte,250,250,250 Type Karte Field X Field Y Field Kraft Field Abwehr Field Nummer Field Ein End Type For i=1 To 3 Karten.Karte=New Karte ;RedDragon; If i=1 Karten.Karte\Kraft=2500 Karten.Karte\Abwehr=2000 EndIf ;IceDragon; If i=2 Karten.Karte\Kraft=2000 Karten.Karte\Abwehr=2500 EndIf ;BlackDragon; If i=3 Karten.Karte\Kraft=3000 Karten.Karte\Abwehr=0 EndIf Next Function Kart(Karten.Karte) Karten.Karte\Ein=1 End Function Function Zeichnen(Karten.Karte) If a=1 color 255,0,0 rect 0,0,120,160 ;RedDragon; EndIf If a=2 color 0,255,0 rect 0,0,120,160 ;IceDragon; EndIf If a=3 color 0,0,255 rect 0,0,120,160 ;BlackDragon; EndIf End Function Function Schreiben(Karten.Karte) Color 0,0,0 SetFont KarteFont For Karten.Karte=Each Karte b=b-1 If b=0 EndIf Next End Function Function Schreiben2(Karten.Karte) Text Karten.Karte\X+32,Karten.Karte\Y+96,Karten.Karte\Kraft,1,1 Text Karten.Karte\X+89,Karten.Karte\Y+96,Karten.Karte\Abwehr,1,1 End Function Function Ziehen() a=Rand(1,3) b=a End Function ClsColor 188,0,111 SetBuffer BackBuffer() While Not KeyHit(57) Ziehen() While Not KeyDown(1) Cls Kart(Karten.Karte) Zeichnen(Karten.Karte) Schreiben(Karten.karte) Schreiben2(Karten.Karte) Flip Wend Wend wenn ich jetzt "Run Program" Drücke dann sehe ich den Ice Dragon mit stärke 3000/0. Ich weiss den fehler, aber ich weiss nicht wie ich es machen soll. |
||
Nichts ist mehr so wie es einmal war mit
------------------Blitzbasic------------------ Athlon 3000+, 1 GBRam DDR, Geforce FX 5500, 120 GB Fesplatte Sempron 2200+, 512 MBRam DDR, Geforce FX 5200, 60 GB Festplatte |
- Zuletzt bearbeitet von Blitzer am Sa, März 06, 2004 8:57, insgesamt 2-mal bearbeitet
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wen du den Fehler kennst, dann wärs vielleicht ein wenig hilfreich, wenn du ihn uns auch mitteilen würdest!
walski |
||
buh! |
![]() |
BlitzerBetreff: JO! |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() ![]() Function Schreiben(Karten.Karte)
Color 0,0,0 SetFont KarteFont For Karten.Karte=Each Karte b=b-1 If b=0 EndIf Next End Function |
||
Nichts ist mehr so wie es einmal war mit
------------------Blitzbasic------------------ Athlon 3000+, 1 GBRam DDR, Geforce FX 5500, 120 GB Fesplatte Sempron 2200+, 512 MBRam DDR, Geforce FX 5200, 60 GB Festplatte |
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Toller Fehler... für mich sieht das eher nach nem Stück Code aus, aber wenn du meinst... ![]() walski |
||
buh! |
![]() |
regaaBetreff: Re: JO! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was soll den
Blitzer hat Folgendes geschrieben: bedeuten? |
||
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist kein syntaktischer Fehler!
Es ist zwar verdammt sinnlos, aber vielleicht sollte da ja nochma was rein ![]() walski |
||
buh! |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey, ich habs ![]() |
||
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
*kopfschüttel*
Nein echt... wow! Welch erkenntnis! Nur habe ich keine Lust, ohne den kompletten Code und/ohne Medien irgendwas zu testen! Soll er doch wenigstens die Fehlermeldung posten... walski |
||
buh! |
![]() |
BlitzerBetreff: JO! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Durch function Ziehen() stellt er eine Zahl fest z.b. 2 und er soll es dann so machen das er dann die Karte zeigt und das er die Kraft und die Abwehr laden und schreiben soll und deswegen weis ich nicht wie ich es mache das er den richtigen Kraft und Abwehr schreibt.
![]() ![]() |
||
Nichts ist mehr so wie es einmal war mit
------------------Blitzbasic------------------ Athlon 3000+, 1 GBRam DDR, Geforce FX 5500, 120 GB Fesplatte Sempron 2200+, 512 MBRam DDR, Geforce FX 5200, 60 GB Festplatte |
walskiEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich gebs auf.
walski |
||
buh! |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Prinzip heißt auch Hier: "Teile und Herrsche", d.h. teile alle kleinen Probleme in noch keleinere auf, und versuch sie erst dann zu lösen, so ohne weiteres
Zitat: Durch function Ziehen() stellt er eine Zahl fest z.b. 2 und er soll es dann so machen das er dann die Karte zeigt und das er die Kraft und die Abwehr laden und schreiben soll und deswegen weis ich nicht wie ich es mache das er den richtigen Kraft und Abwehr schreibt. geht das nid. |
||
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube er möchte einfach seine Karten auf den Bildschirm gelegt bekommen, und darunter die Werte anzeigen.
mit if b=0 : endif versucht er wohl die For each Schleife unnötigerweise abzubrechen. Und wenn ich es nur annähernd verstanden habe, sollte er Karte\Abwehr erstmal einen Wert übergeben. Und dann die Function Schreiben2() und Zeichnen() aus der Function Schreiben() heraus aufrufen. Aber Nichts genaues weiss man nicht. Und Blitzer wenn du noch weiter Hilfe brauchst, dann stelle Codes ins Forum die man auch austesten kann. Ersetze erstmal die Grafiken durch rects soli |
||
solitaire |
![]() |
BlitzerBetreff: OK! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, so meinte ich das.
PS:OK, Mit den Rechtecken mache ich. |
||
Nichts ist mehr so wie es einmal war mit
------------------Blitzbasic------------------ Athlon 3000+, 1 GBRam DDR, Geforce FX 5500, 120 GB Fesplatte Sempron 2200+, 512 MBRam DDR, Geforce FX 5200, 60 GB Festplatte |
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab das mal neu geschrieben!
Test mal obs richtig funktioniert! mfG Ctuchik Code: [AUSKLAPPEN] Graphics 1024,768,0,1 SetBuffer BackBuffer() Const RED_DRAGON = 1 Const ICE_DRAGON = 2 Const BLACK_DRAGON = 3 Const STONE_DRAGON1 = 4 Const STONE_DRAGON2 = 5 Const STONE_DRAGON3 = 6 Const STONE_DRAGON4 = 7 Const MIN = 1 Const MAX = 7 Const KRAFT = 0 Const ABWEHR = 1 ;################# INFOS ÜBER DIE KARTEN ################ ;Namen Dim KartenNamen$(20) KartenNamen$(RED_DRAGON) = "Red Dragon" KartenNamen$(ICE_DRAGON) = "Ice Dragon" KartenNamen$(BLACK_DRAGON) = "Black Dragon" KartenNamen$(STONE_DRAGON1) = "Stone Dragon 1" KartenNamen$(STONE_DRAGON2) = "Stone Dragon 2" KartenNamen$(STONE_DRAGON3) = "Stone Dragon 3" KartenNamen$(STONE_DRAGON4) = "Stone Dragon 4" ;Kraft und Abwehr Dim Attribute(20,2) Attribute(RED_DRAGON,KRAFT) = 2500 Attribute(RED_DRAGON,ABWEHR) = 2000 Attribute(ICE_DRAGON,KRAFT) = 2000 Attribute(ICE_DRAGON,ABWEHR) = 2500 Attribute(BLACK_DRAGON,KRAFT) = 3000 Attribute(BLACK_DRAGON,ABWEHR) = 0 Attribute(STONE_DRAGON1,KRAFT) = 12 Attribute(STONE_DRAGON1,ABWEHR) = 11 Attribute(STONE_DRAGON2,KRAFT) = 10 Attribute(STONE_DRAGON2,ABWEHR) = 9 Attribute(STONE_DRAGON3,KRAFT) = 8 Attribute(STONE_DRAGON3,ABWEHR) = 7 Attribute(STONE_DRAGON4,KRAFT) = 6 Attribute(STONE_DRAGON4,ABWEHR) = 5 ;Bilder Dim KartenBilder(20) KartenBilder(RED_DRAGON)=LoadImage("D:\Karten\RedDragon.bmp") KartenBilder(ICE_DRAGON)=LoadImage("D:\Karten\IceDragon.bmp") KartenBilder(BLACK_DRAGON)=LoadImage("D:\Karten\BlackDragon.bmp") KartenBilder(STONE_DRAGON1)=LoadImage("D:\Karten\StoneDragon1.bmp") KartenBilder(STONE_DRAGON2)=LoadImage("D:\Karten\StoneDragon2.bmp") KartenBilder(STONE_DRAGON3)=LoadImage("D:\Karten\StoneDragon3.bmp") KartenBilder(STONE_DRAGON4)=LoadImage("D:\Karten\StoneDragon4.bmp") ;################ INFOS ENDE ############################ Global HinterKarte=LoadImage("D:\Karten\HinterKarte.bmp") Global KarteFont=LoadFont("Palatino Linotype",18,0,1,0) MaskImage RedDragon,250,250,250 MaskImage IceDragon,250,250,250 MaskImage BlackDragon,250,250,250 MaskImage StoneDragon1,250,250,250 MaskImage StoneDragon2,250,250,250 MaskImage StoneDragon3,250,250,250 MaskImage StoneDragon4,250,250,250 MaskImage HinterKarte,250,250,250 Global Gezogen.Karten = Null Global AnzahlKarten = 3 Type Karten Field card_id% Field x% Field y% End Type While Not KeyHit(1) If KeyHit(57) Ziehen() End If Zeichnen() ;Infos + Cursor Color 255,255,50 Text 20,20,"Leertaste drücken um eine zufällige Karte an der Mausposition zu erstellen! ESC zum Beenden!" Color 255,255,100 Rect MouseX()-3,MouseY(),7,1 Rect MouseX(),MouseY()-3,1,7 Flip Cls Wend End Function Ziehen() drawn = Rand(MIN,MAX) nKarte.Karten = New Karten nKarte\card_id = drawn nKarte\x = MouseX() nKarte\y = MouseY() End Function Function Zeichnen() For dKarte.Karten = Each Karten DrawImage KartenBilder(dKarte\card_id), dKarte\x, dKarte\y ;Color 255,0,0 ;Rect dKarte\x, dKarte\y, 120, 160 <- ich hab die Kartenbilder ja net gehabt Color 255,255,255 Text dKarte\x+80, dKarte\y+144, (Attribute(dKarte\card_id,KRAFT) + "/" + Attribute(dKarte\card_id,ABWEHR)), 1, 1 Text dKarte\x+8, dKarte\y+8, KartenNamen$(dKarte\card_id), 0, 0 ;Steht vielleicht schon in deinem Bild drin Next End Function |
||
![]() |
theBlade |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm es wäre much speicher-schonender wenn mal alles in EIN dim-feld schreibt, zB
dim monster(name$,angriff,abwhr,zusatz_wert1,zusatz_wert2,...) |
||
"Ich bin wie ich bin. Die einen kennen mich, die anderen können mich." (Dr. Konrad Adenauer)
UTFSB -> (use the fuckin "suchen"-button) User posted image <- link -.- |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dir ist klar, dass du damit z.B. Attribute(0) verschenkst? Ausserdem ist sowieso ziemlich schlechter Programmierstil, so etwas hard zu coden... Wenigstens Datas könnte man anfangs verwenden... | ||
![]() |
theBlade |
![]() Antworten mit Zitat ![]() |
---|---|---|
klar ist das scheisse, für sowas wären types geeignet. aber ich nehme an dass er noch nicht soviel erfahrung mit blitz hat, weshalb das ein gute möglichkeit wäre... auch weil es speicherschonender ist als wenn man 4 verschieden dim-felder hat.
edit: types nicht dims ![]() |
||
"Ich bin wie ich bin. Die einen kennen mich, die anderen können mich." (Dr. Konrad Adenauer)
UTFSB -> (use the fuckin "suchen"-button) User posted image <- link -.- |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich meinte eigentlich nicht dich damit, sondern Ctuchik ![]() |
||
![]() |
theBlade |
![]() Antworten mit Zitat ![]() |
---|---|---|
aso oopz ![]() hmm naja, aber auch mein dimfeld kann sehr schnell zu unübersichtlichbarkeit führen (dazu neigt hardcoding immer ^^) deswegen wären types wie schon gesagt am besten dafür geeignet. aber wenn man noch nicht soviel programmiererfahrung hat macht das wenig sinn... (ich geh jetz einfach mal von, da ich den jungen (vllt. das mädel?? ![]() |
||
"Ich bin wie ich bin. Die einen kennen mich, die anderen können mich." (Dr. Konrad Adenauer)
UTFSB -> (use the fuckin "suchen"-button) User posted image <- link -.- |
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
stimmt, ich hab mit 1 angefangen das verschenkt speicher ...
Der Vorteil wenn man Konstanten benutzt ist aber, dass ich das blitzschnell jederzeit ändern kann ![]() Übrigens würde ich die ganzen Kartenwerte normalerweise auch niemals in den Code reinschreiben, sondern z.b. aus Dateien lesen! Ich wollte halt aber nciht gleich alles programmieren, ist ja nicht mein Spiel, ich fand nur Blitzers Code seltsam deshalb hab ich das nochmal neu geschrieben! Types finde ich allerdings ungeeignet um die Daten über die Karten zu speichern! Wenn man Arrays benutzt kann man jedes Feld explizit ansprechen, bei Types müsste man immer nach dem richtigen suchen! Types sind dafür für die einzelnen Karten geeignet die gerade auf dem Spielfeld liegen, deswegen hab ichs ja auch so gemacht! @theBlade: Wie willst du Text und Zahlen in EINEM Array speichern? mfG Ctuchik |
||
Gehe zu Seite 1, 2, 3, 4 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group