Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
187 - Bullet Heaven
Вчера, 20:39
 Mefistofel
187 - ?
21.11.2024
 Dan
Galactic Showdown -…
21.10.2024
 KregHek
Новый IGDC
5.08.2024
 rimush
186 - Strategy!
15.07.2024
 VoroneTZ
WoL
3.07.2024
 Darthman
Привет выжившие
21.05.2024
 GeePee
185 - RPG
9.02.2024
 Vaskrol
В каком банке открыт…
24.01.2024
 Darthman
185 - ?
30.12.2023
 Mefistofel
Сейчас на сайте
Гостей: 18
На сайте нет зарегистрированных пользователей

Пользователей: 1,790
новичок: Durved
Обсуждение «С# + Managed DirectX 9»
DeVoid
Avatar пользователя

Опубликовано 27.09.2007 21:46 (17 лет назад)    #
Пишу на C# в Visual Studio 2005 (.NET Framework 2.0).
Вот дошло дело и до геймдевелопинга, скачал книгу:
Том Миллер "Managed DirectX 9". Пишу первый же пример с нее. Экран очищается в черный, тоесть сцена создается, но на ней ничего не отисовывается (по примеру должен рисоваться треугольник). Скачивал с нета готовые примеры - тоже просто черный экран. Кто сталкивался, помогите советом!

редакция от DeVoid, 27.09.2007 21:47

Bullet Heaven:Не участвую.
beisik
Avatar пользователя

Опубликовано 28.09.2007 07:13 (17 лет назад)    #
Может дело в дровах/видеокарте/версии directX? Кинь пример сюда.
Bullet Heaven:Не участвую.
Makar Borisowitch
Avatar пользователя

Опубликовано 28.09.2007 11:01 (17 лет назад)    #
Дайошь Маки и Объектив Си... (:
Bullet Heaven:Не участвую.
DeVoid
Avatar пользователя

Опубликовано 28.09.2007 18:21 (17 лет назад)    #
Вот привожу пример с книги:
public void InitializeGraphics()
{
try
{
// Set our presentation parameters
PresentParameters presentParams = new PresentParameters();
presentParams.Windowed = true;
presentParams.SwapEffect = SwapEffect.Discard;
// Create our device
device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

Этот метод прописан в :
[STAThread]
static void Main()
{
....
}

и в OnPaint формы пишу:
device.Clear(ClearFlags.Target, Color.Black, 1.0f, 0);

CustomVertex.TransformedColored[] verts = new CustomVertex.TransformedColored[3];
verts[0].SetPosition(new Vector4(this.Width / 2.0f, 50.0f, 0.5f, 1.0f));
verts[0].Color = System.Drawing.Color.Aqua.ToArgb();
verts[1].SetPosition(new Vector4(this.Width - (this.Width/5.0f), this.Height-(this.Height/5.0f), 0.5f, 1.0f));
verts[1].Color = System.Drawing.Color.Black.ToArgb();
verts[2].SetPosition(new Vector4(this.Width/5.0f, this.Height - (this.Height / 5.0f), 0.5f, 1.0f));
verts[2] .Color = System.Drawing.Color.Purple.ToArgb();
device.Present();

Но этот код выдает ошибку (для Framework 2.0 нужно подправить код) вот мой вариант кода:
device.Clear(ClearFlags.Target, Color.Black, 1.0f, 0);

CustomVertex.TransformedColored[] verts = new CustomVertex.TransformedColored[3];
verts[0].Position.Add(new Vector4(this.Width / 2.0f, 50.0f, 0.5f, 1.0f));
verts[0].Color = System.Drawing.Color.Aqua.ToArgb();
verts[1].Position.Add(new Vector4(this.Width - (this.Width/5.0f), this.Height-(this.Height/5.0f), 0.5f, 1.0f));
verts[1].Color = System.Drawing.Color.Black.ToArgb();
verts[2].Position.Add(new Vector4(this.Width/5.0f, this.Height - (this.Height / 5.0f), 0.5f, 1.0f));
verts[2] .Color = System.Drawing.Color.Purple.ToArgb();
device.Present();

Вижу только черный экран :(
Bullet Heaven:Не участвую.
wildboar
Avatar пользователя

Опубликовано 30.09.2007 01:28 (17 лет назад)    #
Вместо: "Position.Add" пиши: "Position="
CustomVertex.TransformedColored[] verts = new CustomVertex.TransformedColored[3];
verts[0].Position = (new Vector4(this.Width / 2.0f, 50.0f, 0.5f, 1.0f));
verts[0].Color = System.Drawing.Color.Red.ToArgb();
verts[1].Position=(new Vector4(this.Width - (this.Width / 5.0f), this.Height - (this.Height / 5.0f), 0.5f, 1.0f));
verts[1].Color = System.Drawing.Color.Yellow.ToArgb();
verts[2].Position=(new Vector4(this.Width / 5.0f, this.Height - (this.Height / 5.0f), 0.5f, 1.0f));
verts[2].Color = System.Drawing.Color.Green.ToArgb();

device.BeginScene();
device.VertexFormat = CustomVertex.TransformedColored.Format;
device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, verts);
device.EndScene();
device.Present();

ЗЫ: Удачи!

редакция от wildboar, 02.10.2007 19:49

Bullet Heaven:Не участвую.
DeVoid
Avatar пользователя

Опубликовано 30.09.2007 07:55 (17 лет назад)    #
Работает!!!! спасибо огромное! буду пробывать дальше учить этот сложный и непонятный Managed DirectX !!!
Bullet Heaven:Не участвую.
Перейти на форум:
Конкурсы
Открытые конкурсы:
Bullet Heaven

Старт: 23 ноября 2024г.
Финиш: 4 декабря 2024г.

Участники: 4
Недавние конкурсы:
 186 - Strategy
 185 - RPG XII
 184 - Arcade II
 183 - Novel
 182 - RPG XI
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

26,205,086 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.