Пример из учебника:
| Код | using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D;
namespace _1stDirectX { ...
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) { device.Clear(ClearFlags.Target, System.Drawing.Color.CornflowerBlue, 1.0f, 0); device.Present(); //Создать класс определения вершин треугльника CustomVertex.TransformedColored[] verts = new CustomVertex.TransformedColored[3]; verts[0].SetPosition(new Vector4 (this. Width / 2. 0f, 50. 0f, 0.5f, 1.0 f).) ; verts[0].Color = System.Drawing.Color.Aqua.ToArgb(); verts[1].SetPosition(new Vector4(this.Width - (this.Width / 5.0f), this.Height - (this.Height / 5.0f), 0.5f, 1.0f)); verts [1] .Color = System.Drawing.Color.Black.ToArgb(); verts[2].SetPosition(new Vector4(this.Width / 5.0f, this.Height - (this.Height / 5.0f), 0.5f, 1.0f)); verts [2] .Color = System.Drawing.Color.Purple.ToArgb();
//Сообщить приложению Direct3D о начале рисования и способа рисования device.BeginScene(); device.VertexFormat = CustomVertex.TransformedColored.Format; device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, verts); device.EndScene();
this.Invalidate(); } } }
|
Пространства имен не из примера, сам подключал. В учебники говорилось что нада using Microsoft.DirectX и Microsoft.DirectX.Direct3D. Учебник под VS.NET 2003 у меня C# Express 2008, SDK установил как и в учебнике. Программа должна рисовать триугольник, вершины которого хранятся в массиве структур CustomVertex.TransformedColored[] verts. Но когда я в своей среде разработке обращаюсь к элементу массива verts у меня метода SetPosition в подсказке нету :( и компилятор говорит что нету такого метода в классе. Куда делось? Зато у меня есть свойство Position, пробовал через него вектор задать, фигура не прорисовалас. Что делать, как получить SetPosition()? |