ДОБАВЛЯЕМ ИЗМЕРЕНИЕ
До сих пор мы не изменяли _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;
поэкспериментируйте, попробуйте сами придумать зависимости _у составляющей от различных переменных, от позиции курсора мыши и т.п.