问题标签 [xna-4.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1467 浏览

c# - XNA 4 和外部参考

我试图在 Shawn Hargreaves 博客上实现类似于外部引用示例的东西

http://blogs.msdn.com/b/shawnhar/archive/2008/08/12/everything-you-ever-wanted-to-know-about-intermediateserializer.aspx

我遇到的问题是,当 VS 尝试编译 xml 文件时,它会抛出一个错误,例如

错误 1 ​​构建内容引发 ArgumentException:外部引用“C:\Work\Company\Project\trunk\Project.Content\Sprites\Effects\EffectsSprite.tga”不是已编译的 .xnb 文件。在 Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.WriteExternalReference[T](ExternalReference 1 reference) at Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ExternalReferenceWriter1.Write(ContentWriter 输出,ExternalReference1 value) at Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentTypeWriter1.Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.InvokeWriter[T](T value, ContentTypeWriter writer) 在 Microsoft.Xna.Framework.Content.Pipeline.Serialization 中写入(ContentWriter output, Object value) .Compiler.ContentWriter.WriteObject[T](T 值) 在 Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter.WriteSharedResources() 在 Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentWriter。 Microsoft.Xna.Framework.Xna.Framework.Content.Pipeline.Serialization.Compiler.ContentCompiler.Compile 的 FlushOutput()(流输出,对象值,TargetPlatform targetPlatform,GraphicsProfile targetProfile,Boolean compressContent,String rootDirectory,String referenceRelocationPath)在 Microsoft.Xna.Framework。 Content.Pipeline.BuildCoordinator。Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.SerializeAsset(BuildItem item, ObjectassetData) 在 Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAssetWorker(BuildItem item) 的 SerializeOutputAsset(BuildItem item, ObjectassetData, String outputFilename)在 Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAsset(BuildItem item) 在 Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.RunTheBuild() 在 Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy .RunTheBuild(BuildCoordinatorSettings 设置, TimestampCache timestampCache, ITaskItem[] sourceAssets, String[]& outputContent, String[]& rebuiltContent, String[]& 中间体, DictionaryMicrosoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAssetWorker(BuildItem item) 在 Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAsset(BuildItem item) 在 Microsoft.Xna 的 BuildCoordinator.SerializeAsset(BuildItem item, ObjectassetData) .Framework.Content.Pipeline.BuildCoordinator.RunTheBuild() 在 Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings 设置, TimestampCache timestampCache, ITaskItem[] sourceAssets, String[]& outputContent, String[ ]& rebuiltContent, String[]& 中间体, 字典Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAssetWorker(BuildItem item) 在 Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAsset(BuildItem item) 在 Microsoft.Xna 的 BuildCoordinator.SerializeAsset(BuildItem item, ObjectassetData) .Framework.Content.Pipeline.BuildCoordinator.RunTheBuild() 在 Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings 设置, TimestampCache timestampCache, ITaskItem[] sourceAssets, String[]& outputContent, String[ ]& rebuiltContent, String[]& 中间体, 字典Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings settings, TimestampCache timestampCache, ITaskItem[] sourceAssets , String[]& outputContent, String[]& rebuiltContent, String[]& 中间体, DictionaryMicrosoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings settings, TimestampCache timestampCache, ITaskItem[] sourceAssets , String[]& outputContent, String[]& rebuiltContent, String[]& 中间体, Dictionary2& dependencyTimestamps, KeyValuePair2[]& 警告)C:\Work\Company\Project\trunk\Project.Content\Sprites\Effects\AtlasAuto.xml 项目

我应该如何处理 Xml 文件引用的文件?鉴于它与 xml 文件位于同一文件夹中,我尝试:

  1. 包含在内容项目中并使用 Texture - XNA 框架对其进行处理,
  2. 将其从项目中排除并
  3. 不要构建文件,而只是将其作为内容复制...

似乎没有任何效果。我想知道该示例是否适用于 XNA4,或者是否适用于 XNA3,并且他们改变了它在 XNA4 上的工作方式......

任何想法?

0 投票
1 回答
449 浏览

windows-phone-7 - 在 XNA 中捕获 3D 模型上的触摸事件

我正在使用 XNA 4.0 为 Windows Phone 7 开发 3D 游戏。我想问的是如何在 3D 模型上捕捉触摸?目前我在高度图上有一个 3D 主角和一个 3D 怪物。我想要做的是当我碰到怪物时,主角色会砍他。任何的想法?

0 投票
1 回答
890 浏览

xna - XNA 是否存在相机库?

XNA 是否存在不同相机的库?我四处搜索,发现许多不同的相机类具有不同的接口(或根本没有定义的接口),但没有标准相机定义的通用接口。

我觉得一定有一些我遗漏的东西,这似乎是任何游戏的一个重要方面,所以缺少相机库一定是有充分理由的。

0 投票
1 回答
69 浏览

c# - 如何用字符串定义结构?

我有

无论如何我可以使用数组中的字符串来定义按钮吗?示例(尽管这不起作用):

编辑:我希望这是有道理的,我不确定我是否解释得很好。

0 投票
2 回答
3734 浏览

c# - XNA 可以处理多少个(低多边形)模型?

我知道以下是一个模糊的问题,但我遇到了我在 XNA 中没有预料到的性能问题。

我有一个低多边形模型(它有 18 个面和 14 个顶点),我试图在屏幕上绘制(高!)次。在我绘制这个模型 5000 多次之前,我得到了超过 60 FPS(在一台像样的机器上)。我在这里问太多了吗?我非常希望至少将该数字增加一倍或三倍(10-15k)。

下面给出了我实际绘制模型的代码。我试图从绘制周期中消除尽可能多的计算,我可以从中挤出更多,还是更好的替代方案?

注意: tile.Offset 在初始化期间计算一次,而不是每个周期。

0 投票
1 回答
471 浏览

xna - 可点击的瓷砖

我最近决定使用 XNA 框架学习和制作小型 2D 游戏。因此,我首先在 Kurt Jaegers 和 atm 的“XNA 4.0 Game Development by Example”一书中编辑了一个示例,我一直坚持显示精灵。 . 所以我展示了一个带有随机碎片的板,但不知道如何绘制不同颜色的点击瓷砖以表明我已经选择了它。这是主要的 Game1 类:

板级:

和 GameTile 类:

这就是它的外观:http: //i55.tinypic.com/2yuizbl.png

0 投票
1 回答
651 浏览

c# - 在 XNA 中创建第二个 runloop

我正在将游戏引擎从 Java 移植到 Windows Phone 7 XNA。我正在努力解决的一件事是如何创建模式对话框。该对话框使用 SpriteBatch 在 XNA 中呈现,就像其他所有内容一样,但我基本上想要的是这样的:

Dialog.Ask用户单击其中一个按钮之前不会返回。我所做的唯一一件事就是不断调用RunOneFrame()游戏的方法:

这样做有几个问题:

  1. RunOneFrame仅用于调试目的。
  2. 输入无效!调用TouchPanel.GetState()orGamePad.GetState(PlayerIndex.One)不返回新值。

有没有办法在不丢弃 Game 类和它为初始化所做的一切的情况下启动运行循环?而且我真的不知道如何没有 Game 类,因为在 Windows Phone 7 XNA 应用程序中没有 Main() 方法。它直接进入 Game 构造函数。

0 投票
1 回答
981 浏览

c# - 在 XNA 4.0 中使用多个屏幕

我正在努力寻找如何在 XNA 4.0 中检测可用屏幕的信息。

我要做的是获取可用“屏幕”的列表,选择一个并在该屏幕上全屏启动我的 XNA 应用程序。

具体来说,我不想在通过 HDMI 电缆连接的全高清电视上以全屏模式打开 XNA 窗口。

谢谢,斯特凡

0 投票
1 回答
2999 浏览

c# - HLSL - 组合纹理

我正在尝试在 HLSL 中组合两个纹理 - 具体来说,我想从基础图像中获取 alpha 值,并从叠加图像中获取颜色数据。

我的像素着色器看起来像这样:

我的混合状态如下所示:

这给我留下的是应该是覆盖颜色的褪色版本。我已经尝试了 BlendState 设置的多种排列,并且玩了很多像素着色器数学,但无济于事。

谁能指出我正确的方向?

提前感谢=)

0 投票
3 回答
783 浏览

graphics - 如何检查两张图片是否相互“接触”?


我正在编写一个游戏,其中用户拥有一艘宇宙飞船,需要“杀死”一些试图杀死他的敌人。
我为用户的飞船图片、子弹图片和敌人图片提供了“纹理 2d”。
我想知道,用户将子弹射向敌人后,如何检查子弹是否伤害了敌人?
换句话说 - 什么功能检查一张图片是否“覆盖”(甚至部分)另一张图片?

谢谢!:-)