Tag: xna

在XNA 4.0中绘制具有多个边的纹理立方体

我几个小时以来一直在反对这个问题。 我想要做的是画一个立方体,每边都有不同的纹理; 或者更具体地说,我希望能够指定我想要的每一面纹理。 我用这里的例子开始,然后尝试进一步开发它,所以我可以有多个纹理。 但是,无论我做什么,它仍然只使用应用于效果的最后一个纹理,并且不理会任何先前的任务。 这是我的形状类: public class BasicShape { public Vector3 shapeSize; public Vector3 shapePosition; private VertexPositionNormalTexture[][] shapeVertices; private int shapeTriangles; private VertexBuffer shapeBuffer; public Texture2D topTexture; public Texture2D frontTexture; public Texture2D backTexture; public Texture2D leftTexture; public Texture2D rightTexture; public Texture2D bottomTexture; public BasicShape(Vector3 size, Vector3 position) { shapeSize = size; shapePosition = position; […]

XNA中的四元数旋转

我正在做以下事吗? 显然不是原因,否则我不会在这里发布一个问题,但我正在尝试围绕另一个模型进行模型的四元数轮换。 假设我有一个具有vector3位置和浮动旋转角度的盒子模型。 我还有一个平截头体形状的模型指向盒子模型,它的位置可以说是盒子模型的50个单位。 平截头体还具有向量3位置和四元数旋转。 在场景1中,框和平截头体是“未旋转的”。 这一切都很好。 在场景2中,我只旋转盒子,我希望平截头体随之旋转(有点像追逐相机),截头体总是直接指向盒子,与盒子的距离与未旋转的距离相同。 显然,如果我只是通过对盒子和平截头体使用Matrix.CreateRotationY()来旋转模型和平截头体,则平截头体稍微向侧面偏移。 所以我认为围绕盒子的圆锥体的四元数旋转最好? 为此我尝试了以下,没有运气。 它在屏幕上绘制我的模型,但它也在屏幕上绘制了一个看起来像一个巨大的盒子,无论我移动相机多远,盒子总是在路上 为了测试,我有3个盒子和3个相关的截头体在我的Game1类中,我用位置和旋转初始化盒子[0] boxObject[0].Position = new Vector3(10, 10, 10); boxObject[1].Position = new Vector3(10, 10, 10); boxObject[2].Position = new Vector3(10, 10, 10); boxObject[0].Rotation = 0.0f; boxObject[1].Rotation = 45.0f; boxObject[2].Rotation = -45.0f; 所以所有3个盒子都以相同的位置绘制,但角度不同。 然后做截头,我发起他们的立场: float f = 50.0f; frustumObject[0].Position = new Vector3(boxObject[0].Position.X, boxObject[0].Position.Y, boxObject[0].Position.Z + f); frustumObject[1].Position […]

代码只有在使用调试器单步执行时才能正确运行?

可能重复: 随机数生成器仅生成一个随机数 不久前我对此感到有些困惑。 我有以下代码: public blockType generateRandomBlock() { Random random = new Random(); int makeBlockOfType = random.Next(0, 100); blockType t = blockType.normal; if (makeBlockOfType = 60) { t = blockType.blue; } else if (makeBlockOfType > 80 && makeBlockOfType 95 && makeBlockOfType <= 100) { t = blockType.green; } return t; } 相当简单,它根据随机生成的数字(基于系统时间)返回enum值。 不幸的是,由于一些奇怪的原因,我有所有的块都是一种颜色或另一种颜色,即使这是针对每个块进入游戏。 但是,当我使用调试器逐步执行此操作,然后在运行后查看结果时,我看到块现在基于提供的机会多色。 我对为什么会发生这种情况感到有些困惑。 […]

检查系统是否有声音C#

我们目前正在开发一款使用XNA的游戏,我们偶然发现了一个小问题。 当系统没有插入声音设备时(扬声器等 – 当Win7在扬声器图标上显示红叉时),当尝试播放/加载声音时它会崩溃。 因此,我们想检查系统是否具有输出声音的能力。 在C#中有可能吗?

XNA计时如何工作?

XNA如何保持一致且精确的60 FPS帧速率? 此外,如何在不将CPU固定在100%的情况下保持如此精确的时序?

XNA:Unload()有什么意义?

XNA游戏有一个Unload()方法,其中内容应该被卸载。 但这有什么意义呢? 如果正在卸载所有内容,那么游戏必须退出,在这种情况下,一切都将被垃圾收集,对吧?

如何使用XNA加载文件夹中的所有文件?

我想使用Content.Load(“filename”)将文件夹“Content / textures”中的所有文件加载到游戏中; 但是,我无法以这种方式“查找”位于Content内的文件(该程序反而看“bin / debug /../ Content / textures” ,但是在尝试加载jpg / png文件时出现错误Content.Load。 我怎样才能实现我想做的事情? 我想将Content内的文件夹中的所有文件(哪个内容文件夹是正确的?)加载到游戏中,这样我就不必指定每一个纹理。 谢谢。

XNA C中的颜色替换#

我使用加载我的纹理 Texture2D.FromFile() 然后使用它们绘制 spriteBatch.Draw() 但重点是:我想将图像的某些颜色更改为另一种颜色。 所以我的问题: 如何将图像的单色更改为另一种颜色(例如蓝色到红色)。 事实上,我真正想做的是将一组颜色改为另一组颜色。 例如红色和类似色调,红色到蓝色,类似色调,蓝色。 例如,您可以在Corel PHOTO-PAINT(“替换颜色”)中执行此操作。 请记住,我是XNA的初学者。 最好的问候,杰克 编辑: 伙计们,非常感谢你的帮助。 Callum的回答确实非常有用。 但我想知道是否有内置函数来解决我的第二个问题,因为编写自己的函数可能非常耗时。 我认为,这种function可能非常有用。 就像是: color.SetNewColor(Color color_from, Color color_to, int range) 正如我之前所说,这种function是用Corel PHOTO-PAINT构建的。 为了更好地解释它,这里是我正在谈论的例子: 链接文字 所以,我只设置color_from,color_to和range。 我觉得它的作用是这样的:它检查图像的每种颜色,如果它在color_from的范围内,它会在color_to的色调中变为足够的颜色。

如何在XNA中逐个像素地绘制?

我正在尝试使用XNA逐个像素地在屏幕上绘图,但是我遇到了资源问题。 我认为最好的方法是使用1个纹理来更新每一帧,但是我无法更新它。 这是我到目前为止所做的,就像测试一样: Texture2D canvas; Rectangle tracedSize; UInt32[] pixels; protected override void Initialize() { tracedSize = GraphicsDevice.PresentationParameters.Bounds; canvas = new Texture2D(GraphicsDevice, tracedSize.Width, tracedSize.Height, false, SurfaceFormat.Color); pixels = new UInt32[tracedSize.Width * tracedSize.Height]; base.Initialize(); } protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); pixels[100] = 0xFF00FF00; canvas.SetData(pixels, 0, tracedSize.Width * tracedSize.Height); spriteBatch.Begin(); spriteBatch.Draw(canvas, new Rectangle(0, 0, tracedSize.Width, tracedSize.Height), […]

Windows游戏库和类库之间有什么区别?

Windows游戏库和类库之间有什么区别? 是否只是通过包含XNA框架开始? 此外, Windows / Xbox360 / Zune游戏库之间的差异在哪里? 他们似乎都从相同的参考文献( Microsoft.Xna.Framework,Microsoft.Xna.Framework.Game )开始。