Хыиуду » 11 май 2009, 22:28
Тогда - массив кирпичей, у каждого кирпича - координаты и уровень прочности (если хочется). Шарик в любой момент времени (когда запущен) имеет горизонтальную и вертикальную скорость. Если соударяется с вертикальной поверхностью, меняет горизонтальную скорость на противоположную по знаку, если с горизонтальной - то на вертикальную. В каждый момент сдвигаем шарик согласно скорости, проверяем на соударение со стеной, кирпичом или платформой, если было столкновение - изменяем скорость. Кстати, угол, под которым шарик отлетает от платформы, обычно считается как arccos((x-0.5l)/0.5l), где l - общая длина платформы, а x - расстояние от левого края платформы до точки удара шарика. Иными словами, если шарик падает в центр платформы, он отлетает вертикально вверх, а если на левую сторону - то по диагонали влево, причем чем ближе к краю, тем более полого.
Тогда - массив кирпичей, у каждого кирпича - координаты и уровень прочности (если хочется). Шарик в любой момент времени (когда запущен) имеет горизонтальную и вертикальную скорость. Если соударяется с вертикальной поверхностью, меняет горизонтальную скорость на противоположную по знаку, если с горизонтальной - то на вертикальную. В каждый момент сдвигаем шарик согласно скорости, проверяем на соударение со стеной, кирпичом или платформой, если было столкновение - изменяем скорость. Кстати, угол, под которым шарик отлетает от платформы, обычно считается как arccos((x-0.5l)/0.5l), где l - общая длина платформы, а x - расстояние от левого края платформы до точки удара шарика. Иными словами, если шарик падает в центр платформы, он отлетает вертикально вверх, а если на левую сторону - то по диагонали влево, причем чем ближе к краю, тем более полого.