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


         

Закрываем форму 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();
}
Листинг 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;

Содержание  Назад  Вперед