问题标签 [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 投票
3 回答
940 浏览

c# - Missing Content Importer and Content Processor in XNA Game Studio 4.0 on XP

I've downloaded and installed Visual C# 2010 Express and XNA Game Studio 4.0 on to my XP (32-bit) machine. I had to do this by downloading the files individually as the App Hub package wouldn't install when I tried that, something to do with the Windows Phone stuff.

Anyway, I'm having trouble with transparency on PNGs and I took the project in to work today, and found that by changing Content Importer and Processor (properties) transparency worked fine, this was on a Windows 7 machine.

However on my XP installation at home, the drop down menus for these two boxes are empty. I have tried complete uninstall and re-install but this didn't help. Is there anything else I can try?

I can run the code fine, just can't get transparency on my images.

I'm basically missing the drop-downs shown in the image on this page:

http://msdn.microsoft.com/en-us/library/bb199633(v=XNAGameStudio.40).aspx

Interesting Addition: If i set the importer and processor at work, save the project, and bring it home, the settings show up and work. So it appears i'm purely missing the link between the drop down menus and the available settings.

0 投票
1 回答
4922 浏览

c# - 如何在运行时从 XNA 中的路径加载纹理?

我正在尝试在 XNA 中做一个 RPG 编辑器,问题是我需要从 XMAL 文件中写入的路径加载纹理。

我做了一些研究,但大多数解决方案都在改变内容管道或只是创建自己的。

0 投票
6 回答
3228 浏览

c# - 如何在 C# 中找到内存被用完的地方?

我在 WP7 项目上运行了一个 C# XNA,我发现它在屏幕更改之间占用了内存并且没有返回它,最终导致内存不足异常。

我看了又看,但我一辈子都找不到这段记忆的去向。

有什么方法可以找出内存在哪里被使用以及为什么它没有被归还给设备?

谢谢你的帮助!

0 投票
2 回答
1061 浏览

xna - 如何在不使用 DrawableGameComponent 的情况下更改 DrawOrder

阅读另一个 SO question似乎DrawableGameComponents 不是前进的方向。我自己做了一些研究,并使用XNA Creators 网站上粒子样本,我决定去掉s. 一切都编译得很好,除了我没有可用的并且示例将其用于粒子的事实。DrawableGameComponentDrawOrder

我怎样才能改变DrawOrder好像我正在使用 a DrawableGameComponent

0 投票
1 回答
217 浏览

c# - 使用 Curve3D 类进行 3D 路径 - 问题

我目前正在从事一个涉及生成随机轨道的项目(Z 轴上的固定增量和随机 X 和 Y 以创建颠簸/弯曲的轨道)我使用 Catmull Rom 插值实现了轨道,它按预期工作。这会生成 9800 个点,这些点又存储在二维数组中。

我的主要问题是我现在正试图沿着轨道移动一个对象(用于相机使用,然后是一个化身跟随)。我目前正在使用根据 msdn 帮助 http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.curve.aspx的 Curve3D 类我有一个函数可以分配基于“testCube”的位置关闭值时间和带有 catmull 结果的数组。

现在问题来了;从广义上讲,我的立方体沿着轨道向下移动,但是随着轨道的前进,它似乎以越来越高的频率前后跳跃。我已经消除了任何其他代码作为干扰它的可能性。

我目前正在使用:

basicPoints 数组保存我用于 catmullRom 插值的原始 100 个点,而 drawLocValues 是插值的结果(分别为 100 和 10000 值)

关于为什么 testCube 没有沿着轨道直线前进而不是朝着正确的方向前进而是前后弹跳的任何建议将不胜感激。顺便说一句,两个向量数组的值都是正确的,因为我已经检查过它们(并且轨道本身绘制正确),我还在曲线类中使用 CurveX.postloop.CurveLoopType.Linear 用于所有 xyz 后循环和前循环。

谢谢

编辑:根据要求设置切线代码:

要回答您的问题,是的,它本质上是一个包装器。问题似乎在于 testCube.position.Z 已将其打印在屏幕上,它开始正常,但随着时间的推移,它开始以不断增加的值加倍自身,一般来说,它保持前进的势头,但需要更好的术语它向前口吃然后向后等。

感谢您迄今为止的回复

0 投票
1 回答
702 浏览

c# - Xna 我应该在武器类中创建子弹吗

我有我的gameplay.cs,它产生了基本上包括子弹在内的所有东西。

游戏玩法需要使用子弹来检测地形或其他角色。

我宁愿在武器类而不是游戏类中实例化子弹。

但这意味着我无法跟踪我的子弹来做最热门的......

这里需要一些指导,希望我成为 C# 和 xna 的菜鸟。

0 投票
4 回答
7447 浏览

c# - 游戏架构

我有一个关于我正在制作的 XNA 游戏的问题,但这也是未来游戏的通用问题。我正在制作 Pong 游戏,但我不知道在哪里更新什么,所以我会更好地解释我的意思。我有一个类 Game, Paddle 和 Ball,例如,我想验证球与屏幕限制或桨之间的碰撞,但我遇到了两种方法来做到这一点:

更高级别的方法- 公开桨和球的属性并在 Game.Update 上检查碰撞?

较低级别的方法- 我将我需要的所有信息(屏幕限制和桨信息)提供给球类(通过参数,或在公共公共静态类中)并在 Ball.Update 上检查碰撞?

我想我的问题以更通用的方式是:

一个对象是否需要知道如何更新和绘制自己,甚至需要以某种方式提供给它们的更高级别的依赖项?

或者

更好地在 Game.Update 或 Game.Draw 中的更高级别处理它,或者使用管理器来简化代码?

我认为这是一个适用于所有游戏的游戏逻辑模型问题。我不知道我的问题是否清楚,如果没有,请随时提问。

0 投票
3 回答
4650 浏览

xna - Screen Space Ambient Occlusion XNA 3.1 示例中的 SSAOeffect.fx 在 XNA 4.0 中不起作用

我正在尝试将 Screen Space Ambient Occlusion 示例从 XNA 3.1 转换为 XNA 4.0。我已经修复了源代码中的所有问题,除了着色器文件中的这个奇怪问题。按照 Shawn Hargreaves 的博客的指导,我已经解决并修复了着色器的所有明显问题,但是当它编译时它使用了 620 个指令槽,这远远超过了 512 个指令槽的限制。这怎么可能在 XNA 3.1 中起作用,但在 XNA 4.0 中却不行?

3.1 文件副本的更改非常小,仅包括重命名几个函数。下面是当前形式的完整着色器源。对于减少编译到的指令槽数量的任何帮助,我将不胜感激。


0 投票
1 回答
646 浏览

xna - 了解纹理寄存器和采样器并考虑优化

我有 3 种不同的 xna 效果,一种称为初始化,一种称为迭代,一种称为终结。

Initialise 不接受纹理输入,并渲染到 3 个目标。迭代将这 3 个作为纹理输入,并渲染到 3 个目标,迭代运行多次。Finalize 需要 1 个纹理输入并渲染到一个目标。

我有一些辅助类,但从下面的渲染循环中应该很明显:

我的纹理声明使用以下宏,并与我的输出结构一起定义如下:

我想知道的是,我可以将输入和输出渲染目标放在不同的纹理寄存器中,然后可以交替运行 2 个迭代像素着色器,其中一个从前 3 个寄存器读取,写入最后 3 个寄存器,另一个从最后 3 个并写入前 3 个?

我猜想多次设置渲染目标和输入纹理会产生成本,而我不再需要这样做。这会避免它吗,是否值得?

请注意,我可以单独优化着色器中的代码,如果需要,我会提出单独的问题。

0 投票
1 回答
747 浏览

3d - 在固定高度平移四元数相机

我有一个用 C# 编写的四元数相机(无耻地取自在线教程)。我正在尝试将相机在世界空间中的位置(表示为 Vector3)沿相机“面向”的方向平移。但是,我希望相机在 Y 轴上保持固定高度(假设相机永远不会“倒置”,因为它可能不会旋转到垂直向上或向下看 Y 轴)。

简而言之,我希望相机的行为方式与 RTS 游戏(例如命令与征服)中的相机类似。向前按应该会使您“向上”移动地图,保持在地形上方的恒定高度。下面给出的我的幼稚尝试是不够的,因为相机的速度是由相机俯视世界的角度决定的。

在上面,mPosition 是一个代表世界位置的 Vector3。mInverseViewMatrix 是视图矩阵的逆矩阵。

我正在使用 XNA 和 C#,但任何关于四元数和矢量操作的一般建议都可能有用。