Ради развлечения написал вот такой скрипт
http://learn.javascript.ru/play/oysNpc (абсолютно некроссбраузерно, работает в ff). Объект (картинка) поворачивается вокруг своей оси по нажатию вправо-влево и двигается вперед-назад по нажатию вверх-вниз. При столкновении с внешней стенкой скользит вдоль нее в соответствии с направлением, но при столкновении с внутренней останавливается. Где нужно заложить запас? Никак не додумаюсь.
Извините за ошибку в названии темы (*препятствием).