Программирование - это просто
Advertisement
Главная arrow Уроки C# arrow Пишем компьютерную игру на C# arrow Пишем компьютерную игру на C#. Урок 3. Знакомство с DirectX
06.10.2022 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Пишем компьютерную игру на C#. Урок 3. Знакомство с DirectX Печать E-mail
Автор megabax   
10.09.2011 г.
New Page 2

Пишем компьютерную игру на C#. Урок 3. Знакомство с DirectX

Из урока 2 вы уже научились рисовать графику. Но на самом деле существует очень мощная внешняя библиотека DirectX, на основе которой строятся компьютерные игры. Она включает в себя графику, трехмерное моделирование, звук, управление джойстиком. Что бы подключить к проекту Visual Studio данную библиотеку, ее надо сначала установить. Если у вас нет дистрибутива, то скачайте его с официального сайта Microsoft http://www.microsoft.com/windows/directX/downloads. После установки вы сможете добавить в проект ссылку на Microsoft.DirectX и Microsoft.DirectX.Direct3D - они должны быть на закладке ".NET". Если вышеуказанные библиотеки на данной закладке не наблюдаются, то переключитесь на закладку "Обзор" и откройте путь "C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0" (если у вас винда установлена в другую папку, то путь соответственно, будет другим, но обычно она ставиться в папку ""C:\Windows\"), там есть файлы Microsoft.DirectX.dll и Microsoft.DirectX.Direct3D.dll. Их и цепляем:

Пишем компьютерную игру на C#. Урок 3. Знакомство с DirectX

В проекте нам надо создать две формы: основную и дочернюю. На основной у нас будет одна кнопочка "Открыть", которая открывает дочернюю форму:

Пишем компьютерную игру на C#. Урок 3. Знакомство с DirectX

Прежде чем написать обработчик нажатия данной кнопочки, поработаем над дочерней формой. В первую очередь нам надо подключить к форме библиотеку DirectX (посредством using). Затем написать методы initializeDirectX() и rendering(), а что бы форма закрывалась по кнопочке ESC напишем еще и обработчик нажатия на клавиатурную кнопку. Вот как в итоге у нас может выглядеть код (этот код с моими именами, вы может называть объекты как хотите, соответственно, и в коде используйте свои имена):

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;  

using System.Text;

using System.Windows.Forms;

using Microsoft.DirectX;

using Microsoft.DirectX.Direct3D;

 

namespace DX

{

    public partial class FormChild : Form

    {

        private Device device=null;

        public FormChild()

        {

            InitializeComponent();

        }

 

        public bool initializeDirectX()

        {

            try

            {

                PresentParameters presPars = new PresentParameters();

                presPars.Windowed = true;

                presPars.SwapEffect = SwapEffect.Discard;

                device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presPars);

                return true;

            }

            catch (DirectXException e)

            {

                MessageBox.Show("Ошибка инициализации DirectX "+e.ErrorString);

                return false;

            }

        }

 

        public void rendering()

        {

            if (device == null) return;

 

            //очищает и заливает белым цветом устройство (форму)

            device.Clear(ClearFlags.Target, System.Drawing.Color.White, 1.0f, 0);

 

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

            device.BeginScene();

            device.EndScene();

            device.Present();

        }

 

        private void FormChild_KeyPress(object sender, KeyPressEventArgs e)

        {

            if ((int)(byte)e.KeyChar == (int)System.Windows.Forms.Keys.Escape) this.Close();

        }

     }

}

Ну а далее, делаем обработчик нажатия на кнопочку в главной форме:

        private void btnNew_Click(object sender, EventArgs e)

        {

            FormChild form = new FormChild();

            if (!form.initializeDirectX()) return;

            form.Show();

            while (form.Created)

            {

                form.rendering();

                Application.DoEvents();

            }

        }

После этого запускаем программу на тестирование:

Пишем компьютерную игру на C#. Урок 3. Знакомство с DirectX


Скриншоты, приведенные в данной статье, являются цитатами и иллюстрациями   программного продукта "Microsoft Visual Studio 2010", авторское право на который принадлежит Microsoft


 

 

Последнее обновление ( 06.11.2011 г. )
 
« След.   Пред. »
 
© 2022 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги