我刚刚下载了SFML.NET,并添加了对包含在其中的库DLL的引用,但似乎Text类并不在那里。在站点上的示例中,很明显正在使用的文本对象...所以这个例子不会被编译。你自己看看..。
alt text http://filebox.me/files/5gubdwfcr_helpme.png
只有字体,没有文字!有人知道我会做错什么吗?
发布于 2010-08-16 21:52:15
您可能希望使用String2D类(the String class in the documentation)来实际绘制文本。这个类在tutorial中的变量称为Text,这可能是您感到困惑的地方。
发布于 2010-09-21 09:08:53
您可能正在查看2.x示例,其中String2D已被删除并替换为文本。String2D适用于1.x,您可以使用Text属性来更改它显示的内容。
幸运的是,界面非常相似。您应该能够简单地将任何声明为Text的内容替换为String2D,并将Text属性更改为DisplayedString,而无需更改任何其他代码。每个版本都有一个示例:
VB.Net
SFML.NET 1.x
Imports SFML
Imports SFML.Window
Imports SFML.Graphics
Public Sub Main()
Dim Output As New RenderWindow(New VideoMode(640, 480), "SFML.NET Text Example")
Dim ExampleText As New String2D("", New Font("myfont.tff"))
ExampleText.Position = New Vector2(5, 5)
Do While (true)
Output.Clear(New SFML.Graphics.Color(0,128,160))
ExampleText.Text= String.Format("Hello, world! {0}", DateTime.Now.ToString("hh:MM.ss"))
Output.Draw(ExampleText)
Output.Display()
End While
End SubSFML.NET 2.x
Imports SFML
Imports SFML.Window
Imports SFML.Graphics
Public Sub Main()
Dim Output As New RenderWindow(New VideoMode(640, 480), "SFML.NET Text Example")
Dim ExampleText As New Text("", New Font("myfont.tff"))
ExampleText.Position = New Vector2(5, 5)
Do While (true)
Output.Clear(New SFML.Graphics.Color(0,128,160))
ExampleText.DisplayedString = String.Format("Hello, world! {0}", DateTime.Now.ToString("hh:MM.ss"))
Output.Draw(ExampleText)
Output.Display()
End While
End SubC#
SFML.NET 1.x
using SFML;
using SFML.Window;
using SFML.Graphics;
public void Main()
{
var output = new RenderWindow(new VideoMode(640, 480), "SFML.NET Text Example");
var exampleText = new String2D("", new Font("myfont.tff"));
exampleText.Position = new Vector2(5, 5);
while(true)
{
var timestamp = DateTime.Now.ToString("hh:MM.ss");
output.Clear(new SFML.Graphics.Color(0, 128, 160));
exampleText.Text = $"Hello, world! {timestamp}";
output.Draw(exampleText);
output.Display();
}
}SFML.NET 2.x
using SFML;
using SFML.Window;
using SFML.Graphics;
public void Main()
{
var output = new RenderWindow(new VideoMode(640, 480), "SFML.NET Text Example");
var exampleText = new Text("", new Font("myfont.tff"));
exampleText.Position = new Vector2(5, 5);
while(true)
{
var timestamp = DateTime.Now.ToString("hh:MM.ss");
output.Clear(new SFML.Graphics.Color(0, 128, 160));
exampleText.DisplayedString = $"Hello, world! {timestamp}";
output.Draw(exampleText);
output.Display();
}
}显然,这是一个非常简单的例子,但希望能证明区别是多么简单。
发布于 2014-04-14 01:17:03
在最新的SFML.net中有Text类。除了您必须处理C# properties之外,它的用法与C++相同
https://stackoverflow.com/questions/3454013
复制相似问题