Types Handlen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

TimBo

Betreff: Types Handlen

BeitragDo, Dez 04, 2008 0:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich habe 3 Types.

Code: [AUSKLAPPEN]
Type strecke
   Field x1
   Field y1
   Field x2
   Field y2
End Type


Type tile
   Field typ
   Field s.strecke
End Type

Type gamer
   Field s.strecke
End Type


Strecke soll 2 Kordinaten speichern. Da sowohl jeder Spieler als auch jedes Tile solche Strecken hat, haben sie als field s.strecke.

dann werden types erstellt und variablen zugeordnet.

In der Mainschleife steht dann folgendes:

Code: [AUSKLAPPEN]

For t.tile = Each tile
   For t\s = Each strecke
      Line t\s\x1,t\s\y1,t\s\x2,t\s\y2
   Next
Next

for g.gamer = Each gamer
   For g\s = Each strecke
      Line g\s\x1+mx,g\s\y1+my,g\s\x2+mx,g\s\y2+my
   Next
Next


warum geht jetz nun jede Strecke mit der Maus mit und nicht nur die g\s strecken ?

bin echt voll ohne Plan

mfg
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Jolinah

Betreff: Re: Types Handlen

BeitragDo, Dez 04, 2008 0:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, mit "For t\s = Each strecke" wird die Strecke vom Tile doch jedesmal überschrieben. Das selbe bei g\s.

Meinst du evtl.:

Code: [AUSKLAPPEN]

For t.tile = Each tile
    Line t\s\x1,t\s\y1,t\s\x2,t\s\y2
Next

for g.gamer = Each gamer
    Line g\s\x1+mx,g\s\y1+my,g\s\x2+mx,g\s\y2+my
Next

Xeres

Moderator

BeitragDo, Dez 04, 2008 1:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Type strecke besitzt eine Liste, in der alle Elemente - seien sie in tile oder gamer - eingetragen sind.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

TimBo

BeitragDo, Dez 04, 2008 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso , wie kann ich das ändern , muss ich dann noch einen Type Strecke2 machen und dann ein Type nur für den Gegner und einen Type nur für die Tiles machen oder gibt es dazu eine Alternative ?

mfg
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Xeres

Moderator

BeitragDo, Dez 04, 2008 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du für jeden Type beliebig viele Strecken verwenden möchtest, gäbe es die folgende Variante:
Code: [AUSKLAPPEN]
Type Tstrecke
   Field Besitzer
   
   Field x1
   Field y1
   Field x2
   Field y2
End Type

Type Ttile
   Field s.Tstrecke
End Type

Type Tgamer
   Field Nr
   Field s.Tstrecke
End Type

Local i, g.Tgamer, s.Tstrecke, t.Ttile

;*** Erster Gamer...
g = New Tgamer
g\Nr=1
For i%=0 To 3
   s = New Tstrecke
   ;** Koordinaten setzen...
   s\x1 = 10
   s\Besitzer = Handle(g) ;*** Interger-Handle der Zugehörigen Type-Instanz
Next

;*** Zweiter Gamer...
g = New Tgamer
g\Nr=2
For i%=0 To 3
   s = New Tstrecke
   ;** Koordinaten setzen...
   s\x1 = 15
   s\Besitzer = Handle(g) ;*** Interger-Handle der Zugehörigen Type-Instanz
Next

t = New Ttile
For i%=0 To 3
   s = New Tstrecke
   ;** Koordinaten setzen...
   s\x1 = 20
   s\Besitzer = Handle(t)
Next


For s.Tstrecke = Each Tstrecke
   
   For g.Tgamer = Each Tgamer
      If Object.Tgamer(s\Besitzer) = g Then ;*** Objekt findet aus dem Handle die passende Instanz...
         Print "Gamer "+g\Nr+": "+s\x1
      EndIf
   Next
   
   For t.Ttile = Each Ttile
      If Object.Ttile(s\Besitzer) = t Then
         Print "Tile: "+s\x1
      EndIf
   Next
   
Next

WaitKey()
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group