2016-04-13 8 views
1

現在、Wiiリモコンを使用してVRヘッドのトラッキングを作成しようとするとエラーが発生しました。WiimoteでC#のコーディングの問題

クラス***は設計できますが、ファイルのファーストクラスではありません.Visual Studioでは、デザイナーがファイルのファーストクラスを使用する必要があります。ファイル内の最初のクラスになるようにクラスコードを移動し、デザイナを再度読み込みます。

異なるページでコードを分割しましたが、同じエラーが表示されます。

namespace WiiDesktopVR 
{ 
    class Point2D 
    { 
     public float x = 0.0f; 
     public float y = 0.0f; 
     public void set(float x, float y) 
     { 
      this.x = x; 
      this.y = y; 
     } 
    } 

    public class WiiDesktopVR : Form 
    { 
     struct Vertex 
     { 
      float x, y, z; 
      float tu, tv; 

      public Vertex(float _x, float _y, float _z, float _tu, float _tv) 
      { 
       x = _x; y = _y; z = _z; 
       tu = _tu; tv = _tv; 
      } 

      public static readonly VertexFormats FVF_Flags = VertexFormats.Position | VertexFormats.Texture1; 
     }; 

     Vertex[] targetVertices = 
     { 
      new Vertex(-1.0f, 1.0f,.0f, 0.0f,0.0f), 
      new Vertex(1.0f, 1.0f,.0f, 1.0f,0.0f), 
      new Vertex(-1.0f,-1.0f,.0f, 0.0f,1.0f), 
      new Vertex(1.0f,-1.0f,.0f, 1.0f,1.0f), 
     }; 
    } 
} 

おかげ

+0

フォームがファイルの最初のクラスでなければならないというエラーメッセージが表示されます。 Point2Dを別のファイルに移動します。 – stuartd

+0

ありがとう、私はそれを試みます。また、 'Point2D'ファイルをこのファイルにリンクする必要がありますか? – Kaajaln95

+0

いいえ、コンパイラはファイルをリンクします。 – stuartd

答えて

1

ファイルの一番下に移動Point2D:これは、私が働いているコードです。ベストプラクティスでは、ファイルごとに1つのクラスしか持たないと述べているため、スチュアートのアドバイスを受けて別のファイルに移動するのが最適です。

namespace WiiDesktopVR 
{ 
    public class WiiDesktopVR : Form 
    { 
     struct Vertex 
     { 
      float x, y, z; 
      float tu, tv; 

      public Vertex(float _x, float _y, float _z, float _tu, float _tv) 
      { 
       x = _x; y = _y; z = _z; 
       tu = _tu; tv = _tv; 
      } 

      public static readonly VertexFormats FVF_Flags = VertexFormats.Position | VertexFormats.Texture1; 
     }; 

     Vertex[] targetVertices = 
     { 
      new Vertex(-1.0f, 1.0f,.0f, 0.0f,0.0f), 
      new Vertex(1.0f, 1.0f,.0f, 1.0f,0.0f), 
      new Vertex(-1.0f,-1.0f,.0f, 0.0f,1.0f), 
      new Vertex(1.0f,-1.0f,.0f, 1.0f,1.0f), 
     }; 
    } 

    class Point2D 
    { 
     public float x = 0.0f; 
     public float y = 0.0f; 
     public void set(float x, float y) 
     { 
      this.x = x; 
      this.y = y; 
     } 
    } 
} 
+0

よろしくお願いいたします。また、 'Point2D'ファイルをこのファイルにリンクする必要がありますか?申し訳ありませんが、以前はC#を使用していませんでした。 – Kaajaln95

+0

クラスが同じ名前空間にある場合は、そうしないでしょう。それらが異なる名前空間にあった場合は、ファイルの先頭にあるその名前空間にusingステートメントを追加するだけです。 – Shelby115