【发布时间】:2009-11-13 20:43:05
【问题描述】:
我设法用 xna 在 F# 中拼凑出一个合适的示例游戏实现。但是,当我尝试实例化我的派生游戏类时,代码会抛出 FileNotFound 异常,试图访问 Microsoft.Xna.Framework 程序集。为什么会这样?
代码:
#light
open System
open Microsoft.Xna.Framework
open Microsoft.Xna.Framework.Audio
open Microsoft.Xna.Framework.Content
open Microsoft.Xna.Framework.Design
open Microsoft.Xna.Framework.GamerServices
open Microsoft.Xna.Framework.Graphics
open Microsoft.Xna.Framework.Input
type SampleGame() as self =
class
inherit Game()
let mutable manager : GraphicsDeviceManager = null
let mutable spriteBatch : SpriteBatch = null
do
manager <- new GraphicsDeviceManager(self)
override Game.Initialize() =
base.Initialize()
override Game.LoadContent() =
spriteBatch <- new SpriteBatch(manager.GraphicsDevice)
base.LoadContent()
override Game.Update(gameTime) =
base.Update(gameTime)
if GamePad.GetState(PlayerIndex.One).Buttons.Back = ButtonState.Pressed then
self.Exit()
override Game.Draw(gameTime) =
manager.GraphicsDevice.Clear(Color.CornflowerBlue);
base.Draw(gameTime)
end
let game = new SampleGame()
game.Run()
顺便说一句,我已经添加了正确的引用。 编辑:经过一番探索,我发现我的 F# 项目正在编译为 64 位,这不适用于 32 位 XNA dll。但是 VS 2010 不允许我更改解决方案平台。我该如何解决这个问题?
【问题讨论】:
-
@RCIX - 你在 F# 上的努力很酷,但你知道,这个示例的外观确实让我想起了为什么为工作选择正确的工具如此重要。
-
你可能是对的,但我只是让它乱七八糟,因为它唯一的想法是我能想到的将是一个像样的项目来学习课程。如果我建立任何东西,那将只是一个小游戏。毕竟,了解某事的最佳方式是尝试将其应用到某事上,然后看看有什么坚持,不是吗?
-
我完全同意这一点。我目前正在阅读 F#,当看到您的示例时,我感到震惊的是,使用命令式语言可以更好地完成某些事情,并且看到 F# 在涉及计算和数据操作等功能性内容时真的很出色。再说一次,.Net 的伟大之处在于您可以根据您正在创建的内容混合和匹配语言
标签: f# xna filenotfoundexception