Frage zu Type

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

JRRT0lkien

Betreff: Frage zu Type

BeitragDo, Apr 21, 2005 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Ich habe mir in einem Buch und auf bltzbase.de die Erklärung zu Type durchgelesen, will sie aber einfach nicht verstehen. Ich muss sagen, dass ich C++ und Java ein wenig gemacht habe und Type möglicherweise mit Klassen verwechsle.

Ich habe Folgendes verstanden [Beispiel von Blitzbase]:

Code: [AUSKLAPPEN]
TYPE crafts
   FIELD x
   FIELD y
   FIELD dead
   FIELD graphic
END TYPE


Type ist eine "Schablone" und legt, ganz wie Klassen in C++/Java, eine Art Muster Fest. Man legt sich mit Objekt.crafts=new crafts eine Instanz an. Diese Instanz (oder wie nennt man dies?) hat die Eigeschaftsvariabeln x, y, dead und graphic. Ich spreche eine Instanz an und weise ihren Eigenschaften etwas mit der "\"-Notation etwas zu, z.B Objekt\x=500.

Ist das so erstmal richtig?
Achja: und ist es richtig, dass die Zuweisung nur von jeweils einem Datentyp sein kann, sodass die Eigenschaftsvariablen x, y usw. nur vom Typ Integer ODER von Typ String sein können?

Weiter:

Code: [AUSKLAPPEN]
FOR t = 1 TO 100
   alien.crafts = NEW crafts
   alien\x = RND(0,640)
   alien\y = RND(0,480)
   alien\dead = 0
   alien\graphic = 1
NEXT


Nun ist es ja so, dass in einer Schleife immer neue Instanzen erzeugt werden, die "alien" heißen! Wie kann das sein, wie kann ich das individuelle ansprechen?

Naja, ichg glaube es sit hier schon deutlich, dass ich in die falsche Richtung denke. Bitte lenkt mich ein Wink

Thx im Voraus!

Gruß
JRRT0lkien
 

BlackTermi

BeitragDo, Apr 21, 2005 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm, das kann man jetzt nicht einfach kurz erklären, aber hier ist ein sehr ausführliches tutorial dazu:
http://www.blitzbase.de/tutorials/shadow_1.htm


und ansonsten sprich sie mit ner neuen schleife an:


BlitzBasic: [AUSKLAPPEN]

For alien.crafts = Each crafts

Delete alien


Next


so geht er sie einen nach dem anderen durch (auch wenn du tausende hast)
  • Zuletzt bearbeitet von BlackTermi am Do, Apr 21, 2005 22:09, insgesamt einmal bearbeitet

Spikespine

BeitragDo, Apr 21, 2005 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, normalerweise wird dann mit einer For-Each Schleife jede Instanz durchgegangen. Um gezielt Instanzen anzusprechen, helfen dir wohl
ql:After
ql:Before
ql:First
ql:Last
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax

Vertex

BeitragDo, Apr 21, 2005 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Types darfst du dir als linked Lists vorstellen:
Code: [AUSKLAPPEN]
struct craft{
   int x;
   int y;
   int dead;
   int graphic;
   craft *next;
   craft *before;
};

(sorry, mein C ist etwas eingerostet)

Jedenfalls kannst du somit über die Instanz eines Objektes deren Vor- und Nachfolger ansprechen.

Was macht
Code: [AUSKLAPPEN]
For a.craft = Each craft
Next

?

Als erstes ist a = First. First bedeutet, das der Pointer auf before = Null ist, es also keinen Vorgänger gibt. Nach dem nächstens Durchlauf wird a als Nachfolger von First referenziert. Beim nächsten durchlauf wird a wieder als Nachfolger von a referenziert. Usw.. bis a keinen Nachfolger mehr hat(next = Null).

[/code]
For alien.crafts = Each crafts

Delete alien


Next Code: [AUSKLAPPEN]


Kann man übrigens als [code]Delete Each crafts[/code] schreiben.

mfg olli
vertex.dreamfall.at | GitHub

BladeRunner

Moderator

BeitragFr, Apr 22, 2005 3:26
Antworten mit Zitat
Benutzer-Profile anzeigen
...und selbstredend können die fields verschiedene Variabelntypen aufnehmen:
BlitzBasic: [AUSKLAPPEN]
Type test
Field x,y
Field name$
Field wichtigefloat#
End Type
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

JRRT0lkien

Betreff: Danke!

BeitragFr, Apr 22, 2005 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Danke für Eure Tipps! Ich lese mir erstmal die Erklärung bei Blitzbase durch, dann schaue ich weiter und frage vielleicht noch was.

Gruß
JRRT0lkien

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group