Вопросики по DirectDraw
От: Homer  
Дата: 02.09.05 04:50
Оценка:
Вот такой код
dev = new Device();
dev.SetCooperativeLevel(this, CooperativeLevelFlags.Normal);
SurfaceDescription description = new SurfaceDescription();
description.SurfaceCaps.PrimarySurface = true;
//создаю основную поверхность
front = new Surface(description, dev);
//создаю клиппер
clip = new Clipper(dev);
clip.Window = this;
front.Clipper = clip; //присобачиваю его к основной певерхности

description.Clear();

description.Width = front.SurfaceDescription.Width;
description.Height = front.SurfaceDescription.Height;
description.SurfaceCaps.OffScreenPlain = true;
back = new Surface(description, dev); //Создаю теневую (вторичную) поверхность

далее создаю повехность спрайта

sprite = new MySprite(..., description, dev);


Далее в функции отрисвки сцены такой код

back.DrawText(150, 150, "helptext", true);
back.DrawFast(320, 240, sprite, frames[currentframe], DrawFastFlags.DoNotWait);
front.Draw(back, DrawFlags.DoNotWait);


Я хочу этим самым получить окно (не большого размера 400x400) в котором с помощю DirectDraw вывожу изображение моего спрайта.

У меня все получилось, но все работает очень медленно и еще коодинаты строки "helptext" и спрайта отсчитываются не от левого угла окна, а от левого угла десктопа. Получается что переместив окно повыше я вижу "helptext" а перетащив пониже в окне пояляется спрайт а текст исчезает.

Размеры поверхности front = 1024x768 (как у десктопа)
Размеры самого спрайта 50x50
Как увеличить скорость? (я пологаю что это из размеров поверхностей front и back)
Как привязать координаты объектов к окну? (использовать ScreenToClient или как то разобраться с повехностями)
Re: Вопросики по DirectDraw
От: Sm0ke Россия ksi
Дата: 02.09.05 11:41
Оценка:
Здравствуйте, Homer, Вы писали:

H>Вот такой код

skip
H>clip.Window = this;
skip
H>Как привязать координаты объектов к окну? (использовать ScreenToClient или как то разобраться с повехностями)

this -> это что. в каком методе какого класса это всё делается?
Re[2]: Вопросики по DirectDraw
От: Аноним  
Дата: 05.09.05 05:15
Оценка:
Здравствуйте, Sm0ke, Вы писали:

S>Здравствуйте, Homer, Вы писали:


H>>Вот такой код

S>skip
H>>clip.Window = this;
S>skip
H>>Как привязать координаты объектов к окну? (использовать ScreenToClient или как то разобраться с повехностями)

S>this -> это что. в каком методе какого класса это всё делается?


Все это происходит в классе окана
public class MyWnd : Form

В данном случае this это есть MyWnd.
Re[2]: Вопросики по DirectDraw
От: Homer  
Дата: 05.09.05 05:20
Оценка:
Здравствуйте, Sm0ke, Вы писали:

S>Здравствуйте, Homer, Вы писали:


H>>Вот такой код

S>skip
H>>clip.Window = this;
S>skip
H>>Как привязать координаты объектов к окну? (использовать ScreenToClient или как то разобраться с повехностями)

S>this -> это что. в каком методе какого класса это всё делается?


Все это происходит в классе окана
public class MyWnd : Form

В данном случае this это есть MyWnd.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.