Hey ive been toying with IrrBMAX for a little while (thanks Gman) and its awesome ive got my mesh loaded in and started learning my way around irrlicht prety good. My question though is with the following code I cant seem to get a light to show up and shine onto this model (terrain.B3d)
Strict
Import BRL.StandardIO
Import gg.IrrBMAX
Include "B3DLoader.bmx"
Global node:T_irrISceneNode
Type MyEventReceiver Extends T_irrIEventReceiver
Method OnEvent:Int(event:T_irrSEvent)
If (node<>Null And event.getEventType()=EET_KEY_INPUT_EVENT And event.getKeyPressedDown()=False)
Local key:Int=event.getKeyInputKey()
Select key
Case EKEY_KEY_W
'Move Forward
Return True
Case EKEY_KEY_S
'Move Backwards
Return True
Case EKEY_ESCAPE
End
Return True
Default
Return False
EndSelect
EndIf
Return False
EndMethod
Function generate:T_irrIEventReceiver()
Return T_irrIEventReceiver(New MyEventReceiver)
EndFunction
EndType
Local receiver:T_irrIEventReceiver=T_irrIEventReceiver.create(MyEventReceiver.generate)
Local device:T_irrIrrlichtDevice=T_irrIrrlichtDevice.create( ..
EDT_DIRECT3d9, ..
T_irrDimension2d_s32.create(1024,768), ..
32,True,False,False,receiver)
Local driver:T_IrrIVideoDriver = device.getVideoDriver()
Local smgr:T_irrISceneManager = device.getSceneManager()
Local loader:B3DLoader = B3DLoader(B3DLoader.create(B3DLoader.generate))
smgr.AddExternalMeshLoader(T_irrIMeshLoader.createFromHandle(loader.handle))
loader.driver = driver
If device.handle=0 Then Return ' could Not create selected driver.
driver.setFog(T_irrSColor.createFromVals(0,138,125,81), True, 250, 1000, ..
0, True)
Local light1:T_irrILightSceneNode = ..
smgr.addLightSceneNode(Null, T_irrVector3df.createFromVals(0,30,0), ..
T_irrSColorf.createFromRGBA(0.5, 1.0, 0.5, 0.0), 180.0)
Local mesh : T_irrIAnimatedMesh = smgr.getMesh("Terrain.b3d")
Local selector:T_irrITriangleSelector
If mesh.handle
node = smgr.addOctTreeSceneNode(mesh.getmesh(0))
End If
If node.handle
node.setScale(T_irrvector3df.createFromVals(10,10,10))
node.setPosition(T_irrvector3df.createFromVals(10,-10,-10))
'node.setMaterialTexture(1,texture)
node.setMaterialFlag(EMF_LIGHTING,False)
'node.setMaterialType(EMT_LIGHTMAP)
'node.setMaterialType(EMT_LIGHTMAP)
node.setMaterialFlag(EMF_FOG_ENABLE, True)
selector = smgr.createOctTreeTriangleSelector(mesh.getMesh(0), node)
node.setTriangleSelector(selector)
End If
Local camera:T_irrICameraSceneNode=smgr.addCameraSceneNodeFPS(Null,100.0,20.0,-1,Null,True)
Local anim:T_irrISceneNodeAnimator=smgr.createCollisionResponseAnimator( ..
selector, camera, T_irrVector3df.createFromVals(1,4,1), ..
T_irrVector3df.createFromVals(0,-3,0), ..
T_irrVector3df.createFromVals(0,4,0))
'camera.addAnimator(anim)
'device.getCursorControl().setVisible(False)
smgr.addCameraSceneNodeFPS(0, 100.0, 100.0)
device.getCursorControl().setVisible(False)
Local lastFPS:Int = -1
Local fps:Int=0
Local str:String=""
While(device.run())
driver.beginScene(True, True, T_irrSColor.createFromVals(0,200,200,200))
smgr.drawAll()
driver.endScene()
fps = driver.getFPS()
If (lastFPS <> fps) Then
str$ = "Test Stuff"
str$ :+ driver.getName()
str$ :+ "] FPS:"
str$ :+ fps
device.setWindowCaption(str$)
lastFPS = fps
EndIf
Flip
Wend
device.drop()
|