首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SFML.NET中使用文本?

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

Stack Overflow用户
提问于 2010-08-11 06:34:12
回答 3查看 2.8K关注 0票数 1

我刚刚下载了SFML.NET,并添加了对包含在其中的库DLL的引用,但似乎Text类并不在那里。在站点上的示例中,很明显正在使用的文本对象...所以这个例子不会被编译。你自己看看..。

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

只有字体,没有文字!有人知道我会做错什么吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-16 21:52:15

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

票数 -1
EN

Stack Overflow用户

发布于 2010-09-21 09:08:53

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

幸运的是,界面非常相似。您应该能够简单地将任何声明为Text的内容替换为String2D,并将Text属性更改为DisplayedString,而无需更改任何其他代码。每个版本都有一个示例:

VB.Net

SFML.NET 1.x

代码语言:javascript
复制
 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

代码语言:javascript
复制
 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

C#

SFML.NET 1.x

代码语言:javascript
复制
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

代码语言:javascript
复制
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();
    }
}

显然,这是一个非常简单的例子,但希望能证明区别是多么简单。

票数 2
EN

Stack Overflow用户

发布于 2014-04-14 01:17:03

在最新的SFML.net中有Text类。除了您必须处理C# properties之外,它的用法与C++相同

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3454013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档