Problem mit Types

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Sterbendes Lüftlein

Betreff: Problem mit Types

BeitragFr, Dez 10, 2010 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Text entfernt

Jamagin

BeitragFr, Dez 10, 2010 12:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics 800, 600, 32, 2
SetBuffer BackBuffer()
SeedRnd MilliSecs()

Global vsync = CreateTimer(60)

Type Feld
   Field breite
   Field hoehe
   Field achse
End Type

Klasse.Feld = New Feld

Klasse\breite = 20
Klasse\hoehe = 40
Klasse\achse = 12

FlushMouse()

Repeat
   Cls
   WaitTimer(vsync)
   
   Zeichne_Klassenkarte()

   Flip 0
Until KeyHit(1)      ; --> ESC
End


Function Zeichne_Klassenkarte()
   For Klasse.Feld = Each Feld
      Rect 50, 50, Klasse\breite, Klasse\hoehe, 0
   Next
End Function


Beachte in der Funktion Zeichne_Klassenkarte()....


lg. Jamagin
Bevor du etwas neues beginnst, erledige das alte
 

Sterbendes Lüftlein

BeitragFr, Dez 10, 2010 12:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Text entfernt

Jamagin

BeitragFr, Dez 10, 2010 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine Ursache! Mir wird ja auch viel geholfen und so kann ich auch ein wenig zurückgeben!
Aja, du kannst das Erstellen auch in eine Funktion packen!

Code: [AUSKLAPPEN]

Graphics 800, 600, 32, 2
SetBuffer BackBuffer()
SeedRnd MilliSecs()

Global vsync = CreateTimer(60)

Type Feld
   Field x
   Field y
   Field breite
   Field hoehe
   Field achse
   Field modus
   Field farbeR
   Field farbeG
   Field farbeB
End Type

Erstelle_Klassenkarte(50, 50, 20, 40, 12, 0, 255, 255, 0)
Erstelle_Klassenkarte(150, 50, 20, 40, 12, 0, 0, 255, 0)
Erstelle_Klassenkarte(250, 50, 20, 40, 12, 0, 255, 0, 255)
Erstelle_Klassenkarte(350, 50, 20, 40, 12, 0, 255, 255, 255)
Erstelle_Klassenkarte(450, 50, 20, 40, 12, 0, 128, 194, 111)

Erstelle_Klassenkarte(50, 150, 20, 40, 12, 1, 255, 255, 0)
Erstelle_Klassenkarte(150, 150, 20, 40, 12, 1, 0, 255, 0)
Erstelle_Klassenkarte(250, 150, 20, 40, 12, 1, 255, 0, 255)
Erstelle_Klassenkarte(350, 150, 20, 40, 12, 1, 255, 255, 255)
Erstelle_Klassenkarte(450, 150, 20, 40, 12, 1, 128, 194, 111)

FlushMouse()

Repeat
   Cls
   WaitTimer(vsync)
   
   Zeichne_Klassenkarte()

   Flip 0
Until KeyHit(1)      ; --> ESC
End


Function Zeichne_Klassenkarte()
   For Klasse.Feld = Each Feld
      Color Klasse\farbeR, Klasse\farbeG, Klasse\farbeB
      Rect Klasse\x, Klasse\y, Klasse\breite, Klasse\hoehe, Klasse\modus
   Next
End Function

Function Erstelle_Klassenkarte(x, y, breite, hoehe, achse, modus, farbeR, farbeG, farbeB)
   Klasse.Feld = New Feld
   Klasse\x = x
   Klasse\y = y
   Klasse\breite = breite
   Klasse\hoehe = hoehe
   Klasse\achse = achse
   Klasse\modus = modus
   Klasse\farbeR = farbeR
   Klasse\farbeG = farbeG
   Klasse\farbeB = farbeB
End Function


Und auch einfärben und so weiter. Aber das ist nur ein Beispiel!!

lg. Jamagin
Bevor du etwas neues beginnst, erledige das alte

Hubsi

BeitragFr, Dez 10, 2010 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein eigentliches Problem war das Klasse in der Function nicht existierte, da Local. Lösung wäre es der Function zu übergeben:

BlitzBasic: [AUSKLAPPEN]
Zeichne_Klassenkarte(Klasse.Feld)

Function Zeichne_Klassenkarte(Klasse.Feld)
; Kram erledigen
End Function


Das wäre mein Favorit und wie ich finde die sauberste Lösung. Alternativ kannst Du auch Klasse global definieren:

BlitzBasic: [AUSKLAPPEN]
Global Klasse.Feld
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Sterbendes Lüftlein

BeitragFr, Dez 10, 2010 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Text entfernt

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group