Форум: "Игры";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизAsphyre, PowerDraw: effectDiffuse не работает с RotateEffect Найти похожие ветки
← →
Malefic © (2004-10-23 12:15) [0]так работает нормально, изображение выводиться
нормальным Color:=$FFFFFFFF;
или затемненным.Color:=$FF444444;
RenderEffectCol(Images1[3], cx, cy, Color, 0, effectSrcAlpha + effectAdd + effectDiffuse);
Почему здесь не работает? Картинку вообще не выводит. Хотя переменная одна и та же.
RotateEffect(Images1[2],px,py,Angle,255,Color,0,effectSrcAlpha + effectDiffuse);
Подскажите еще как сделать плавное затемнение, ведь переменная Color - это cardinal и ее нельзя просто dec(Color);
← →
cyborg © (2004-10-23 13:01) [1]
> ведь переменная Color - это cardinal и ее нельзя просто
> dec(Color);
Мда, почему это нельзя?
← →
Malefic © (2004-10-23 13:40) [2]Left side cannot be assigned to
← →
cyborg © (2004-10-23 15:13) [3]Какой ещё лефт сайд не асигнед, dec(Color);? Тут вообще нет никакой стороны.
← →
dRake (2004-10-23 18:28) [4]Так и не будет работать
Надо RenderEffectCol(Image, X, Y, Ang, Color, 0,effectSrcAlphaAdd);
Учти что если спрайт выводится с эффектом Add или Mul (effectAdd, effectSrcAlphaAdd, effectMul) то прозрачность (яркость) надо менять через
RGB состявляющие цвета, альфа составляющая не влияет.
$FF000000 - прозрачный
$FFFFFFFF - непрозрачный
$FF888888 - полупрозрачный
Если спрайт выводится только с учетом альфа-канала (effectSrcAlpha) то менять надо альфа-составляющую
$00FFFFFF - прозрачный
$FFFFFFFF - непрозрачный
$88FFFFFF - полупрозрачный
И вообще, чтобы не гемороиться на тебе функцию
FUNCTION PackRGBA( R, G, B, A : byte ) : integer;
BEGIN;
Result := (R and $FF) + ((G and $FF) shl 8) + ((B and $FF) shl 16) + ((A and $FF) shl 24);
END;
← →
dRake (2004-10-23 18:28) [5]Так и не будет работать
Надо RenderEffectCol(Image, X, Y, Ang, Color, 0,effectSrcAlphaAdd);
Учти что если спрайт выводится с эффектом Add или Mul (effectAdd, effectSrcAlphaAdd, effectMul) то прозрачность (яркость) надо менять через
RGB состявляющие цвета, альфа составляющая не влияет.
$FF000000 - прозрачный
$FFFFFFFF - непрозрачный
$FF888888 - полупрозрачный
Если спрайт выводится только с учетом альфа-канала (effectSrcAlpha) то менять надо альфа-составляющую
$00FFFFFF - прозрачный
$FFFFFFFF - непрозрачный
$88FFFFFF - полупрозрачный
И вообще, чтобы не гемороиться на тебе функцию
FUNCTION PackRGBA( R, G, B, A : byte ) : integer;
BEGIN;
Result := (R and $FF) + ((G and $FF) shl 8) + ((B and $FF) shl 16) + ((A and $FF) shl 24);
END;
← →
dRake (2004-10-23 18:34) [6]И вообще если какие вопросы по PowerDraw - спрашивай :)
Классная штука. Версия 2.41 - рулит полюбому :)
← →
Malefic © (2004-10-24 10:31) [7]2 dRake: Да спасибо, пригодилось. А почему это не работает с Rotateeffect. Я кстати щас на asphyre, поэтому и спрашиваю, тут не совсем так, как на PD. А еще вопрос, вот у меня есть угол поворота картинки, а как сделать так, чтобы картинка(персонаж) двигалась прямо, учитывая угол направления, т.е. ну если угол 0, то он идет вверх, если например 40, то идет вверх-вправо. На DelphiX было так
X := X + sin256(Angle) * (Speed/1000);
Y := Y - cos256(Angle) * (Speed/1000);
Но в Asphyre нет функции sin и cos 256, а если просто sin cos, то спрайт коряво перемещается.
← →
Malefic © (2004-10-24 10:34) [8]Я установил asphyre, так как на PD 2.41 нет objectengine. Извиняюсь за большое число вопросов, но как на версии 2.41 создать спрайт-объект, чтобы он мог перемещаться(ну это я сам) и проверять столкновения(????) - вот из-за чего я Asphyre поставил.
← →
dRake (2004-10-24 11:39) [9]>А почему это не работает с Rotateeffect
Ты случаем не забываешь effectSrcAlpha or effectDiffuseAlpha ?
В PD углы от 0 до 255 градусов.
Соответственно чтоб перевести угол из 360 в 255NewAngle := Round((Angle/360)*255);
Допустим угол поворота картинки ты хранишь в 360 градусах, тогда
X := X + Speed*Cos(Angle*Pi/180);
Y := Y - Speed*Sin(Angle*Pi/180);
>как на версии 2.41 создать спрайт-объект, чтобы он мог >перемещаться(ну это я сам) и проверять столкновения(????)
В 2.41 нет никаких встроенных движков
← →
Malefic © (2004-10-24 12:22) [10]Большое спасибо, очень помог. Не не забыл.на asphyre effectScrAlpha + effectDiffuse = effectSrcAlpha or effectDiffuseAlpha. Ну попробую разобраться. А насчет 2.41 я знаю, что движка и нет, вот испрашиваю, как можно сделать. Видишь Asphyre и PD 3 они по сравнению с 2.41 лажа, но у них есть pbjectengine. Я бы работал на 2.41 если б знал, как там столкновения проверять.
← →
dRake (2004-10-24 23:36) [11]Ну лажа-не лажа это еще вопрос спорный....
Меня лично смущает необходимость DX9.0b под Asphyre равно как и под PD3. Да и в них есть полезные новые фишки (линии там всякие модные итд). В 2.41 наблюдаются глюки с антияльясингом, которые однако лечатся шаманскими способами :)
А насчет проверки столкновений - куча инфы в инете есть на эту тему.
← →
Malefic © (2004-10-25 06:54) [12]Thanks
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c