Изменение цвета мяча в анимации при отскоке

Для большей наглядности дополним анимационное представление поведе­ния мяча так, чтобы при отскоке мяча его цвет на мгновение изменялся на красный. Для этого нужно зафиксировать момент отскока (запомнить зна­чение момента времени наступления этого события) и установить красным цвет шара в анимации на небольшой интервал времени, следующий за этим моментом.

Введите сначала переменную tBounce, которая будет фиксировать момент отскока. Для этого сделайте активным окно структуры активного объекта Ball и перенесите внутрь ограничивающего прямоугольника иконку (Переменная), щелкнув левой кнопкой мыши сначала по этой иконке на инструментальной панели, а потом в окне. В поле Имя открывшегося окна свойств этой переменной введите tBounce, а в поле Начальное значение вве­дите - 1 (рис. 11).

Для того чтобы переменная tBounce фиксировала момент отскока, нужно значение текущего времени в модели при наступлении события "отскок" заломить в этой переменной. За наступлением данного события следит стейтчарт, поэтому сделайте активным окно стейтчарта (рис. 12), в нем выберите переход и в поле Действие | перехода] добавьте действие:

tBounce = getTime();

При каждом вызове функция getTimeдает текущее значение модельного времени.

Переменная tBounce имеет начальное значение —1 и при работе модели хранит значение момента времени последнего отскока. Для того чтобы каж­дый раз при отскоке мяча его цвет изменялся на красный (скажем, в тече­ние 0.1 с), нужно установить в поле Цвет заливки графического изображе­ния мяча в окне анимации динамическое значение цвета (рис. 13):

getTime() < ball.tBounce+1? Color.red: Color.blue

Это условное выражение устанавливает цвет заливки изображения мяча ball красным в течение 1 с после каждого отскока.