| Гость |
Вы не зарегистрированны? Нажмите здесь для регистрации.
Забыли пароль? Запросите новый здесь.
|
|
| Сейчас на сайте |
Гостей: 2
На сайте нет зарегистрированных пользователей
Пользователей: 1,791
новичок: BlitzID
|
|
|
| Обсуждение «С# + Managed DirectX 9» |

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

|
| Опубликовано 28.09.2007 07:13 (18 лет назад) # |
| Может дело в дровах/видеокарте/версии directX? Кинь пример сюда. |
|
|
|

|
| Опубликовано 28.09.2007 11:01 (18 лет назад) # |
| Дайошь Маки и Объектив Си... (: |
|
|
|

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

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

|
| Опубликовано 30.09.2007 07:55 (18 лет назад) # |
| Работает!!!! спасибо огромное! буду пробывать дальше учить этот сложный и непонятный Managed DirectX !!! |
|
|
|
Перейти на форум:
|
|
|
|
| Конкурсы |
Открытые конкурсы:
HorrorПодведение результатов... Старт: 6 декабря 2025г. Финиш: 29 декабря 2025г. Участники: 2 Недавние конкурсы:
|
| Голосование |
Лучшая игра 190 конкурса? Голосов: 2 Начало: 02.01.2026 13:25 Для доступа к голосованию, у вас должно быть 10 сообщений на форуме. |
|
|
|