Types-Anfang

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

gigi

Betreff: Types-Anfang

BeitragMi, Okt 24, 2007 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe noch nie mit Types gearbeitet, doch dann erkannt das sie doch nötig sind.Worauf ich hinaus will:
Ich habe einen Animierten 2D-Helden den ich dem Type "figur" zuordnen will. Ich habe auch ein Feld für den Animations-Frame gemacht.Bloß will er damit nicht animieren, es kommt die Meldung"Illegal Type conversion".
Hier der Code:
Code: [AUSKLAPPEN]
Graphics 800,600,32,2
SetBuffer BackBuffer()


Type figur
Field x
Field y
Field anim
Field leben
End Type
Global held.figur
held.figur=LoadAnimImage("hero.png",50,50,0,4)
held\anim=0
While Not KeyHit(1)
Cls
If held\anim=3 Then
held\anim=0
EndIf
If held\anim<3 Then
held\anim=held\anim+1
EndIf
Delay 100
DrawImage held,100,100,held\anim
Flip
Wend
End

robotx

BeitragMi, Okt 24, 2007 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Brauchst du noch ein Feld für dein Bild vom Helden.
2. Bei dem Anlegen des Helden hast du wohl etwas missverstanden, da du der Objekt Variablen "held.figur" ein Bild zuordnest, was natürlich nicht sein darf. Du musst erst ein Zeiger auf dein Objekt anlegen, mit dem du dann auf die Variablen des Types zugreifen kannst.

Zitat:

;Type...........End Type

;Anlegen des Helden
Global held.figur
held.figur= new figur

;Variablen setzen
held\image = LoadAnimImage("...")
held\anim=0



mfg robotx
www.botbomb.robotzgames.de
www.robotzgames.de

Silver_Knee

BeitragMi, Okt 24, 2007 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
held.figur=LoadAnimImage("hero.png",50,50,0,4)

FALSCH! xD
Code: [AUSKLAPPEN]

held.figur=new figur;neue figur erstellen
gleiches_bild_für_alle=LoadAnimImage("hero.png",50,50,0,4)
...
for held.figur=each figur;jeden helden...
...
Drawimage gleiches_bild_für_alle,held\x,held\y,held\anim
...
next

Richtig^^

Grundsätzlich types:
1.
Code: [AUSKLAPPEN]
Type Typename
Field feldname
End Type


Das definiert einen Type. Das kann man sich vorstellen wie eine Bauanleitung fur ein gerät.

2.
Code: [AUSKLAPPEN]
zugriffsvar.Typename


Das macht zugriffsvar zu einem Träger für einen bestimmten Type. So wie ein string$ die Variable string zu einem Träger eines Strings macht. nachdem man das einmal geschrieben hat kann man das ".Typename" wie ein "$" einfach weglassen.
Man kann das Objekt eines träges auch ganz einfach wechseln, wie string="Hallo" string etwas anderes zuweist, weist zb zugriffsvar=Last Typename dem Type-Träger ein anderes Objekt (in diesem fall das letzte) zu.

3.
Code: [AUSKLAPPEN]
zugriffsvar.Typename= New Typename


Das erstellt eine neue "Instanz" des Types. Man baut praktisch ein Gerät nach dem Bauplan des Types und setzt "zugriffsvar" als Träger des Gerätes fest.

4.
Code: [AUSKLAPPEN]
For zugriffsvar.Typename= Each Typename
...
Next


Diese For next schleife weist zugriffsvar nacheinander alle Objekte zu.

5.
Code: [AUSKLAPPEN]
zugriffsvar\feldname=zahl


Weist einem Feld einen Bestimmten Wert zu.

PS ich kopier das mal in den tut bereich^^
EDIT war ja klar das der schneller ist -.-
 

gigi

BeitragMi, Okt 24, 2007 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Hilfe! Ich glaube ich hab das jetzt verstanden.^^

Und es Funktioniert!!! Der kleine Mann läuft und läuft und läuft.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group