Мои искания в создании флеш-стратегии (Часть 3. Привязка. Введение)
Запись от EndoCrinologist размещена 27.10.2011 в 15:42
Обновил(-а) EndoCrinologist 28.10.2011 в 09:41 (Добавил SWF-файл)
Обновил(-а) EndoCrinologist 28.10.2011 в 09:41 (Добавил SWF-файл)
Во второй части я обещал, что мы рассмотрим, как привязывать сооружения к сетке и сортировать расположение объектов по их глубине на сцене, чтобы произошло нормальное их перекрывание. Пожалуй, это будет самой сложной частью в нашей работе. Начнем сначала с небольшой теории.
Привязка к сетке - это когда объект можно ставить не на каждом координатном пикселе сцены, а только на определенных участках, как бы минизоне, ограниченные одинаковыми размерами. Вот пример:
SWF-файл
Как этого добиться? Я нашел один способ, который немного нубский, но довольно работающий. Принцип его таков:
Начнем как всегда с железа:
1) Создайте мувик (Ctrl F8) с именем obj. В нем нарисуйте квадрат размером 40*40. Поместите на сцену с Instance Name obj.
Закончили с железом. Переходим к коду:
1) Поле разделяется на равное количество сегментов и по Х и по У. Например, поле Ш*В = 600*400, то по 40 пикселей на сегмент будет участков Ш*В = 15*10.
2) Теперь главное - мы высчитываем координаты мыши на поле с помощью такой вот функции:
function refreshCoordsMouse(){ xxm = _xmouse; yym = _ymouse; } setInterval(refreshCoordsMouse,1); //чтобы функция получала как можно актуальные данные
function refreshCoordsMouse(){ xxm = _xmouse; yym = _ymouse; divOX = Math.ceil(xxm / 40); divOY = Math.ceil(yym / 40); } setInterval(refreshCoordsMouse,1);
4) Последняя функция, которая обновляет положение мувика на сцене, следя за координатами мыши:
function refreshCoordsObj(){ obj._x = divOX * 40 - 20; // - 20 потому, что объект размером 40*40 имеет привязку в углу, поэтому, мы её смещаем в центр obj._y = divOY * 40 - 20; } setInterval(refreshCoordsObj,1);
Спасибо за внимание
Всего комментариев 6
Комментарии
27.10.2011 16:31 | |
Хотелось бы сразу видеть ссылку на SWF или хотя бы приложенную картинку с результатом... ну лениво качать архив
|
27.10.2011 16:31 | |
Ага мне тоже, к тому же он РАР :о(
|
27.10.2011 16:59 | |
А как мне выложить чисто swf?
|
27.10.2011 17:30 | |
Неужто своего сайтика нет, на том же народе?
|
27.10.2011 17:41 | |
Есть http://megaswf.com/ например) А вообще конечно неплохо бы сделать аплоад swf сюда. По-моему проблемы с безопасностью все решаемы.
|
27.10.2011 17:52 | |
просмотрите статью, я выложил swf
|
Последние записи от EndoCrinologist
- Настройка сокетов для Flash 8 (07.03.2013)
- Создание простого чата. Часть 1. Основы считывания данных (28.10.2011)
- Создание простого чата. Часть 1. Основы получения данных (28.10.2011)
- Создание простого чата. Часть 1. Основы отправки данных (27.10.2011)
- Создание простого чата. Часть 1. Введение (27.10.2011)