вторник, 24 ноября 2009 г.

Лабиринт во Flash


Лабиринт – увлекательная игра. Она развивает пространственное и логическое мышление, внимание, наблюдательность, учит предсказывать направление движения предметов. В зависимости от возраста ребенка, можно усложнить прохождение лабиринта, сделать ходы более запутанными, установить препятствия. Также возможно совместить эту игру с заданиями на формирование каких-либо знаний, например таблицы умножения: «составь цепочку».

Как сделать лабиринт во Flash, в котором объект управляется стрелками?
Создаем Movie Clip - объект который будет двигаться, т.е. рисуем прямоугольник, или кружок, или что-то другое. Даем ему имя mc. Создаем еще один Movie Clip – это будет лабиринт, т.е. рисуем линии, даем ему имя lab. На сцену первого кадра (он у нас всего один) в нижний слой из библиотеки переносим лабиринт - lab. Добавляем второй слой, и на него вытаскиваем из библиотеки объект - mc, который будет двигаться по лабиринту. Не забываем задавать имена Movie Clipам на панели «Свойств»: mc и lab. Добавляем третий слой, в который будем писать скрипт (собственно он написан ниже, просто копируем и вставляем). Тестируем ролик, должно все работать.

// переменная скорости движения
var speed_mc = 5;
/* переменная расстояния от стенок лабиринта при столкновении прямоугольника с ними, не может быть меньше скорости, иначе объект будет проходить через стены*/
var bounce_mc = 5;
// чтобы объект не уплывал со сцены
mc.onEnterFrame = function() {
// по оси Х влево
if (this._x<10) {
this._x = 10;
}
// по оси Х вправа
if (this._x>540) {
this._x = 540;
}
// по оси У вверх
if (this._y<10) {
this._y = 10;
}
// по оси У вниз
if (this._y>390) {
this._y = 390;
}
};
onEnterFrame = function () {
with (_root.mc) {
/* управление движением прямоугольника с заданной переменной speed_mc скоростью*/
// вверх
if (Key.isDown(Key.UP)) {
mc._y -= speed_mc;
}
// влево
if (Key.isDown(Key.LEFT)) {
mc._x -= speed_mc;
}
// вправо
if (Key.isDown(Key.RIGHT)) {
mc._x += speed_mc;
}
//вниз
if (Key.isDown(Key.DOWN)) {
mc._y += speed_mc;
}
/* проверяем, касается ли прямоугольник стенок лабиринта lab слева, справа по осям Х и У, если касаются, то прямоугольник отодвигается от нее на расстояние заданное в переменной bounce_mc */
if (this.lab.hitTest(getBounds(_root).xMax, _y, true)) {
_x -= bounce_mc;
}
if (this.lab.hitTest(getBounds(_root).xMin, _y, true)) {
_x += bounce_mc;
}
if (this.lab.hitTest(_x, getBounds(_root).yMax, true)) {
_y -= bounce_mc;
}
if (this.lab.hitTest(_x, getBounds(_root).yMin, true)) {
_y += bounce_mc;
}
}
};


Чтобы ролик активировать - кликните по нему мышкой. Управляйте стрелками.


2 коммент.:

Радуга комментирует...

Ирина Викторовна! Дайте нам, пожалуйста, свою кнопку.Очень хотим разместить, у вас всегда интересно. Наш сайт http://www.sabaraduga.ucoz.ru/

И.В.Ослина комментирует...

Спасибо за внимание. Вот код <a href="http://oslina.blogspot.com" target="_blank"><img border="0" width="160" src="http://ugorka.ivakorin.ru/image/blog.gif" height="48"/></a>

Отправить комментарий