![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 52
|
Wolsh
если Вам не трудно, объясните на примере...моё восприятие, к сожалению, не достаточно полно позволяет понять как это реализуется сохранять ссылку на каждый элемент(плиту) в отдельной переменной? но ведь массив и есть подборка ссылок на плиты...и через массив удобнее, как мне кажется, навигация по этим ссылкам...на счёт mapList[0], вроде, понятно. на счёт изометрии, наконец-то, понял! спасибо за разжевывание действительно, тригонометрия никчему...Добавлено через 2 часа 15 минут по сути, отмена тригонометрии решила проблему с некорректным перемещением плит! Всем спасибо за участие и советы! Wolsh, Вам отдельное спасибо! Буду так же признателен, если приведете пример с оптимизацией процесса! Последний раз редактировалось Offi; 14.11.2008 в 21:20. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
OK, поехали.
Ваш код: mapList[0]._x+=dx; mapList[0]._y+=dy; for(var i=1; i<mapList.length; i++) { ddx=mapList[0]._x+mapList[i].x*cellWidth; ddy=mapList[0]._y+mapList[i].y*cellHeight; mapList[i]._x=ddx; mapList[i]._y=ddy; } // сохраняем х и у нулевого клипа в переменных var mc0x:Number = (mapList[0]._x+=dx); var mc0y:Number = (mapList[0]._y+=dy); for(var i=1; i<mapList.length; i++) { // сохраняем ссылку на mapList[i] в переменной var mc:MovieClip = mapList[i]; // все, массив больше не дергаем mc._x = mc0x + mc.x*cellWidth; mc._y = mc0y + mc.y*cellHeight; } Всегда, когда можно и имеет смысл, храните во внутренних для функции переменных (а если можно и нужно, то во внешних "общих") прямые ссылки на объекты, не заставляйте плеер их разыскивать по всей губернии каждый раз. Для игры важна любая возможность оптимизации. А в идеале, для такого большого проекта, надо уже учиться писать классы. У Вас получится. Чем раньше начнете, тем лучше. Тем более что уже вышли прекрасные книги как по АС2, так и по АС3, на русском. Удачи! Добавлено через 9 минут А, блин, забыл - не просто 10 операций 30 раз в секунду, а еще и для каждого из (50?) клипов. 1500 операций в секунду. Как минимум.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 52
|
Спасибо огромное)) Все чисто и ясно!
![]() |
|
|||||
|
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
Вобщем вот такой вариант у меня полчился.
Если делать по моему примеру управление картой курсором |
|
|||||
|
Не забывайте о том, что все координаты объектов задаются в твипсах = это 1/20 пиксела.
Изменять координату меньше чем на 0.05 бессмысленно, т.к. эта величина будет округлятся до 0. Это на тот случай, если смещения плит гуляют примерно около такой величины за одну итерацию. ![]()
__________________
coming soon... Последний раз редактировалось AlexStukoff; 03.12.2008 в 19:09. |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:06. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| игра , изометрия , карта , перемещение , плиты |
|
|