Форум: "Игры";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Внизdxdraw1.fillrect Найти похожие ветки
← →
Green_Templar © (2005-04-02 00:32) [0]form1.DXDraw1.Surface.FillRect(menui[0,0],clred); рисует мне синий прямоугольник, а с clblue рисует чёрный. Экран 1024*768*16. Почему так глючит и как нарисовать правильным цветом?
← →
Omar2002 © (2005-04-02 21:45) [1]вобще-то там цвет указывается как число типа LongInt. напримр 198476. Ну а уж какой это цвет - считай сам. Все очень просто пишешь цвет в хексе например 00FFAA12 переводишь его в лонгинт и все. Деталей е помню, ну немного по-экспериментируешь :)))
← →
Green_Templar © (2005-04-02 23:56) [2]Ну в хексе я умею, но где-то читал, что лучше всего использовать константы, типо они суперточны, а левое число может иметь разное значение цвета на разных машинах. Видимо, бред читал (или понял так).
← →
Omar2002 © (2005-04-03 21:54) [3]странно, ну вобще может быть такое или нет я не слышал. Но в хелпе можешь посмотреть - там так написано
procedureFillRect(Rect:TRect;DevCol:Longint);
← →
Omar2002 © (2005-04-03 21:58) [4]да - и еще там написано, что если хочешь перегнать цвет из TColor, то можно юзать функцию TDirectDrawSurface.ColorMatch с синтаксисом:
function ColorMatch(Col:TColor):Integer;
← →
Green_Templar © (2005-04-04 01:50) [5]А что такое ColorSpace & ColorKey? Там же, в справке ДэлфиХ увидел.
← →
NikeOLD © (2005-04-05 14:52) [6]ColorKey - цветовой ключ, т.е. цвет, который будет рендерится прозрачным
ColorSpace - пространство цветовых ключей. Все цвета лежащие в указнном диапазоне будут считаться прозрачными.
Прикол с цветами имеет банальное решение. В DirectDraw используется прямая последовательность цветов RGB, а Боланд извратился со своим TColor до ABGR, где А - это неиспользуемое значение, требующееся лишь для непосредственной работы с палитрами. Решение проблемы - перевести цвет из BGR в RGB, хотя бы функцией ColorMatch.
← →
Green_Templar © (2005-04-06 00:24) [7]Именно в диапазоне? Не в множестве? А можно пример c ColorSpace?
← →
Green_Templar © (2005-04-09 01:26) [8]Окончательно запутался:
rect рисует прямоугольник с цветом RGB:888. Значит, максимальное число, которое можно нарисовать, $ffffff. Но при $0ff000 оно рисует мне красный, а при $ff0000 - чёрный!!! Почему? Благо, колормэтч работает исправно, но хотелось бы задавать цвет константой чтобы выйграть время...
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c