![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1.3 04.03.14]
Регистрация: Mar 2014
Сообщений: 4
|
Обучаюсь по книге Гурского, застрял на уроке 4 нужно сделать тень для мяча движущего по параболе .
Дана формула движения мяча с угасанием после каждого отскока, а как сделать тень для мяча не ясно. Помогите пожалуйста . |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Что-то меня смущает русская фамилия автора книги.
Учите ас3 лучше, серьезно. Ас2 устарел сильно. Какая тень вас интересует? Можно сделать фильтром, к примеру. Можно сделать размытой копией мяча, движущейся по горизонтали на уровне пола и меняющей размеры в зависимости от высоты положения мяча. Покажите код мяча, для начала. И опишите подробнее задачу. Добавлено через 3 минуты P.S. Можете еще по такому примеру поучиться http://www.flasher.ru/forum/showpost...5&postcount=11
__________________
hauts.ru |
|
|||||
|
Гурский VS Мук - тема для холивара....
Я учился по Гурскому. Подача материала от Мука - более чем неудобно. Мне. Тень от мяча.... точно также, только клип не двигайте по Y и задайте ему блюр фильтр... |
|
|||||
|
[+1.3 04.03.14]
Регистрация: Mar 2014
Сообщений: 4
|
Мне нужна тень движущейся по горизонтали на уровне пола и меняющей размеры в зависимости от высоты положения мяча, но как менять размеры я знаю, мне нужна сама траектория мяча.
Вот программа самого мяча var X=-50; var Y=170; var X0=X; var Y0=Y; var t=0; var a=2; var Vy=0; var Vx=6; var newV=null; var newX=null; var newY=null; _root.onEnterFrame = function(){ if (ball._y>350){ Vy=-newV*0.85; Vx=0.85*Vx; t=0.6; X0=newX; Y0=newY;} ball._x=X0+Vx*t; ball._y=Y0+Vy*t+a*t*t/2; newV=Vy+a*t; newY=ball._y; newX=ball._x; countor._x=ball._x; countor._y=ball._y; if (newY==Y0){countor._rotation+=0;} else {countor._rotation+=4;} t+=0.6;} |
|
|||||
|
Lorem ipsum
|
Andriano606, код следует оформлять соответствующими тегами (кнопка AS в панели редактора сообщений)
__________________
Поймай яблоко 2! |
|
|||||
|
[+1.3 04.03.14]
Регистрация: Mar 2014
Сообщений: 4
|
тень должна быть как бы объемная, вот пример на мяче который прыгает на месте
|
|
|||||
|
Тогда удаляйте тень на расстояние от мяча до пола, под заданным заранее углом.
var grav:Number=2; var speedY:Number=0; var bounce:Number=-30; //граница пола по игрек var floorY:Number=280; //угол под которым уходит тень (0 градусов - это вправо, 180 или -180 - это влево) //угол -20 var ang:Number = -20 * Math.PI/180; shadow_mc._y = floorY; _root.onEnterFrame=function() { speedY+=grav; ball_mc._y+=speedY; if(ball_mc._y >= floorY) { ball_mc._y = floorY; speedY = bounce; } //--------- move shadow //узнаём насколько мяч выше от пола var dist:Number = ball_mc._y - floorY; //перемещаем тень на это расстояние, под заданным выше углом shadow_mc._x = ball_mc._x - Math.cos(ang)*dist; shadow_mc._y = floorY - Math.sin(ang)*dist; shadow_mc._alpha=100-Math.abs(dist/3); } |
|
|||||
|
[+1.3 04.03.14]
Регистрация: Mar 2014
Сообщений: 4
|
Всем спасибо !
Я наконец разобрался (методом ошибок и проб). Вот код если кому нибудь понадобиться var X = -50; var Y = 170; var X0 = X; var Y0 = Y; var t = 0; var a = 2; var Vy = 0; var Vx = 6; var newV = null; var newX = null; var newY = null; var T = null; _root.onEnterFrame = function() { if (ball._y>350) { Vy = -newV*0.85; Vx = 0.85*Vx; t = 0.6; X0 = newX; Y0 = newY; } ball._x = X0+Vx*t; ball._y = Y0+Vy*t+a*t*t/2; newV = Vy+a*t; newY = ball._y; newX = ball._x; countor._x = ball._x; countor._y = ball._y; shade._x = -(ball._y+30)+389+ball._x; shade._y =(ball._y+10)+8; shade._xscale =(450-T); shade._yscale =(450-T); T =(ball._y); if (newY == Y0) { countor._rotation += 0; } else { countor._rotation += 4; } t += 0.6; }; |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:42. |
|
|
« Предыдущая тема | Следующая тема » |
|
|