Для большей наглядности дополним анимационное представление поведения мяча так, чтобы при отскоке мяча его цвет на мгновение изменялся на красный. Для этого нужно зафиксировать момент отскока (запомнить значение момента времени наступления этого события) и установить красным цвет шара в анимации на небольшой интервал времени, следующий за этим моментом.
Введите сначала переменную 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 с после каждого отскока.