Компьютерная графика, мультимедиа и игры на Visual C#


Глава Методика проектирования неподвижных и подвижных пространственных фигур - часть 4


protected override void OnResize(System.EventArgs e)

{

    myPause = ((this.WindowState ==

        FormWindowState.Minimized) || !this.Visible);

}

//Закрываем форму Form1 после нажатия клавиши Esc:

protected override void OnKeyPress(KeyPressEventArgs e)

{

    if ((int)(byte)e.KeyChar == (int)Keys.Escape)

        this.Close();

}

Листинг 45.2. Код  для вывода формы и рисования на ней графики.

using (Form1 myForm1 = new Form1())

{

    if (!myForm1.InitializeDirectX())

    {

        MessageBox.Show("Ошибка при инициализации DirectX.");

        return;

    }

    //Показываем форму Form1:

    myForm1.Show();

    //Рисуем графику на форме Form1:

    while (myForm1.Created)

    {

        myForm1.myRendering();

        Application.DoEvents();

    }

}

Открываем файл Form1.cs (например, по схеме: File, Open, File) и выше пространства имен с именем нашего проекта (namespace Visual_DirectX_n6) записываем директивы для подключения пространств имен:

using Microsoft.DirectX;

using Microsoft.DirectX.Direct3D;

using Direct3D = Microsoft.DirectX.Direct3D;

Коды для обработки щелчков по всем кнопкам на форме Form1 (рис. 45.4) приведены выше в этой части книги.

Теперь в любом месте файла Form1.cs (например, ниже предыдущих методов для обработки щелчков по кнопкам) записываем следующие методы для выполнения матричных преобразований вершин фигуры (с текстуры) и визуализации этих преобразований в динамике.

Листинг 45.3. Методы  для визуализации преобразованных вершин фигуры.

//Глобальные переменные.

//Объявляем устройство для визуализации вершин:

Device myDevice = null;

VertexBuffer myVertexBuffer = null;

//Объявляем и инициализируем объект myTexture

//класса Texture:

Texture myTexture = null;

PresentParameters myPresentParameters =

    new PresentParameters();

bool myPause = false;

//Задаем параметры DirectX:

public bool InitializeDirectX()

{

    try

    {

        myPresentParameters.Windowed = true;

        myPresentParameters.SwapEffect = SwapEffect.Discard;




Начало  Назад  Вперед



Книжный магазин