Posted: Wed Jan 19, 2005 2:37 am
Movement: This is not going to be handled by the engine, as it is a graphics engine not a "game engine", and it allows for more freedom with the code design for the game programmer.
http://www.purebasic.com
https://www.purebasic.fr/english/
I'm not using your stuff. Its written fully in C/C++ and the lua license is included in the zip so you can stop playing cop. I've also changed the lua code to suit my own preferences, and since lua is under the MIT license it states I can use it for whatever purposes I want.FloHimself wrote:maybe i am wrong, but as far as i can see, this is Lua with exported functions from irrlicht.dracflamloc wrote:I've created a 3d programming scripting language thats simple, and very fast.
if so, please don't say you have "created a 3d programming scripting language".
if you have used the pblua lib, be carefull with copyright notices please.
so calm down dude..maybe i am wrong..
Code: Select all
;**************************
; Test PB_Irrlicht Program
; fixed by dagcarck.......
;**************************
;GUI EVENT HANDLER
ProcedureCDLL EventHandler(*EventData.I3D_GUI_EVENT)
If *EventData\EventType=#I3D_EVENT_GUI
If *EventData\flag2=#I3D_GUIEVENT_BUTTON_CLICKED
If *EventData\flag1=102
i3D_Node_SetMaterialFlag(1,#I3D_MATERIALFLAG_WIREFRAME,1)
EndIf
EndIf
EndIf
EndProcedure
;MAIN PROGRAM
ShipData.I3D_NODEDATA
PlanetData.I3D_NODEDATA
If i3D_Initialize3D(#I3D_DRIVER_OPENGL, 640,480,32,0,1,@EventHandler())
;set startup values
i3D_SetShadowColor(255,0,0,0)
i3D_SetBackgroundColor(155,90,90,90)
i3D_SetWindowCaption("Test PB_Irrlicht - Version: " + i3D_GetEngineVersion())
i3D_GUI_SetFont("./fontcourier.bmp")
i3D_LoadMesh("./ship1.ms3d")
i3D_LoadTexture("./ship1.bmp")
i3D_AddAnimatedNode("./ship1.ms3d",1,1,1,1,1)
i3D_AddAnimatedNode("./planet.ms3d",3,1,1,1,1)
i3D_Node_SetMaterialType(1,#I3D_MATERIALTYPE_SPHERE_MAP)
i3D_Node_SetTexture("./ship1.bmp",1,0)
i3D_AddDynamicLight(1,5,5,5,100,255,255,255,100)
i3D_Camera_SetPosition(20,50,20)
i3D_Node_AddDynamicShadow(2)
;create GUI
EditBox1.l = i3D_GUI_CreateEditBox("Edit box sample",101,100,100,250,150,1)
Button1.l = i3D_GUI_CreateButton("Wireframe",102,400,100,500,150)
Static1.l = i3D_GUI_CreateStaticText("Static text is fun!",103,250,250,400,300,0,0)
MsgBox.l = i3D_GUI_CreateMessageBox("Test MsgBox","Testing 1 2 3",104,1,#I3D_GUI_MSGBOX_OK + #I3D_GUI_MSGBOX_CANCEL)
While i3D_IsRunning()
i3D_Camera_PointAtNode(1)
;Start the rendering sequence - ORDER MATTERS
i3D_BeginRender(1,1)
;Render to the screen
i3D_RenderScene()
i3D_RenderGUI()
;Draw2DText must be done between beginrender and endrender, no other time
i3D_Draw2DText("./fontcourier.bmp",10,10,"Hello and welcome to PB_Irrlicht by dracflamloc!",255,255,255,255,0)
i3D_Draw2DText("./fontcourier.bmp",10,30,"http://www.dracsoft.com/",255,255,255,255,0)
i3D_Draw2DText("./fontcourier.bmp",10,50,"X: " + Str(ShipData\xPos),255,255,255,255,0)
i3D_Draw2DText("./fontcourier.bmp",10,70,"Z: " + Str(ShipData\zPos),255,255,255,255,0)
i3D_Draw2DText("./fontcourier.bmp",10,90,"FPS: " + Str(i3D_GetFPS()),255,255,255,255,0)
;End the rendering sequence
i3D_EndRender()
;update data and rotate object
i3D_Node_GetData(1,@ShipData)
i3D_Node_SetRotation(1,ShipData\xRot+0.05,ShipData\yRot+0.05,ShipData\zRot-0.05)
i3D_Node_GetData(3,@PlanetData)
i3D_Node_SetRotation(3,PlanetData\xRot,PlanetData\yRot+0.15,PlanetData\zRot)
;check keypress
; ExamineKeyboard()
; If KeyboardPushed(#PB_Key_Left)
; i3D_Node_SetPosition(1,ShipData\xPos - 0.05,ShipData\yPos,ShipData\zPos)
; ElseIf KeyboardPushed(#PB_Key_Right)
; i3D_Node_SetPosition(1,ShipData\xPos + 0.05,ShipData\yPos,ShipData\zPos)
; ElseIf KeyboardPushed(#PB_Key_Down)
; i3D_Node_SetPosition(1,ShipData\xPos,ShipData\yPos,ShipData\zPos + 0.05)
; ElseIf KeyboardPushed(#PB_Key_Up)
; i3D_Node_SetPosition(1,ShipData\xPos,ShipData\yPos,ShipData\zPos - 0.05)
; ElseIf KeyboardPushed(#PB_Key_Escape)
; i3D_Close3D()
; EndIf
Wend
Else
MessageRequester("Error","Could not initialize the 3D device. Make sure you have PB_Irrlicht.dll")
EndIf
i3D_DoCleanUp()
End
I had the same feeling, but supposed that it's how the Irrlicht engine works...dagcrack wrote: I dont see why irrlicht works like that... load a mesh into memory and later add a "node" ... weird I would say... one would think that loadmesh will let you set a handle for the mesh and it will be loaded.. and thats about all.