如何在SFML.NET中使用文本?

时间:2010-08-10 22:34:12

标签: c# sfml sfml.net

我刚刚下载了SFML.NET并添加了对它附带的库DLL的引用,但似乎Text类不存在。在网站上的示例中,显然正在使用Text对象...因此该示例将无法编译。亲眼看看......

alt text http://filebox.me/files/5gubdwfcr_helpme.png

只有字体,没有文字!谁知道我可能做错了什么?

3 个答案:

答案 0 :(得分:0)

您可能希望使用String2D类(the String class in the documentation)来实际绘制文本。 tutorial中此类的变量称为Text,这可能是您感到困惑的地方。

答案 1 :(得分:0)

您可能正在查看2.x示例,其中String2D已被删除并替换为Text。 String2D用于1.x,您可以使用Text属性更改它显示的内容。

幸运的是接口非常相似。您应该能够简单地用String2D替换声明为Text的任何内容,而无需更改任何其他代码。每个版本的示例:

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 Sub

SFML.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 Sub

显然是一个非常剥离的例子,但希望能说明差异有多么简单。

答案 2 :(得分:0)

在最新的SFML.net中,有Text个类。除了必须处理C#properties

之外,其用法与C ++相同