1

SFML.NET をダウンロードして、それに含まれるライブラリ DLL への参照を追加しましたが、Text クラスがないようです。サイトの例では、 Text オブジェクトが使用されていることは明らかです...そのため、例はコンパイルされません。自分で見て...

代替テキスト http://filebox.me/files/5gubdwfcr_helpme.png

あるのはフォントだけで、テキストはありません! 誰が私が間違っている可能性があるか知っていますか?

4

3 に答える 3

2

おそらく、String2Dが削除されてTextに置き換えられた2.xサンプルを見ているでしょう。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 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

C#

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();
    }
}

明らかに非常に単純な例ですが、うまくいけば、違いがいかに単純であるかを示しています。

于 2010-09-21T01:08:52.830 に答える
0

最新の SFML.net にはTextクラスがあります。使用方法は C++ と同じですが、C# を使用する必要があります。properties

于 2014-04-13T17:17:02.700 に答える
-1

String2Dクラス(ドキュメントのStringクラス)を使用して実際にテキストを描画することをお勧めします。チュートリアルのこのクラスの変数はTextと呼ばれ、おそらく混乱した場所です。

于 2010-08-16T13:52:15.467 に答える