array Übergabe standard Parameter

Previous topic - Next topic

monono

Dumme Frage, aber wie kann ich ein standard Parameter für ein Array in die Funktion einfügen? Also z.B.
Code (glbasic) Select

FUNCTION superduper: x, y, flag1=10, pts[] = ?


Kitty Hello

nicht?
oder evtl so:

...

O_O

... Kopfkratz...

Also...
Code (glbasic) Select

GLOBAL gArr[]

DIMDATA gArr[], 1,2,3

FUNCTION poo: a[] = gArr[]
..


Ohne das initialisieren im code ist's schwer. Du könntest schaun ob LEN(a[])=0 und dann halt ein standart-Array reinpacken.

monono

Dann kommt auch wie bei meine anderen Versuchen:
Code (glbasic) Select

In file included from C:\Users\Marc\AppData\Local\Temp\glbasic\gpc_tempg.cpp:2:
C:\Users\Marc\AppData\Local\Temp\glbasic\gpc_temp.h:8: error: `gArr' was not declared in this scope
C:\Users\Marc\AppData\Local\Temp\glbasic\gpc_temp.h:8: error: expected primary-expression before ']' token
In file included from C:\Users\Marc\AppData\Local\Temp\glbasic\gpc_temp0.cpp:1:
C:\Users\Marc\AppData\Local\Temp\glbasic\gpc_temp.h:8: error: `gArr' was not declared in this scope
C:\Users\Marc\AppData\Local\Temp\glbasic\gpc_temp.h:8: error: expected primary-expression before ']' token
*** FATAL ERROR - Bitte die Compiler-Ausgabe ins Forum kopieren


Ich versuche halt gerade in meinem Framework box2d zu implementieren. Und mein plan war es das ich für jedes beliebige Objekt Q_EnablePhysics(id, typ$, mass, friction,restitution,radius=0 ,a[]=pts[]) aufrufen kann und es sich dann physikalisch verhält. typ$ kann bisher "box", "solid box" oder "circle" sein. Jetzt ist aus aktuellem Anlass "polygon" dran.
Eine nicht so hübsche Lösung wäre wenn ich auf die Übergabe verzichte und auf ein globales Array zugreife.
Wenn jemandem eine elegantere Lösung einfällt, bitte weiter posten.

backslider

Wenn ich dich richtig verstehe...
Geht das nicht, wenn du einen Polytype erstellst, also quasi so:

Code (glbasic) Select

TYPE Polygon
pts[]

function init: i
               dim self.pts[i]
endfunction
ENDTYPE

function foo: x, y, flag1=10, pts=5
local poly AS Polygon
poly.init(pts)//mit eigenem oder standardparameter initialisieren

endfunction

Hoffe ich hab dein Problem richtig erkannt?! :)

monono

Danke Backslider,
aber das trifft es nicht oder ich habe deinen code nicht verstanden. Ich habe dann ja immer noch kein array übergeben. Ich will eine eigene Funktion aufrufen, die dann sowohl Schranzors box2d b_CreatePoly aufruft und gleichzeitig in meiner eigenen Objektliste das Handle zum box2d Polygon dem Obejekteintrag hinzufügt. Im box2d Beispiel ist es das Dreieck pts[3][2]. Da die Funktion aber auch zum kreieren von BOX und SOLID BOX Objekten da ist, für die man kein Array braucht, wollte ich nur wissen ob man im Funktionskopf einen Standard parameter angeben kann. Kitty sagt nein, dann werde ich es anders machen!