types und return

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Bobbleboy

Betreff: types und return

BeitragMo, Dez 28, 2009 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
hi, räume gerade mal meinen code ein wenig auf und möche mit einer funktion einen type erstelen un den dann natürlich wiedergeben.

also sowas:
BlitzBasic: [AUSKLAPPEN]

Function spawnplayer(xplayer,yplayer)
a.player=New player
a\x = xplayer
a\y = yplayer
a\xalt = a\x
a\yalt = a\y
a\bild = bild1
a\hp = 100
Return player
End Function


ist hoffentlich leicht zu lösen...

Xaymar

ehemals "Cgamer"

BeitragMo, Dez 28, 2009 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Function spawnplayer.player(xplayer,yplayer)
a.player=New player
a\x = xplayer
a\y = yplayer
a\xalt = a\x
a\yalt = a\y
a\bild = bild1
a\hp = 100
Return a
End Function

so?
Warbseite
 

Bobbleboy

BeitragMo, Dez 28, 2009 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
nope.

da gibt es mir immernoch die selbe fehlermeldung

"variable must be a type" , allerdings bei der nächsten variable die er liest, also erst nach dem benutzen der function.

hab auch schonv ersucht die funktion herumzuschieben um zu gucen ob es vielleicht an der variable liegt, die danach kommt, aber nein. er nimmt einfach die nächste, egal welche.
und wenn ich die funktion wieder entferne und den player im "normalen" code spawnen lasse, läuft es ohne fehlermeldung durch.

desshalb vermute ich, dass beim "funktionieren" ein fehler auftritt
(ha ich habe ein wort geschaffen! Razz )

_____________edit

ich habe zum testen ein neues .bb aufgemacht nur mit folgendem code um andere fehlerquellen auszuschließen:

BlitzBasic: [AUSKLAPPEN]
Type test
Field eins
Field zwei
End Type


While Not KeyDown(1)
create(5,7)
Delay 50
Wend


Function create(a,b)
a.test = New test
a\eins= a
a\zwei=b
Return a
End Function


fehlermeldung: "variable type mismatch"

makiert ist die zeile "a.test = new test"

Xeres

Moderator

BeitragMo, Dez 28, 2009 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Cgamer gab dir den richtigen Hinweis: Der Type muss als Rückgabewert der Funktion angegeben werden
Function create.test(a,b)

Ansonsten wird Standardmäßig versucht ein Interger zurück zu geben...

Edit:
Der Parameter a ist Int den du zu einem Type zu machen versuchst, dass ist auch falsch.
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)
  • Zuletzt bearbeitet von Xeres am Mo, Dez 28, 2009 21:45, insgesamt einmal bearbeitet

Nicdel

BeitragMo, Dez 28, 2009 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Und bei deinem Test ist a ein Parameter (Integer) und ein Type. Das geht nicht.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

Bobbleboy

BeitragMo, Dez 28, 2009 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
danke!

für alle die es mit der sufu finden solten so ist es richtig:

BlitzBasic: [AUSKLAPPEN]
Type test
Field eins
Field zwei
End Type


While Not KeyDown(1)
create.test(5,7)
Delay 50
Wend


Function create.test(b,c)
a.test = New test
a\eins= c
a\zwei= c
Return a
End Function



allerdings funktionert dieser code nicht:

BlitzBasic: [AUSKLAPPEN]
Type test
Field eins
Field zwei
End Type


While Not KeyDown(1)
create.test(5,7)
Delay 50
Print a\eins
Wend
End

Function create.test(b,c)
a.test = New test
a\eins= c
Return a
End Function


fehlereldung: "variable must be a type"
markeirt ist die zeile "print a\eins"

ich weiß nicht weiter...
kann man also dann nicht mehr auf die einzellnen fields zugreifen?
 

Lion

BeitragMo, Dez 28, 2009 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

While Not KeyDown(1)
create.test(5,7)
Delay 50
Print a\eins
Wend


nunja, ich würd mal versuchen...
a=create.test(5,7)

Du weist ja a nirgends etwas zu...
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x
 

Bobbleboy

BeitragMo, Dez 28, 2009 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die schnelle antwort, aber es tritt immernoch der selbe fehler auf.

edit:
tatsächlich tritt ein anderer fehler auf. und zwar in der a=create test zeile, "illegal type conversin"
  • Zuletzt bearbeitet von Bobbleboy am Mo, Dez 28, 2009 22:13, insgesamt einmal bearbeitet

Nicdel

BeitragMo, Dez 28, 2009 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
a.test = Create(5,7)
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Midimaster

BeitragMo, Dez 28, 2009 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie ist es denn damit:

BlitzBasic: [AUSKLAPPEN]
Type test
Field eins
Field zwei
End Type


While Not KeyDown(1)
x.test=create(5,7)
Print x\eins
Delay 50
Wend


Function create.test(b,c)
a.test = New test
a\eins= c
a\zwei= c
Retur
  • Zuletzt bearbeitet von Midimaster am Mi, Dez 30, 2009 10:24, insgesamt einmal bearbeitet
 

Bobbleboy

BeitragMo, Dez 28, 2009 22:14
Antworten mit Zitat
Benutzer-Profile anzeigen
dank dir gott des codens

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group