Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XNA-帮助确定屏幕位置的工具_C#_Graphics_Xna_Pixels_2d Games - Fatal编程技术网

C# XNA-帮助确定屏幕位置的工具

C# XNA-帮助确定屏幕位置的工具,c#,graphics,xna,pixels,2d-games,C#,Graphics,Xna,Pixels,2d Games,我目前正在使用XNA框架开发一款RPG游戏 目前,在确定文本在屏幕上的显示位置时,我使用试错法来查找Y坐标,即加载坐标,然后修改坐标以改变位置 下面的代码示例显示了我是如何处理“对话”文本的 Fonts.SplitTextIntoLines根据使用的字体和指定的最大宽度将输入拆分为多行,这与我的问题无关 titlePosition.X:这里我把文本放在屏幕中央 Y:这条线让我很烦 如果有某种工具可以让我有一个空白窗口,我可以定位一段文字或图像,然后看到坐标,这将是一个巨大的帮助 如果有人知道这样

我目前正在使用XNA框架开发一款RPG游戏

目前,在确定文本在屏幕上的显示位置时,我使用试错法来查找Y坐标,即加载坐标,然后修改坐标以改变位置

下面的代码示例显示了我是如何处理“对话”文本的

Fonts.SplitTextIntoLines根据使用的字体和指定的最大宽度将输入拆分为多行,这与我的问题无关

titlePosition.X:这里我把文本放在屏幕中央

Y:这条线让我很烦

如果有某种工具可以让我有一个空白窗口,我可以定位一段文字或图像,然后看到坐标,这将是一个巨大的帮助

如果有人知道这样的工具,你能告诉我吗?:)

下面是一个屏幕截图,可以更好地说明我的问题

简单的答案是实现一个非常基本的工具,帮助您在场景中定位对象。大多数游戏引擎都会为您提供一个编辑器,但由于XNA只是一个框架,您可以使用键盘和箭头实现一个非常简单的系统,以移动文本并在屏幕上的X和Y位置输出。这并不完美,但应该可以为你节省一些时间

此外:

别忘了IsMouseVisible是游戏中的一员,它可以看到你的鼠标光标


希望有帮助

你停止猜测,让计算机来计算怎么样?当然,您可以确定文本可以显示的矩形,然后使用
SpriteFont.MeasureString(string)
查找结果文本的长度(以像素为单位)。然后,只需几行代码,就可以为每一行文本自动执行此操作,甚至可以自动换行,而您无需再次手动执行此操作。我不是在说x-width,我用MeasureString来包装我的文本;我的问题不仅仅局限于文本,而是关于任何事物的一般位置…谢谢,伙计,我没有考虑过这样做:
titleString = Fonts.SplitTextIntoLines(Conversation.CurrentNode.Text, Fonts.Font, new Vector2(maxWidth, 0));
titlePosition.X = (viewport.Width - Fonts.Font.MeasureString(titleString).X) / 2;
titlePosition.Y = backgroundPosition.Y + 200f;
Vector2 mousePosition = new Vector2(Mouse.GetState().X,Mouse.GetState().Y);

Console.WriteLine("My Cursor is at: " + mousePosition);