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

Логотипы
Медальки
Темы форума
194 - ?
27.08.2026
 PapkaI_Igrodel
193 - Bullet Heaven…
23.06.2026
 Dan
.ruby
9.06.2026
 stom
193 - ?
29.05.2026
 Piroxyline
192 - Lords of the B…
10.05.2026
 Mefistofel
Архив Neuh
6.04.2026
 PapkaI_Igrodel
192 - ?
3.04.2026
 PapkaI_Igrodel
Видео пятнашки
14.03.2026
 appscoproration
191 - RPG XIII
7.03.2026
 Mefistofel
Насколько серьезно в…
19.02.2026
 VoroneTZ
Обсуждение «С# + Managed DirectX 9»
DeVoid
Avatar пользователя

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

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

beisik
Avatar пользователя

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

Опубликовано 28.09.2007 10:01 (19 лет назад)    #
Дайошь Маки и Объектив Си... (:
DeVoid
Avatar пользователя

Опубликовано 28.09.2007 17:21 (19 лет назад)    #
Вот привожу пример с книги:
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();

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

Опубликовано 30.09.2007 00:28 (19 лет назад)    #
Вместо: "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 18:49

DeVoid
Avatar пользователя

Опубликовано 30.09.2007 06:55 (19 лет назад)    #
Работает!!!! спасибо огромное! буду пробывать дальше учить этот сложный и непонятный Managed DirectX !!!
Перейти на форум:
Конкурсы
Открытые конкурсы:
Активных нет
Недавние конкурсы:
 193 - Bullet Heaven II
 192 - Lords of the Board
 191 - RPG XIIII
 190 - Horror
 189 - Race V
 Все конкурсы
Случайная игра
Голосование

194?

Айдлер (инкрементальная игра)
40% [4 Голосов]
Автобаттлер
20% [2 Голосов]
Ситибилдер
10% [1 Голос]
Креативная тема (не связанные с игрой условия)
30% [3 Голосов]
Напишу в теме
0% [0 Голосов]

Голосов: 10
Начало: 24.08.2026 20:00


30,065,283 уникальных посетителей

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