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


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


        Color.White, 1.0f, 0);

    //Начинаем сцену:

    myDevice.BeginScene();

    //Задаем матрицы (world, view, projection):

    SetupMatrices();

 

    //Устанавливаем нашу текстуру:   

    myDevice.SetTexture(0, myTexture);

    myDevice.TextureState[0].ColorOperation =

        TextureOperation.Modulate;

    myDevice.TextureState[0].ColorArgument1 =

        TextureArgument.TextureColor;

    myDevice.TextureState[0].ColorArgument2 =

        TextureArgument.Diffuse;

    myDevice.TextureState[0].AlphaOperation =

        TextureOperation.Disable;

    //Рисуем фигуру:

    myDevice.SetStreamSource(0, myVertexBuffer, 0);

    myDevice.VertexFormat =

        CustomVertex.PositionNormalTextured.Format;

    myDevice.DrawPrimitives(

        PrimitiveType.TriangleStrip, 0, (4 * 25) - 2);

    //Заканчиваем сцену:

    myDevice.EndScene();

    //Обновляем экран:

    myDevice.Present();

}

//Останавливаем вращение фигуры

//во время изменения размеров формы Form1:

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();

}

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

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

using (Form1 myForm1 = new Form1())

{

    if (!myForm1.InitializeDirectX())

    {

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

        return;

    }

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

    myForm1.Show();

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

    while (myForm1.Created)

    {

        myForm1.myRendering();

        Application.DoEvents();

    }

}

По этой методологии можно в проектах Visual C# при помощи DirectX проектировать разнообразные анимированные объемные изображения.





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



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