![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DelphiX на разных машинах - полупрозрачность и скорость [Delphi, Windows]
VK © (2006-02-20 10:14:00)Добрый день!
Пишу арканоид на DelphiX.
На 1 машине (атлон 2200+, радеон 9600) - все нормально.
На 2 машине (P4 2400, Intel 82865G) столкнулся с проблемой:
Image.DrawAlpha(Engine.Surface,Rect,0,100);
- Image вообще не отображается. Если
Image.DrawAlpha(Engine.Surface,Rect,0,255);
то отображается, естественно непрозрачно.
И еще вопрос: как сделать, чтоб на разных машинах скорость движения спрайта была бы одинаковой? (На 2 машине все движется значительно быстрее)
VK (2006-02-21 15:08:00) [1]Интересно.... после установки DXDraw.Display в 16 битный режим полупрозрачность стала отображаться и на 2 машине. До этого стоял 32 битный
KreeS (2006-02-20 21:16:00) [2]Может там с дровами или с ДиректХ проблемы?
VK (2006-02-20 16:42:00) [3]По полупрозрачности:
Пример с Image.DrawAlpha из пакета с исходниками тоже не отображает полупрозрачность на 2 машине. Нашел в примерах другой DrawAlpha из модуля DXFusion, но там уж очень мудрено, хочется, чтоб обычный работал.
Никто, что ли не встречал проблему?
VK (2006-02-20 11:16:00) [4][1] - спасибо!
KreeS (2006-02-20 10:53:00) [5]А вообще в ДелфиХ, помоему есть таймер специально для этого :)
а насчет прозрачности незнаю
KreeS (2006-02-20 10:37:00) [6]Нужно считать тики процессора и двигать спрайт только когда прошло нужное кол-во времени.
var
PrevTime: Int64;
CurTime: Int64;
begin
CurTime := GetTickCount;
PrevTime := CurTickCount;
repeat
DrawScene; // здесь рисуется вся сцена
CurTime := GetTickCount;
if CurTime - PrevTime >= 50 then // каждые 50 милисекунд
begin
GameDoStep; // здесь обновляются позиции спрайтов и вся остальная физика
PrevTime := CurTime;
end;
Application.ProcessMessages;
until Application.Terminated;
end;