Variablen in Funktionen austauschen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Freeman

Betreff: Variablen in Funktionen austauschen

BeitragSa, Jul 03, 2004 0:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

ich wollt grad ne allgemeine laufanimation für alle npc's schreibn inder ich dann nur noch die Variablen austauschen muss, allerdings merk ich grad das ich da nich weiterkomme , deshalb brauch ich an der stelle mal eine hilfe von euch .

Hier is nen beispielCode :

Code: [AUSKLAPPEN]

Graphics 640,480,32,2
     SetBuffer BackBuffer()
     
     Type test
     Field oben
     End Type
     
     Global e.test = New test
     Global wert
     
     Function addiere(Variable)
     If KeyDown(200)
     wert = 25
     Variable = wert
     EndIf
     End Function

     While Not KeyDown(1)
     Cls
     addiere(e\oben)
     Text 0,0,"Variable = :"+e\oben
     Flip
     Wend


also ich möchte einfach das e\oben durch Variable ausgetauscht wird also im endeffekt 25 ergibt. aber es klappt hier nicht....WIESO,HILFE

FrEeMaN

Digi_

BeitragSa, Jul 03, 2004 1:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hi

Ich kann dir nicht viel zum Problem sagen, da ich nicht viel Erfahrung mit BB habe, nur das wohl bei BB das gleiche ist wie bei c++, das die Variable "Variable" beim starten der Funktion angelegt wird, und nach beenden der Funktion wieder gelöscht wird, so scheint es hier zu sein...
In C++ muss man dazu mit Pointer arbeiten, aber das gibt afaik bei BB nicht...

Mein Vorschlag:

Code: [AUSKLAPPEN]

Graphics 640,480,32,2
     SetBuffer BackBuffer()
     
     Type test
     Field oben
     End Type
     
     Global e.test = New test
     Global wert
     
     Function addiere(Variable)
     If KeyDown(200)
     wert = 25
     Variable = wert
     EndIf
     Return Variable
     End Function

     While Not KeyDown(1)
     Cls
     e\oben = addiere(e\oben)
     Text 0,0,"Variable = :"+e\oben
     Flip
     Wend


mfg Digi
 

Timo

BeitragSa, Jul 03, 2004 9:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo Digi hat recht,
in dem Moment wo du die Variable übergibst, wird sie kopiert! Wenn du die Funktion wieder verlässt, passiert also garnichts, denn du hast ja die eigentliche varibale nicht verändert. dies kannst du ändern indem du den neuen Wert zurückgibst (Return)

Timo

Digi_

BeitragSa, Jul 03, 2004 9:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt es denn keine andere Möglichkeit?
Wie vertausche ich dann zwei Variablen mit einer Funktion?

BladeRunner

Moderator

BeitragSa, Jul 03, 2004 10:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist soweit ich das überblicke nur mit globalen variablen drin (leider).

Oder vielleicht den Variablen feste "Plätze" in einer Bank zuweisen, die Werte dort vertauschen und hinterher die Variablen mittels peek aktualisieren. Der Nutzen ist da aber auch eher fragwürdig (entspricht es doch quasi einer globalisierung).
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

Freeman

BeitragSa, Jul 03, 2004 11:18
Antworten mit Zitat
Benutzer-Profile anzeigen
also gibt es keine wirkliche Lösung außer mit return?
Weil ich mach ebn grad die waypoint und NPC geschichte..und da ich die npc's natürlich animieren möchte bräuchte ich ne Procedure mit der ich die animieren kann, ja is ja ganz easy aber wie kann ich eine machen die man für alle nutzen kann? dafür bräucht ich ebn dieses Variablenaustauschen...

Kann mir wer bezüglich der Laufanimation helfen?

FrEeMaN

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group