Действие, которое выполняется и в том, и в другом случае, будет тем же: изменение направления скорости vy с частичной ее потерей.
Рис. 15. Введение изображения нового экземпляра мяча
Для того чтобы учесть отталкивание мяча от вертикальных стен, нужно учесть это событие в стейтчарте введением дополнительного перехода. Сделайте окно стрейчарта активным и добавьте к состоянию Movement дополнительный переход, используя кнопку панели инструментов:
Щелкнув мышью на этой кнопке, поместите указатель мыши на границе состояния и продвигайтесь по полю окна стейтчарта, щелкая кнопкой мыши в тех местах, где должны располагаться точки изгиба линии перехода. Двойной щелчок мыши заканчивает рисование перехода стрелкой (рис. 16).
В появившемся справа окне свойств этого перехода в поле Происходит нужно выбрать вариант По событию, в поле Событие следует вставить условие наступления события касания мяча о вертикальную стенку:
х <= r && vx < 0 || х >= 500-r && vx > 0
а в поле Действие установить действия изменения направления составляющей vx скорости мяча и моментальное изменение цвета мяча при столкновении:
vx=-(l-k)*vx;
tBounce = getTime();
Это изображено на рис. 17.
Рис. 16. Рисование перехода
Запустите модель на исполнение. Используя слайдеры, можно изменять радиус мяча, коэффициент потери скорости при встрече с препятствием, ускорение свободного падения, превращая мяч в воздушный шар при g<о или в биллиардный шар при g=о.
Рис. 17. Свойства нового перехода