GLBasic forum

Codesnippets => Inline / 3rd party => Topic started by: Schranz0r on 2009-Nov-08

Title: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2009-Nov-08
I start to wrapp the Irrlicht-Engine, it works fine :)
 
Code atm:
 
Code: GLBasic [Select]
 
AUTOPAUSE FALSE
Irr_CreateDevice(640,480,32)
Irr_SetWindowCaption("Irrlicht Test")
Irr_GuiAddStaticText("Hello World!", 10,10,200,25)
LOCAL sydney = Irr_GetMesh("media/sydney.md2")
LOCAL node = Irr_AddAnimatedMeshSceneNode(sydney)
Irr_SetMaterialFlag(node)
Irr_SetMaterialTexture(node, "media/sydney.bmp")

Irr_AddCameraSceneNode(0,30,-40,0,5,0)
 

WHILE Irr_DeviceRun()
 
 Irr_BeginScene(TRUE,TRUE,255,100,101,140)
 Irr_DrawAll()
 Irr_GuiDrawAll()
 Irr_EndScene()
WEND
Irr_DropDevice()
END
 

I use the LibIrrlicht.a, headers and the Irrlicht.dll !

[attachment deleted by admin]
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Topzombie on 2009-Dec-13
Nice  =D
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Quentin on 2009-Dec-14
Supi Schranzor. Mit dem Gedanken hatte ich auch schon mal gespielt. Die GUI-Funktionen von Irrlicht wären sicherlich auch einen Blick wert.
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2009-Dec-14
Kann Euch das gerne schicken...
Bin grad ein bisschen beschäftigt  :/

Edit: ich bin so Frei und lads hoch :D

Achja das braucht ihr auch noch:

http://downloads.sourceforge.net/irrlicht/irrlicht-1.6.zip

[attachment deleted by admin]
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: bigsofty on 2009-Dec-14
Good work!  :good:

You basing it on Frank Dodds FB wrapper or the official SF C++ headers?

Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2009-Dec-14
It basing on Schranz0r GLBasic Wrapper  :D

No, i Include the official Headers and Wrapp it inside of GLBasic...
Works fine!
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: bigsofty on 2009-Dec-14
Ah, even better, Franks wrapper is getting out of date!  ;)
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Quentin on 2009-Dec-18
Super! Schon mal ein guter Einstieg.
Hast die Includes unter ../Compiler/platform/Include abgelegt?
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2009-Dec-20
nein, ich hab sie unter:

C:\Program Files\GLBasic\Compiler\platform\Win32\Include

und natürlich :

C:\Program Files\GLBasic\Compiler\platform\Win32\Lib


das GLBasic-Header-Packet darf man natürlich auch net vergessen!

http://www.glbasic.com/files/headers.rar
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Mar-29
Hat jemand das Ding weiterentwickelt ?  ;/
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2010-Mar-29
Hat jemand das Ding weiterentwickelt ?  ;/

Nein da leider wenig interesse daran stand hatte ich es auf Eis gelegt, wenn jedoch ein paar das wollen mach ich weiter!
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Mar-30
Hat jemand das Ding weiterentwickelt ?  ;/

Nein da leider wenig interesse daran stand hatte ich es auf Eis gelegt, wenn jedoch ein paar das wollen mach ich weiter!

Oh, schein ja der einzige zu sein, der sich dafür interessiert.  ;/   Bin Neuling mit GLB und hab da so meine Schwierigkeiten. :S
Normal nutze ich Irrlicht unter FreeBasic und Delphi. Was mich interessiert ist die Einbringung der NewtonSDK.
Der Newtonwrapper unter GLB ist cool.
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2010-Mar-30
Jo der ist super, hat Gernot aka Hello Kitty super gemacht ;)
Werde die Tage mal weiter basteln und dir dann Fortschritte melden. (Irrlicht)

Grüße
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Mar-31
Jo der ist super, hat Gernot aka Hello Kitty super gemacht ;)
Werde die Tage mal weiter basteln und dir dann Fortschritte melden. (Irrlicht)

Grüße


Cool.
Kannste mir mal erklären was für ein Array durch DGArray festgelegt wird ?
MfG.
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2010-Mar-31
DGArray im INLINE ist "sowas" wie Vector in C++

du kannst Klassen, pointer, jeglichen Dateityp reinpacken :)

kleiner Test(Sinnfrei aber soll ja nur zeigen wie es geht):

Vec.gbas
Code: GLBasic [Select]
INLINE
       
struct Vec
{
        int x;
        int y;
};

DGArray<Vec>MyTvecs; // Vec ins Array als Dateityp
       
ENDINLINE


FUNCTION CreateVector: x%, y% // returns Vec_ID
INLINE
        Vec MyVec;
        MyVec.x = x;
        MyVec.y = y;
        DIMPUSH(MyTvecs,MyVec); // ins Array einfügen!
       
        return LEN(MyTvecs)-1; // item 1 = 0;  item 2 = 1 usw :)
       
ENDINLINE
ENDFUNCTION  


FUNCTION GetVectorX: Vec_ID%
INLINE
        return MyTvecs(Vec_ID).x;      
ENDINLINE
ENDFUNCTION

FUNCTION GetVectorY: Vec_ID%
INLINE
        return MyTvecs(Vec_ID).y;      
ENDINLINE
ENDFUNCTION



main.gbas
Code: GLBasic [Select]
LOCAL vec1 = CreateVector(10,20)
LOCAL vec2 = CreateVector(50,60)


WHILE TRUE
       
        PRINT "Vec_ID: "+vec1+" | x: "+GetVectorX(vec1)+" | y: "+GetVectorY(vec1), 10,10
        PRINT "Vec_ID: "+vec2+" | x: "+GetVectorX(vec2)+" | y: "+GetVectorY(vec2), 10,30

       
SHOWSCREEN
WEND
END
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-03
Hallo  Schranz0r,

hast du vieleicht ne Routine mit der ich im Wrapper den receiver ansprechen und einbinden kann ? :giveup:

Bsp:
IrrlichtDevice* device = createDevice(driverType,core::dimension2d<u32>(640, 480), 16, false, false, false, &receiver);
                                                                                                                                                                          !----------!
MfG.


HAT SICH ERLEDIGT.....SELBST EINGBAUT :booze:
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2010-Apr-04
Oh das hab ich ja ganz vergessen, ich wollte ja bisschen weiter machen :/
Hast du schon was neues, was ein update wert wäre?
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-06
Oh das hab ich ja ganz vergessen, ich wollte ja bisschen weiter machen :/
Hast du schon was neues, was ein update wert wäre?


Ich hab selber mal etwas rumgeprogt. Bin auch ein Stückchen weitergekommen. =D
Mal sehn, wann ich ins stocken komme. :blink:
Ich muss erstmal mehr Durchblick mit GLBasic bekommen.

Mal ne Frage: Kann man mit GLBasic eigentlich auch DLLs erzeugen ?
Äh, zwei Routinen suche ich noch:

1.IrrGetMeshVertexCount( IAnimatedMesh* mesh, int iFrame )
2.IrrGetMeshVertices( IAnimatedMesh* mesh, int iFrame, IRR_VERT *verts )
Hast du ne Idee?

Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-08
Hab den Wrapper leicht erweitert.
1.Level laden
2.Levelcollision
3.Modelbewegung mittels Tastatur
4.Versch. Kamera

Hab den Wrapper mit NewtonSdk kombiniert. Klappt soweit  :booze:
Nur eine Routine fehlt mir noch:

FUNCTION NewtonCreateDDD: id_ddd%, frame%   ---> Diese brauch ich umgestaltet für die Irrlichtengine für Newton.

Unter FreeBasic hab ich ne funktionfähige Version.  :-[
Doch unter GLB hab ich keinen Plan wie ich  meine Levelkollision hinkriege :rant:


Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Kitty Hello on 2010-Apr-09
k.A. wie das geht.
Ich hab in GLBasic alle Flächen angesucht und dann daraus "tetraeder" gemacht. Schau halt wie ich's hab.
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2010-Apr-10
Hab den Wrapper leicht erweitert.

Na siehste mal, wie einfach das mit GLBasic sein kann.
Da muss ich ja wohl nichtmehr weiter machen wenn du da grad am basteln bist :P

Wenns dennoch Probleme gibt, schreib mir ne PM hier im Forum, dann kann ich dir bestimmt helfen.
Lass ab und an mal nen Screenshot rüberwachsen. ;)


Achso eins noch, mich würde deine Tasterturabfrage brennend interessieren!
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-10
Hi,
im Moment ist mir mein zweiter PC mit dem Progs abgeschmiert. Mein SCode ist teilweise futsch. : :S
Werd das alles neu proggen müssen, was ich schon hatte. :rant:
Wird wohl etwas dauern. Dann stelle ich mal was rein.

Die Tastatur ist im Moment noch ziemlich simpel. Nur zum testen ::)

MfG.


[attachment deleted by admin]
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2010-Apr-10
Sieht doch schonmal schick aus ;)
Weiter so und wenn du hilfe brauchst, brüll einfach!
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-10
Sieht doch schonmal schick aus ;)
Weiter so und wenn du hilfe brauchst, brüll einfach!

Komm drauf zurück, wenn ichs brauch  :good:
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-12
Jetzt hab ich alle Dreiecke für Newton.
Aber ein Problem hab ich:
Die Newtonbox taucht etwas in den Newtonlevel und blockiert dadurch.  (s.Bild 2)

Such mich schon dumm nach dem Fehler.  Was kann das sein ?

EMail auch:  *** gelöscht von Schranz0r ***

[attachment deleted by admin]
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2010-Apr-13
Die Newtonbox hast du als Objekt erstellt richtig?
Sprich du wolltest sie die schiefe Ebene runterrutschen lassen?

Mach den "spawnpoint" mal höher.
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Kitty Hello on 2010-Apr-13
Und lass Dir mal das Netwonsystem anzeigen. (Newton_Debug oder so....)
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2010-Apr-14
Fehler beheben können?
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-14
An Newton arbeite ich noch... :sick:

Aber ohne Newton sie läuft bereits.


Hallo  Schranz0r, wie kann ich Meshs oder Nodes aus einem DGArray auslesen?
Sorry für meine dummen Fragen, aber ich hab noch einige Schwierigkeiten mit GLB.

[attachment deleted by admin]
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: 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
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-15
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 ?
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Quentin on 2010-Apr-15
ä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
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2010-Apr-15
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?!
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-17
Hallo,   :happy:


[attachment deleted by admin]
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-18
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.
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: 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 :/
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: devo on 2010-Apr-19
das ist weil GLB das schon mit einfügt...

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

Ich habs raus.... :good:
Title: Re: Irrlicht Wrapper for GLBasic!
Post by: Schranz0r on 2010-Apr-20
Wär schön wenn du ein FAQ oder sowas machst damit die Frage nicht mehr aufkommt!
Dann ->  :nw: