Tag: xna

使用标准化科学记数法绘制字符串(上标)

我想在我的游戏中绘制以下字符串 为了比较,宇宙中有10 ^ 75个粒子。 其中10 75采用标准化的科学记数法格式化(正如我们在学校所做的那样)。 我使用SpriteBatch.DrawString方法,但我无法找出一个解决方案。 有一些微不足道的: 绘制两个字符串,其中第二个字符串的字体较小或缩放。 画一个图像。 我一直在看UTF表,但似乎不可能。 我必须为此任务使用特殊字体吗?

C#XNA Xbox HashSet和Tuple

C#XNA Xbox,在这种情况下,可选参数不是可选的 感谢上述问题的帮助,可选参数现在正在运行,或者至少看起来好像它们应该有效。 但是我现在卡在HashSets和Tuples上,它们似乎也没有。 我可以编写自己的两个类的版本。 从头开始的元组和使用Dictonary(可能)的HashSet。 但是我宁愿继续使用标准的。 如果这些类存在于库的PC版本中,那么我可以将它们从PC C#库复制并粘贴到我自己的代码中吗? 使用“转到定义”会导致“HashSet [来自元数据]”并且是C ++头文件,就像它显示类接口但没有实现。 接下来是: stackoverflow.com/questions/10246572/c-sharp-hashset2-to-work-exactly-like-the-standard-c-sharp-hashset-not-compilin

XNA从播放器中查找最近的矢量

我有一个向量列表和一个PlayerVector我只想知道如何在我的列表中找到最接近我的PlayerVector的Vector。 这是我的变量: List Positions; Vector2 Player; 变量已经声明了所有,我只需要一个简单的代码来搜索我的播放器最近的位置。 有没有一个简单的方法?

C#XNA Xbox,在这种情况下,可选参数不是可选的

显然,当在Xbox上使用时,可选参数在C#Xna中不起作用,在编译期间会声明非支持性。 我有这样的情况: func(float? a = null, int? b = null) 大量的可选参数默认为“未定义”值,为null。 这种情况是必需的。 在上面的简化示例中,这可以解包,但这不是可选参数允许: func() func(float? a) func(int? b) func(float? a, int? b) 然而,对于大量参数,这是不实际的。 不允许某些参数定义的组合,并导致通过函数的路径,其中我抛出参数exception,其他导致根据参数的值发生各种不同的事情。 这类似于具有相同名称但不相同的函数之间的多态性。 我可以替代地,并且可能最实际地,需要所有参数。 func(float? a, int? b) 然后这样打电话: func(null, 4) 第一个是未定义的。 有没有办法在Xbox上的C#XNA中启用可选参数?

XNA的自动XNB序列化支持哪些类型?

我已经阅读了Shawn Harvgreave关于自动序列化的博客文章和关于内容管道概述的MSDN文章,但我找不到支持的类型列表。 引用MSDN: 从XNA Game Studio 3.1开始,对于没有现有内容类型编写器的简单类型,自动完成自定义数据到.XNB格式的序列化。 我没有遇到过这个问题,直到我尝试使用System.Collections.Generic中的Queue ,我猜测它不受自动序列化的支持。 那么,是否有一个支持的类型列表? 如果不支持,我是否需要编写自己的ContentTypeWriter和ContentTypeReader ?

如何订阅双击?

我正试图找到一种方法来订阅XNA中的双击事件,谷歌搜索获取winforms相关的东西,但事实并非如此,我不能使用它。 使用Timespan并猜测双击超时在PC上的时间并不可靠。 默认的XNA输入系统也有这个小缺陷:有时候按键或鼠标点击会在更新之间丢失,这会在游戏的高负载时刻破坏双击可靠性。 如何订阅.net中的双击事件? 删除了“不使用Control类事件”,因为实际上有一种方法可以使用该类(请参阅我的回答)。

XNA 2D鼠标选择

我正在使用XNA开发一个简单的2D实时策略游戏。 现在我已经达到了我需要能够单击一个单元或建筑物的精灵并且能够引用与该精灵相关联的对象的点。 根据我过去三天所做的研究,我发现了许多关于如何在3D中进行“鼠标拾取”的参考资料,这似乎不适用于我的情况。 我知道另一种方法是简单地在世界中拥有一个包含所有“可选”对象的数组,当玩家点击一个精灵时,它会根据数组中所有对象的位置检查鼠标位置。 我对这种方法的问题是,如果单位和建筑物的数量增加到更大的数量,它会变得相当慢。 (它似乎也不是很优雅)所以我还能做些什么呢? (请注意,我还研究了使用哈希表将对象与精灵位置相关联的想法,并使用二维数组,其中数组中的每个位置代表世界上的一个像素。再一次,它们似乎相当笨重的做事方式。)

有效地转换音频字节 – byte 到short

我正在尝试使用XNA麦克风捕获音频并将其传递给我分析数据用于显示目的的API。 但是,API需要16位整数数组中的音频数据。 所以我的问题相当直截了当; 什么是将字节数组转换为短数组的最有效方法? private void _microphone_BufferReady(object sender, System.EventArgs e) { _microphone.GetData(_buffer); short[] shorts; //Convert and pass the 16 bit samples ProcessData(shorts); } 干杯,戴夫 编辑 :这是我提出的,似乎工作,但它可以更快地完成吗? private short[] ConvertBytesToShorts(byte[] bytesBuffer) { //Shorts array should be half the size of the bytes buffer, as each short represents 2 bytes (16bits) short[] shorts = new short[bytesBuffer.Length / […]

如何读取XNA 4 for Windows Phone 7中的txt文件?

我看了一下之前的问题,但这似乎不适用于Windows Phone 7项目的XNA 4: XNA Framework Importers 我一直在尝试使用: string line; using (StreamReader sr = new StreamReader(“credits.txt”)) { while ((line = sr.ReadLine()) != null) { //reads line by line until eof //do whatever you want with the text } } ` 但这是抛出一个System.MethodAccessException“尝试访问该方法失败:System.IO.StreamReader..ctor(System.String)” 我需要考虑使用IsolatedStorage吗? 编辑:请注意我正在尝试加载预先准备好的文件,而不是保存正在运行的应用程序的设置。 例如,包含我将仅在运行时读取的信用的文本文件,但需要能够在设计时编辑。

获取其他类的变量

我正在进行乒乓球游戏,因为我是编程新手,我不知道如何获得另一个类变量。 我有单独的课程,绿色和蓝色的拨片,一个球和game1.cs。 我用bool movingUp控制球的运动,movingLeft; 它从屏幕的边界反弹,但我不知道如何使它与桨一起工作。 基本上,我如何检查球拍的位置,当球接触球拍时,它会反弹? 我的意思是,如何检测碰撞? public class Ball { ParticleEngine particleEngine; GraphicsDeviceManager graphics; Texture2D texture; Vector2 position; Boolean movingUp, movingLeft; Vector2 origin; public Ball() { position = new Vector2(800 / 2, 330); } public void LoadContent(ContentManager Content) { texture = Content.Load(“ball”); movingLeft = true; //Particle Engine List textures = new List(); textures.Add(Content.Load(“pixel”)); particleEngine […]