ДОБАВЛЯЕМ ИЗМЕРЕНИЕ

 

До сих пор мы не изменяли _y координату объекта. Для иллюстрации предлагаю следующий приём: траекторию движения, а точнее ее _y составляющую поставим в зависимость от скорости. Для этих целей введём ещё одну константу - y0. заменим в нашем примере код на следующий:

 

onClipEvent (load) { // При загрузке клипа

MovieWidth = 600; // задаём значениЯ константам, определЯющим ширину и

MovieHeight = 400; // высоту

y0 = MovieHeight/2;// задаём константу - центр сцены по вертикали

_y = y0;// помещаем мувиклип по вертикали по центру

_x = 0;// а по горизонтали - слева

speed = 0;// задаём начальную скорость (в данном случае необЯзательно)

accel = 0;// задаём начальное ускорение (в данном случае необЯзательно)

A = 0;// задаём константы - ключевые точки траектории (эта необЯзательна)

B = 200;// эта точка определЯет границу между первой и второй частью

C = 400;// эта точка определЯет границу между второй и третьей частью

D = 600;// эта точка определЯет коней третьей части

}

onClipEvent (enterFrame) {// затем каждый кадр

if (_x <B) { // проверЯем, где относительно точки B находитсЯ мувиклип, если левее,

accel = 1; // то ускорение будет равнЯтьсЯ единице,

} else if (_x >B and _x <C) { // если правее точки B, проверЯем, где относительно точки C находитсЯ мувиклип, если левее,

accel = 0; // то ускорение будет равнЯтьсЯ нулю

} else if (_x >C) { // если правее точки C

accel = -1; // то ускорение будет равнЯтьсЯ минус единице

}

speed = speed + accel; // определив в предыдущих строках значение ускорениЯ, изменЯем значение скорости на значение ускорениЯ

_x=_x+speed;// и, наконец, знаЯ значение скорости, изменЯем позицию мувиклипа по горизонтали на значение скорости.

_y= y0 + Math.abs(speed)*5;// изменЯем позицию мувиклипа по вертикали, рассчитываЯ ее как сумму значениЯ центра сцены и пЯтикратного абсолютного значениЯ скорости.

}

как видите, изменения минимальны, но траектория и скорость движения уже согласованы, и возникает ощущение, что скорость объекта зависит от траектории, но мы знаем, что на самом деле всё наоборот. Строкой

_y= y0 + Math.abs(speed)*5;

нашего примера задаём составляющую траектории как сумму начального значения равной у0 и увеличенного в пять раз абсолютного значения скорости.

Поэкспериментируйте. Замените эту строку на следующие варианты:

_y= y0 + speed*5;

_y= y0 + speed*speed/2;

_y= _y + speed / 5;

_y= y0 - Math.abs(_x-300)/2;

 

поэкспериментируйте, попробуйте сами придумать зависимости _у составляющей от различных переменных, от позиции курсора мыши и т.п.

 

Hosted by uCoz