Tag: xna 4.0

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

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

在XNA中夹紧TextureAddressMode

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

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混合失败。 我想知道是否有可能读取网格位置来对它们进行排序,或者是否有其他方法可以获得透明的非叶子部分。 模型中的排序可能不起作用,因为我想从各个角度看这棵树。

从c#中inheritance结构的梦想

在那里,我正在使用C#XNA 4.0进行2D游戏,并再次遇到我的小烦恼; 矩形 。 对于那些使用基本碰撞的人来说,这几乎是必需的。 对于几乎所有创建的游戏对象,您需要有一个矩形。 然后我去改变X,检查碰撞或其他任何东西。 在那里,我开始了objectName.Rectangle.Whatever的永无止境的战斗。 为了解决这个问题,我当然会给出一些objectName属性/方法来为我访问这些属性/方法。 然后我敢于梦想。 我有一个伟大的设计来制作一个基本的游戏对象类,所有drawable将inheritance,这将允许父母,精确的本地坐标(浮点数),并保持纹理/ spritebatch。 为了完成这个,我准备从Rectangleinheritance,使用它所拥有的所有方法和属性。 哎呀,每当需要一个Rectangle的东西时,我可能会懒得说objectName,而不是objectName.Rectangle。 然后我意识到,不是机会。 我开始感到沮丧,因为我很聪明的想法被砸碎了。 从那以后,我完美的小class级拥有一个矩形,各种方法和属性根据需要访问它。 我也有机会从XNA DrawableGameComponentinheritance它。 虽然从长远来看这更实用,每次我查看绘制或更新方法并看到我经常想到的矩形调用时,是否有希望做我想要的事情? 我可以做一些聪明的工作吗? 或者是从一个真正被我掌握的矩形inheritance而来? 虽然使用XNA中提供的DrawableGameComponent类允许大多数与游戏对象相关的操作发生在类Update()方法中,但每次在类之外我都需要引用而不是Rectangle的属性,而是Rectangle本身,我稍微考虑到实际上我的对象实际上是各种方式,并且加强了Rectangle。 然后我再一次发现自己在问: 有没有办法从预定义的结构inheritance,或者给项目留下你的印象(一种解决方法)?

XNA上的MessageBox和对话框(C#)

我将以下代码作为我的XNA游戏的一部分: private void gameOver() { if (!m_IsGameOver) { string message = String.Format(“GAME OVER!!!{0}Your score is: {1}”, Environment.NewLine, GameScore); if (MessageBox.Show(message, “GameOver”, MessageBoxButtons.OK) == DialogResult.OK) { this.Exit(); } m_IsGameOver = true; } } private void gameWon() { string message = String.Format(“You Won!!!{0}Your score is: {1}”, Environment.NewLine, GameScore); if (MessageBox.Show(message, “You Won!”, MessageBoxButtons.OK) == DialogResult.OK) { this.Exit(); […]

Farseer Meter / Pixel Ratio

我用c ++中的box2d做了很多,并尝试了C#。 看起来Farseer通常用来取代Box2D(我知道Box2DXNA,但它看起来有点过时了。)所以,Farseer就是我一直在使用的。 当我使用C ++和Box2D时,每个人总是建议不要使用1像素/米的比例(出于什么原因,我不知道),并且通常建议使用大约30像素/米的某个地方。 正如我一直在研究Farseer,我看到了许多相互矛盾的陈述。 有人说使用1pixel /米,其他人说使用比例,其他人说要使用ConvertUnits.ToSimUnits和ConvertUnits.ToDisplayUnits等。 那我该怎么用? 现在,我正在使用ConvertUnits,但一切都在奇怪的地方呈现。 是否有事实上的标准或我应该去的任何事情? 提前致谢。

如何从一个纹理中显示许多精灵,让它们以XNA 4.0的间隔移动

嗨,我是xna的新手,我正在尝试制作一个简单的游戏,你的小船可以四处移动,避免从顶部到底部坠落的小行星。 我有船移动和一颗小行星坠落,但我不知道如何让大量的小行星从相同的纹理下落,以及如何让它们间隔下降。 到目前为止这是我的小行星类: namespace Asteroids { class Asteroids { Texture2D AsteroidTexture; Vector2 Position; Random random = new Random(); float AsteroidSpeed = 5; public void Initialize() { Position.Y = 0; Position.X = random.Next(0, 1000); } public void Update() { Position.Y += AsteroidSpeed; if (Position.Y > 600) { Position.Y = 0; Position.X = random.Next(0, 1000); } } […]

c#重写枚举

我知道也许之前已经提出过这个问题,但我似乎无法找到合适的解决方案(请记住,我不是C#专家,而是中级用户)… 我准备了一个基类,包括用于我的屏幕对象可能具有的动画状态的枚举(AnimationStates)(例如,士兵可能有不同的状态,而鸟可能有另一组状态..)..基类正在服务于目的为我的动画屏幕对象存储更新方法和其他东西(比如以相同的方式动画所有这些)…基类中的枚举(自然)是内部空的..我有使用枚举成员编写的方法.. 。 如果我通过“public new enum …”在我的子课程中定义enum,我可以“inheritance”它……对吗? 而且,有趣的是,我在基类中有一个字典,我试图将它从一个孩子(即士兵或鸟)传递到它的基础(animatedobject)类……但我不能…… 我觉得我做错了什么或遗失了……有什么想法吗?