Code: Select all
'Irrlicht Imports
Imports Irrlicht
Imports Irrlicht.GUI
Imports Irrlicht.Core
Imports Irrlicht.Video
Imports Irrlicht.Scene
'System Imports
Imports System.io
Imports System.Math
Module ModMain
'local scope variables
Dim dimension As New Dimension2D(1024, 768)
Dim driverType As New driverType
Dim node As ICameraSceneNode
'public scope variables
Public driver As IVideoDriver
Public device As IrrlichtDevice = New IrrlichtDevice(driverType, dimension, 32, True, False, False, True, Nothing)
Sub Main()
Dim logFile As File
Dim logWrite As StreamWriter
'set the path for the pk3 files to the app path
Dim irrlichtpath As String = Environment.CurrentDirectory.ToString
'set type to dx9
driverType = Video.DriverType.DIRECTX9
Dim sw As StreamWriter = New StreamWriter("motoXlog.txt")
sw.WriteLine(DateTime.Now.ToString)
sw.WriteLine("Initializing Driver: " & driverType.ToString)
'TODO: add more options for screen size and resolution in gui
sw.WriteLine("Initializing Resolution: " & dimension.Width.ToString & _
"," & dimension.Height.ToString)
sw.Close()
'set up the driver
driver = device.VideoDriver()
'device.EventReceiver = New MyEventReceiver
node = device.SceneManager.AddCameraSceneNodeFPS(Nothing, 100.0!, 1200.0!, -1)
node.Position = New Vector3D(3800.0!, 510.0!, 7400.0!)
node.Target = New Vector3D(4794.0!, 686.0!, 5400.0!)
node.FarValue = 12000.0!
'load and add quake pak file
device.FileSystem.AddZipFileArchive(irrlichtpath + "\map-20kdm2.pk3")
Dim terrain As ITerrainSceneNode = device.SceneManager.AddTerrainSceneNode _
("media/terrain-heightmap.bmp", Nothing, 1010, New Vector3D(0, 0, 0), New Vector3D(40, 4.4F, 40), _
New Color(0, 255, 255, 255))
terrain.SetMaterialType(MaterialType.DETAIL_MAP)
terrain.SetMaterialFlag(Irrlicht.Video.MaterialFlag.LIGHTING, False)
terrain.SetMaterialTexture(0, device.VideoDriver.GetTexture("media\terrain-texture.jpg"))
terrain.SetMaterialTexture(1, device.VideoDriver.GetTexture("media\detailmap3.jpg"))
terrain.ScaleTexture(1.0!, 20.0!)
device.SceneManager.AddSkyBoxSceneNode(device.VideoDriver.GetTexture _
("media/irrlicht2_up.jpg"), device.VideoDriver.GetTexture("media/irrlicht2_dn.jpg"), _
device.VideoDriver.GetTexture("media/irrlicht2_lf.jpg"), device.VideoDriver.GetTexture _
("media/irrlicht2_rt.jpg"), device.VideoDriver.GetTexture("media/irrlicht2_ft.jpg"), _
device.VideoDriver.GetTexture("media/irrlicht2_bk.jpg"), Nothing, -1)
' device control should be visible
device.CursorControl.Visible = False
Do While device.Run
If Not device.WindowActive Then
Exit Sub
End If
device.VideoDriver.BeginScene(True, True, New Color(255, 0, 0, 50))
device.SceneManager.DrawAll()
device.GUIEnvironment.DrawAll()
device.VideoDriver.EndScene()
Loop
End Sub
End Module