2016-04-13 24 views
1

Şu anda Wii uzaktan kumanda kullanarak bir VR kafa izleme oluşturma üzerinde çalışan bir hatayla karşılaştık.C# kodlama sorunları Wiimote ile

Sınıf *** tasarlanabilir, ancak dosyadaki ilk sınıf değildir. Görsel Studio, tasarımcıların dosyadaki birinci sınıfı kullanmasını gerektirir. Sınıf kodunu, dosyadaki ilk sınıf olacak şekilde taşıyın ve tasarımcıyı tekrar yüklemeyi deneyin.

Kodu farklı sayfalara ayırdım ancak aynı hatayı alıyorum.

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

Teşekkür

+0

Size, Formunuzun dosyanızdaki ilk sınıf olması gerektiğini bildiren hata mesajı. Point2D'yi başka bir dosyaya taşıyın. – stuartd

+0

Tamam, bunu deneyeceğim. Ayrıca 'Point2D' dosyasını bu dosyaya bağlamak zorunda mıyım? – Kaajaln95

+0

Hayır, derleyici dosyaları bağlama ile ilgilenir. – stuartd

cevap

1

dosyanın en altına taşı Point2D: Bu Üzerinde çalıştığım koddur. En iyi uygulamalar, dosya başına yalnızca bir tane sınıfınızın olması gerektiğini belirtir, bu nedenle Stuart'ın tavsiyesini alarak ve başka bir dosyaya taşımak en iyisidir.

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

Tamam, bunu deneyeceğim. Ayrıca 'Point2D' dosyasını bu dosyaya bağlamak zorunda mıyım? Üzgünüm, daha önce C# kullanmadım. – Kaajaln95

+0

Sınıflar aynı ad alanındaysa, olmazdı. Farklı ad alanlarına sahiplerse, dosyanın üst kısmındaki o ad alanına bir kullanma ifadesi eklemeniz gerekir. – Shelby115