Пятница, 22 Ноября 2024, 15:43

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Урок по С# DirectX
Alexandr2Дата: Суббота, 02 Апреля 2011, 16:04 | Сообщение # 1
частый гость
Сейчас нет на сайте
Привет всем,попробую написать пару уроков по директу,тут сложного нечего нету,все достаточно просто.На первом уроке я покажу как инициализировать DirectX без разници какой,и закрасить окно цветом.Ну поехали,запускайте VisualStudio язык C# и создаем обычный проект.Совсем забыл обязательно скачайте DirectXSDK и установите.Далее мы должны добавить ссылку на компонент директа а именно DirectX,Direct3D. значит если вы установили сдк то выбирайте в обозреватели решений "ссылки.добаыить ссылку" и в компонентах выбирете соответсвующий.Все теперь подключите пространство имен

using Microsoft.DirectX.Direct3D;
using Microsoft.DirectX;

сейчас необходимо инициализировать устройство,для этого создадим обычную функцию куда и запишим все параметры.правой кнопкой по форме и в выпадающем меню "перейти к коду" именно здесь мы будем описывать устройство и выполнять разные операции. После объявления класса объявим ссылку на устройство и присвоем ей null

//устройство
public Device device = null;

public Form1()
{
InitializeComponent();
}
public void InitializeGraphics()
{

}

Теперь добавляем сам код в функцию

//настраиваем некоторые параметры
PresentParameters presentParams = new PresentParameters()
presentParams.Windowed = true;
presentParams.SwapEffeet = SwapEffect.Discard;
// Создаем устройство
device = new Device(0, DeviceType.Hardware, this,
CreateFlags.SoftwareVertexProcessing, presentParams);

рассмотрим параметры устройства.. 0-установка устройства по-умолчанию,DeviceType.Hardware-тип устройства,this-текущая форма,и остальное центральцый процессор

теперь надо вызвать этот метод.Его вызывать будем в классе Programs.cs

static void Main()
{
using (Form1 frm = new Form1())
{
frm.Show();
frm.InitializeGraphics();
Application.Run(frm);
}
}

Здесь тоже все просто,мы показываем окно что оно загружено и работает далее вызов функции создания устройства,и стандартный для приложения Application.Run(frm); сама форма.

Вот и все устройство создано и должно работать,но нам надо что то выводить,для этого мы создадим метод OnPaint и в нем будем перекрашивать окно.Далее после метода создания устройтсва в классе формы добавьте следующею функцию

//функция прорисовки
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
device.Clear(ClearFlags.Target, System.Drawing.Color.CornflowerBlue,
1.0f, 0);
device.Present();
}
Это стандартная функция для прорисовки,она будет очищать окно,методом Clear.Если запустите окно то оно будет синим цветом.В целом мы создали устройство и с помощью него заполняли окно цветом,но это не лучший вариант,хотя и для прорисовки используется DirectX.Поэтому в следующим уроке я покажу как загружать модели и отрисовывать их,и более подробно расскажу о прорисовки.




Сообщение отредактировал Alexandr2 - Суббота, 02 Апреля 2011, 16:06
QWER56Дата: Пятница, 29 Июля 2011, 10:01 | Сообщение # 2
старожил
Сейчас нет на сайте
Хм, не плохо.
Сам я C# с директом не использовал, но надо будет попробовать. Спасибо!


ConsMark - поисковик по интернет магазинам.
Stalker_ShooterДата: Пятница, 29 Июля 2011, 10:19 | Сообщение # 3
3D XNA'шник
Сейчас нет на сайте
А чем XNA не устраивает? Более удобная штука)

*Не убегай от снайпера, умрешь уставшим.
*Мои статьи...
GameLoperДата: Понедельник, 06 Мая 2013, 04:19 | Сообщение # 4
Нуб в гейм-деве
Сейчас нет на сайте
ммм страно в Миллер Т. DirectX 9 с управляемым кодом. Программирование игр и графика. 2005.
точно такой же код.
я говорю про то что там тоже форму называют также frm.
Странно очень странно


Single of game tycoon = 10%
BlashyrkhДата: Пятница, 10 Мая 2013, 19:00 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата (GameLoper)
я говорю про то что там тоже форму называют также frm.

Действительно странно... Особенно, если ~60% программистов свои формы называют frm* (где * - имя)
UndeadДата: Пятница, 10 Мая 2013, 19:17 | Сообщение # 6
NeoAxis User
Сейчас нет на сайте
Цитата (Blashyrkh)
ействительно странно... Особенно, если ~60% программистов свои формы называют frm* (где * - имя)

Если так писать на шарпе, то не гуд. Плохой стиль.
Если такой урок считается хорошим, то может мне по OpenTK уроков подобных пару десятков настрогать?


Вcем зла.

Сообщение отредактировал Undead - Пятница, 10 Мая 2013, 19:23
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг