1

現在、ゲームをより簡単に改造できるプログラムを作成しています。通常のゲームでは、ファイルを開いてアニメーションをナビゲートする必要があります。もっと簡単にしたかった。プログラムの他の部分はすでに作成しましたが、サポートが必要な最後の部分に進みます。最初のアニメーション名、次に内側のアニメーション名のすべての形式を取得できるようにしたいと考えています。だから、使いやすいエディタを作ることができます。これには正規表現が含まれる可能性が高いことはわかっていますが、私はそれがかなり苦手です。また、何年も言語をいじっていなかった後も、VB.netを再学習しようとしています。誰かが私を助けることができれば、私はとても感謝しています:

ロードしようとしているファイル:

animation "idle0"
{
    animation "idle_yoga";
};

animation "idle1"
{
    animation "idle_pants";
};
4

1 に答える 1

1

ここに、あなたが求めていることを実行するサンプルコードがあります:

Dim dict As Dictionary(Of String, String) = New Dictionary(Of String, String)()

Try
    Dim sr As System.IO.StreamReader = New System.IO.StreamReader("path to the file")
    Dim line As String
    Dim started As Boolean = False
    Dim inside As Boolean = False
    Dim firstInput As String = ""
    Do
        line = sr.ReadLine()

        If (line IsNot Nothing) Then
            If (line.ToLower().Contains("animation")) Then

                If (started AndAlso inside) Then
                    'Animation
                    Dim curItem As String = line.ToLower().Split(New String() {"animation"}, StringSplitOptions.None)(1).Trim()

                    If (curItem.Substring(curItem.Length - 1, 1) = ";") Then curItem = curItem.Substring(0, curItem.Length - 1)
                    curItem = curItem.Replace("""", "")

                    dict.Add(firstInput, curItem)

                    started = False
                    inside = False
                ElseIf (Not inside) Then
                    'Group name
                    Dim curItem As String = line.ToLower().Split(New String() {"animation"}, StringSplitOptions.None)(1).Trim()

                    curItem = curItem.Replace("""", "")
                    firstInput = curItem

                    started = True
                End If
            ElseIf (started AndAlso line.Contains("{")) Then
                inside = True
            End If
        End If
    Loop Until line Is Nothing
    sr.Close()
Catch
End Try

このコードは、説明 (行ごとに投稿したコード) に従ってファイルから情報を読み取り、必要なグループ化を実行します。最後に、Dictionary(ListBoxはおそらくそのための最良のコントロールではありません。ListViewより良いものを使用することを検討してください) を選択しました。コードが何をするかはかなり明確だと思います.実際の要件に合わせて拡張/適応させる必要がありますが、メイン構造はとにかくこれらの行にあるはずです.

于 2013-09-18T21:52:42.360 に答える