Irrlicht Wrapper for GLBasic!

Previous topic - Next topic

devo

Quote from: Schranz0r on 2010-Apr-14
Du da du anscheinend C++ kannst ist DGarray ganz einfach.
Benutzen kannst du es wie VECTOR.

Also du erstellt ein DGArray so :
Code (glbasic) Select

INLINE
DGArray<whatever>myWhatever;
ENDINLINE

FUNCTION CreateWhatEver:
INLINE
     whatever blume; //<----Brüller mir ist echt grad nix dummeres eingefallen ;)
     DIMPUSH(myWhatever,blume);  // ins Array "pushen"
     return LEN(myWhatever)-1     // die ID vom arrayeintrag zurückgeben
ENDINLINE
ENDFUNCTION



Das ist mir klar. Aber wie kriege ich wieder was aus dem Array raus ?

Bsp:


DGArray<IAnimatedMesh*>_aMesh;


FUNCTION Irr_GetMesh: file$// returns a meshID
LOCAL error_msg$ = "Error to load mesh: "+file$
INLINE
   IAnimatedMesh* mesh = smgr->getMesh(file_Str.c_str());
   if(mesh)
   {
      DIMPUSH(_aMesh(),mesh);
      return LEN(_aMesh())-1;
   }
   return -1;
ENDINLINE
ENDFUNCTION

Mit Local Mesh = GetMesh("level.b3d") wird das Mesh ja wohl im _aMesh abgelegt. ::)
Aber wie kann ichs wieder auslesen ?? :giveup:
Wenn ich mehrer habe wie komme ich an ein bestimmtes ?

Quentin

äh ist doch ein ganz normales Array.
Müsste dann mit

Code (glbasic) Select

mesh = _amesh(1);


darauf zugreifen können bzw. statt 1 mit dem entsprechenden Index

Schranz0r

Achso hab ich vergessen zu schreiben :D
Also DGarray ist wie ein normales Array wie Quentin schon sagte.

Code (glbasic) Select

Local Mesh = GetMesh("level.b3d")  // gibt die IndexID an Mesh zurück


in einer Funktion greist du wieder so drauf zu:

Code (glbasic) Select

FUNCTION MachWasMitDemMesh: meshID
INLINE
    _aMesh(meshID).klassenbefehl
    // wenn du einen Pointer im DGArray hast dann natürlich:
    // _aMesh(meshID)->klassenbefehl
ENDINLINE
ENDFUNCTION



Hoffe jetzt ist es klar?!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

devo

#33
Hallo,   :happy:


[attachment deleted by admin]

devo

Hi,

weiss einer warum das nicht funktioniert ?

inline
#include <iostream>
endinline

es werden die Pfade nicht gefunden.  GLBasic ist korrekt installiert.
Unter Codebock mit installiewrtem MinGw ist  "#include <iostream>" kein Problem.

Schranz0r

das ist weil GLB das schon mit einfügt...

Wie du das in GLB bringst, kann dir nur Gernot sagen :/
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

devo

Quote from: Schranz0r on 2010-Apr-18
das ist weil GLB das schon mit einfügt...

Wie du das in GLB bringst, kann dir nur Gernot sagen :/

Ich habs raus.... :good:

Schranz0r

Wär schön wenn du ein FAQ oder sowas machst damit die Frage nicht mehr aufkommt!
Dann ->  :nw:
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard