![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 3
|
Здравствуйте!
Я в данный момент только начал изучать ActionScript и в учебных целях решил сделать игру аналогичную вот этой. У меня возникла проблема с генерацией "потолка" и "пола". Вот какой алгоритм я избрал: 1. У нас есть "кирпичик" в виде movieclip'а, из которого мы будем строить неровную поверхность. 2. В цикле Event.ENTER_FRAME:
То есть, по моему замыслу, существовать будут только те movieclip'ы, которые видны на экране, а уйдя за его пределы, они будут уничтожаться и всем будет хорошо. Но в результате совсем не так, и я не понимаю, почему. Вот кусочек кода, который за это отвечает: for (var i:uint = 0; i < wallArr.length; i++) { if (wallArr[i].x < 0) { trace(i+" is OUT!"); wallArr.splice(i,1); } } Однако, если трейсить wallArr.length, то мы увидим, что массив абсолютно не уменьшается. И в результате, когда он разрастается до неимоверных пределов, всё начинает дико тормозить (что естественно). И ещё, справедливы ли мои подозрения, что у меня неправильный подход, и удаление элемента из массива в данном случае не повлечёт за собой удаление movieclip'a со сцены? Я, честно говоря, уже голову сломал над этой загадкой и был бы благодарен, если бы кто-то смог пролить хоть какой-то свет на неё. Искал уже не только в рунете, но и в зарубежном интернете подобные проблемы - ничего нет. Кстати, сдаётся мне, что тут можно сделать всё проще, но я не знаю, как. Может, можно в AS3 как-то удалить со сцены все movieclip'ы, которые удовлетворяют тем или иным условиям (в данном случае выходят за пределы экрана)? Последний раз редактировалось iNils; 08.01.2011 в 11:42. |
![]() |
Часовой пояс GMT +4, время: 14:17. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|