だから私は自分のゲームクラスを書いた.これはそのように初期化されている.
static member RunGame() =
use engine = new Root()
// For now, always use OpenGL
engine.RenderSystem <- engine.RenderSystems.["OpenGL"]
use renderWindow = engine.Initialize(true)
let game = new Game(engine, renderWindow)
game.Load()
engine.FrameStarted.Add(game.HandleInput)
engine.FrameRenderingQueued.Add(game.OnRenderFrame)
engine.StartRendering() // The error is thrown somewhere inside here
game.Unload()
これは、システムをシャットダウンする方法です。
static member this.HandleInput(e: FrameEventArgs) =
input.Capture()
if input.IsKeyPressed(KeyCodes.Escape) then
root.Shutdown
root
コンストラクターの最初の引数なのでengine
、最初のサンプルと同じオブジェクトです。完全なエラーは次のとおりです。
System.NullReferenceException was unhandled
HResult=-2147467261
Message=Object reference not set to an instance of an object.
Source=Axiom
StackTrace:
at Axiom.Graphics.RenderTarget.Update(Boolean swapBuffers)
at Axiom.Graphics.RenderSystem.UpdateAllRenderTargets(Boolean swapBuffers)
at Axiom.Core.Root.UpdateAllRenderTargets()
at Axiom.Core.Root.RenderOneFrame()
at Axiom.Core.Root.StartRendering()
at MiningGameTest.Game.RunGame() in H:\Projects\FSharp\MiningGameTest\MiningGameTest\Game.fs:line 22
at MiningGameTest.Host.Axiom.Program.Main(String[] args) in h:\Projects\FSharp\MiningGameTest\MiningGameTest.Host.Axiom\Program.cs:line 14
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
内部例外:
もう1つ、これが関係しているかどうかはわかりませんが、プロジェクトが起動するとすぐに次のエラーが発生します。
A first chance exception of type 'System.DllNotFoundException' occurred in FreeImageNET.dll
A first chance exception of type 'System.DllNotFoundException' occurred in OpenTK.dll
A first chance exception of type 'System.TypeInitializationException' occurred in OpenTK.dll
A first chance exception of type 'System.DllNotFoundException' occurred in OpenTK.dll
A first chance exception of type 'System.NullReferenceException' occurred in Axiom.dll
私は何か間違ったことをしていますか、それともこれは Axiom のバグですか?
PS: OpenGL レンダリング システムを使用して、Windows 8 および Visual Studio 2012 Professional で実行しています。