Tag: xna

unit testingXNA:我需要模拟我的GraphicsDevice

我在使用XNA框架。 为了帮助我,我做了一个看起来像这样的帮助类: ActorHolder + SpriteBatch (SpriteBatch) + ContentManager (ContentManager) – drawables (IList) – updatables (IList) + ActorHolder(GraphicsDevice, ContentManager) + Draw(GameTime) + Update(GameTime) + AddActor(IActor) + RemoveActor(IActor) + GetCollidingActors(IActor) 现在我想对这个class级进行unit testing。 但是当你看到我的构造函数需要一个图形设备和一个内容管理器。 虽然我认为这在我的应用程序中很明显,但在我的测试中却没有。 我应该嘲笑这两个只是为了进行unit testing还是我的设计存在缺陷? –UPDATE– 我找到了一个可能有用的项目的链接: http : //scurvytest.codeplex.com/没有任何xp,因为编码必须为社交生活腾出空间。 – 注意 – 对不起,我的UML法语,我的公司不使用它,所以我从来没有使用它,除了回到学校。

XNA DrawString()仅绘制部分字符串

我在XNA遇到DrawString()问题。 我为多个逻辑层使用多个SpriteBatches 。 例如:背景,对象,菜单等。 在我的菜单批处理中,我绘制了一个菜单(背景中的大灰色框),按钮(菜单上较小的灰色框)和按钮的字符串。 问题: http : //ompldr.org/vaGw4YQ/Unbenannt.png 但由于某种原因,字符串不是完全绘制的。 有谁知道为什么? 编辑: _menuLayer.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend); if (_menu != null) { _menuLayer.Draw(_menuBoard, new Vector2(graphics.PreferredBackBufferWidth / 2 – 160, graphics.PreferredBackBufferHeight / 2 – 240), Color.White); } _menuLayer.End(); _buttonLayer.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend); if (_menu != null) { foreach (Button button in _menu.Buttons) { if (button.Pressed) { _buttonLayer.Draw(_menuButtonPressed, button.Location, Color.White); _buttonLayer.DrawString(_text, button.Text, […]

每次抽奖都会重绘不变的背景?

这可能是一个非常简单的问题,但我搜索并发现没有其他方法可以做到这一点。 在每个Draw上重绘背景都没有意义。 有没有办法绘制一些东西并将它们留在屏幕上? 我试图评论出来 GraphicsDevice.Clear(Color.CornflowerBlue); 但这没有用。 (它的目的是什么?)

确定是从两个角度顺时针或逆时针转动

我在XNA制作游戏。 我有敌人和球员。 敌人应该逐渐转向玩家。 他们应该确定是否需要顺时针或逆时针转动,以较短者为准。 我通过使用Atan2得到了敌人当前面对的角度和它应该面对的角度(敌人和玩家之间的线的角度)作为弧度。 我虽然得到了一些奇怪的行为。 让我们在下面的场景中说。 敌人可能会朝错误的方向转过来。 我的代码(下面)不断变长,我仍然遇到问题。 此代码是敌人类Update方法的一部分。 这必须是游戏中要克服的常见问题。 有没有办法解决这个问题? //this bit is just in case enemy has rotated more than 360 degrees (gets set back to 0) if (Math.Abs(_blocklist[0]._floor.Revolutions) >= 2) { _blocklist[0]._floor.Rotation = 0.0f; } //enemy rotation in radians float blockroat = _blocklist[0]._floor.Rotation; // vector to player – vector to enemy […]

在XNA中夹紧TextureAddressMode

我一直致力于在XNA中实现2D照明系统,并且我已经让系统工作 – 只要我的窗口的尺寸是2的幂。 否则,程序将在此行失败: GraphicsDevice.DrawUserPrimitives(PrimitiveType.TriangleStrip, Vertices, 0, 2); 该exception指出“当使用不是2的幂的纹理大小时,XNA Framework Reach配置文件要求TextureAddressMode为Clamp”,并且我为解决此问题所做的每一次尝试都失败了 – 这是我发现的最常见的解决方案在互联网上是GraphicsDevice.SamplerStates[0] = SamplerState.LinearClamp; 直接在上面的线上方,但这还没有解决我的问题。 如果我遗漏了解决这个问题所需的任何信息,我会道歉。 我非常乐意根据需要提供更多。

C#XNA鼠标位置投影到3D平面

我正在研究一个3D XNA项目,我一直在考虑这个问题2周。 所以我决定问你。 基本上我有一个平面平面,我想将鼠标位置投射到那个平面,但是怎么样? 我尝试了很多方法,计算角度……但我发现,距离必须影响X位置,也许需要一些我以前从未听过的数学。 谢谢你的时间。

WP7 XNA显示3D FBX模型

我只是打招呼,对于我这个愚蠢的问题感到抱歉。 我的模型看起来像这样: http : //img265.imageshack.us/img265/8291/clipboard01ap.jpg 但结果是XNA看起来像这样: http : //www.youtube.com/watch?v = XHxHKZnjgnM 我希望你能看到奇怪的透明度…… 问题与“EnableDefaultLighting()”有关吗? 感谢帮助

XNA中的实时资源更新

我正在寻找一种在运行时在XNA中更新纹理和其他内容文件的方法,这样如果它在应用程序之外被修改,它将在游戏重新获得焦点时自动更新。 这似乎可以使用Texture2D并从Stream加载,但我无法获得给定资源的直接路径。 我意识到这不适用于内容管道和.xnb,但是出于调试和开发目的,它将非常有用。 有没有人看到像XNA这样成功实现的东西?

如何隐藏XNA 4.0?

我正试图隐藏我的XNA游戏窗口,但我似乎无法在这里找到我迄今为止尝试过的东西谷歌。 Form frmXNA = (Form)Form.FromHandle(this.Window.Handle); frmXNA.Hide(); 我也试过了 Form frmXNA = (Form)Form.FromHandle(this.Window.Handle); frmXNA.Visible = false; 我想我正在做一些非常简单的错误,一旦指出我可能会笑我怎么没看到它。 谢谢您的帮助

在XNA中对网格进行排序

我在XNA中遇到树问题。 当我有树时,我需要使用alpha混合来使非叶部分透明,但模型的某些部分未正确显示,因此alpha混合失败。 我想知道是否有可能读取网格位置来对它们进行排序,或者是否有其他方法可以获得透明的非叶子部分。 模型中的排序可能不起作用,因为我想从各个角度看这棵树。