Types?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Schnuff

Betreff: Types?

BeitragDi, März 15, 2005 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe 2-BB-Bücher gelesen Shocked
aber ich kapiere leider immer noch nicht:

Arrow was Types sind
Arrow wie man Types einsetzt
Arrow und wie sie funktionieren

Crying or Very sad Crying or Very sad Crying or Very sad Crying or Very sad Crying or Very sad Crying or Very sad Crying or Very sad Crying or Very sad Crying or Very sad

(momentan stelle ich mir folgendes vor:)
Code: [AUSKLAPPEN]

Graphics 640,480,16,1
img = loadimage("Bild.jpg")
Type ("Hallo")
Fied Img
Field X
Field Y
End Type

Drawimage Hallo
Waitkey
End


also das es volgende ausgibt
    1011000011,20,10 Exclamation

------------------------------------
Danke im voraus Schnuff
Ach und Schont mich mit zb. "a²*b²=c²" also mit Fremdwörtern die man nur wenn man Studiert hat versteht Laughing

BladeRunner

Moderator

BeitragDi, März 15, 2005 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitteschön, als Einstieg:

https://www.blitzforum.de/viewtopic.php?t=9165

PS: Die Forensuche ist ein Freund - nutze Sie Wink
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

Waveblue

BeitragDi, März 15, 2005 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.blitzbase.de/tutorials/shadow_1.htm
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

regaa

Betreff: Re: Types?

BeitragDi, März 15, 2005 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Schnuff hat Folgendes geschrieben:
Ich habe 2-BB-Bücher gelesen Shocked
aber ich kapiere leider immer noch nicht:

Code: [AUSKLAPPEN]

Graphics 640,480,16,1
img = loadimage("Bild.jpg")
Type ("Hallo")
Fied Img
Field X
Field Y
End Type

Drawimage Hallo
Waitkey
End



Meinst du die Bücher haben so ein Beispiel enthalten?
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net

blitzmaster

BeitragDi, März 15, 2005 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich empfehle die OH!die findest du hier
***************
Blitzmaster
 

David

BeitragMi, März 16, 2005 9:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Types sind eigendlich ganz leicht zu verstehen. Im Prinzip sind es einzelne Objekte, von einem vom Benutzer bestimmten Typ, die von BlitzBasic in einer Liste verwaltet werden.

BlitzBasic: [AUSKLAPPEN]

Type Maennlein
End Type


Das ist quasi das Grundgerüst für ein solchen Type. Das Wort "Maennlein" ist frei bestimmbar.
Damit das ganze aber was bringt braucht jeder Type noch einige Felder:

BlitzBasic: [AUSKLAPPEN]

Type Maennlein
Field PositionX%
Field PositionY%
Field Lebenspunkte%
Field ImageHandle%
End Type


Diese Felder können, wie normale Variablen, bestimmte Werte aufnehmen.
Um dein Type zu verwenden musst du ein Objekt vom Typ deines Types erstellen:

BlitzBasic: [AUSKLAPPEN]

Spieler.Maennlein = New Maennlein


Das ".Maennlein" hinter "Spieler" sagt BlitzBasic, das dein Objekt vom Typ "Maennlein" sein soll.
Jetzt müssen den Feldern noch Werte zugewießen werden:

BlitzBasic: [AUSKLAPPEN]

Spieler\PositionX = 10
Spieler\PositionY = 100
Spieler\Lebenspunkte = 100
Spieler\ImageHandle = LoadImage( \"Spielergrafik.bmp\" )


Mit "\Feldname" kannst du also auf die verschiedenen Felder deines Types zugreifen. "Spieler\XYZ" wäre nicht möglich, da der Type "Maennlein" kein Feld mit dem Namen "XYZ" besitzt.

Sinnvoll sind Types immer dann, wenn du mehrere Objekte mit gleichen Eigenschaften hast: Gegner, Items usw...
Stell dir einfach mal vor du willst 100 Gegner in einem Level haben, jedem Gegner muss ein Bild zugewießen werden und jeder Gegner hat 0-100 Lebenspunkte:

Pseudocode:
BlitzBasic: [AUSKLAPPEN]

;Gegner 1
BildGegner1 = LoadImage( \"Gegner.bmp\" )
LebenGegner1 = 100

;Gegner 2
BildGegner2 = LoadImage( \"Gegner.bmp\" )
LebenGegner2 = 100

;...

;Gegner100
BildGegner100 = LoadImage( \"Gegner.bmp\" )
LebenGegner100 = 100

Function UpdateScene
If ( LebenGegner1 > 0 ) Then
DrawImage( BildGegner1 )

If ( LebenGegner2 > 0 ) Then
DrawImage( BildGegner2 )

If ( LebenGegner3 > 0 ) Then
DrawImage( BildGegner3 )
;...
If ( LebenGegner100 > 0 ) Then
DrawImage( BildGegner100 )
End Function


Grausam nicht? Jetzt kannst du zwar genau 100 Gegner darstellen aber wenn nochmal 100 hinzukommen sollten gibts viel Tipparbeit.
Man kann das ganze zwar mit Arrays erleichtern, aber viel besser sind Types!!!

Pseudocode:
BlitzBasic: [AUSKLAPPEN]

Type Gegner
Field Leben
Field BildHandle
End Type

For i = 0 To 99
NeuerGegner.Gegner = New Gegner
NeuerGegner\Leben = 100
NeuerGegner\BildHandle = LoadImage( \"Gegner.bmp\" )
Next

Function UpdateScene
For CurrGegner = Each Gegner
If ( CurrGegner\Leben <= 0 ) Then Delete CurrGegner
Else
DrawImage( CurrGegner\BindHandle )
Next
End Function


grüße
 

Schnuff

BeitragDi, Apr 05, 2005 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke ich glaube ich habe verstanden Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group