Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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 в 255
NewAngle := 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.48 MB
Время: 0.043 c
14-1105217453
Andrewp
2005-01-08 23:50
2005.01.30
mail.ru


1-1106033983
dms_main
2005-01-18 10:39
2005.01.30
Форма и Трэд


1-1105951569
slart
2005-01-17 11:46
2005.01.30
Inno Setup


4-1102945089
sashas
2004-12-13 16:38
2005.01.30
активизация окна


1-1105889648
Exit
2005-01-16 18:34
2005.01.30
RichEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский