Kingdom Rush
govnoproger.ru > as3 >
Новая хитовая игра. Пока-что не хитовая, но думаю что это будет хит типа гемкрафта. Кто не гамал смотрим — Kingdom Rush.
Игра появилась на armorgames.com .
Сделана очень качественно, уровни весьма хардкорные. Такую сделать легло, сложно сделать хороший баланс. Интересно сколько времени ушло на тестирование уровней.
Графика-то это ладно. Саундтреков мало кстати.
Ох уж этот tower defence…
*баный карась! Неделю **ался, а оказалось что проблема из-за того что нужно было одну строчку кода выше переместить 🙁 Короче была проблема что я из объекта не мог получить нужное мне свойство другого объекта — оказалось блин что я сначала пробовал получить свойство, а потом добавлял объект на сцену… А это блин свойство оказывается нельзя получить до добавления объекта в список отображения 🙁 Ну я так точно повешусь когда-нибудь.
Такой вопр: если один DisplayObject выводится из главного класса (грубо говоря «напрямую»), а другой DisplayObject из DisplayObjectContainer’а (то есть допустим является ребёнком первого DisplayObject), то выводится они будут одинаково быстро, или же второй будет чуть медленнее?
Выводится на экран в смысле.
Те что из главного будут быстрее, ну по логике по крайней мере.
Ну вот грабли начались.
Ды бля, что за нахер… Опять проблемы… Мне асм давался намного легче, там бля как задумаешь — так и работает, а тут выёбываться надо, угождая всяким теориям и реализациям, сука. Когда ж я уже освоюсь и попаду в нирвану ооп 🙂
Йа не знаю, может ты с таким сталкивался и сможешь помочь, а если нет — тогда ладно.
Функция:
public function test():void
{
trace(this.getChildAt(0));
}
[/lang]
Проблема: если вызывать эту функцию из класса где она определена — всё работает, если из класса-родителя (и видимо из любого другого) — вылетают ошибки во время выполнения (не при компиляции).
Хотяя… Похоже счас пойму в чём дело… Я думаю то что я написал выше должно выполняться много откуда, это у меня с остальной «обвеской» проблемы…
Во первых не забывай про import
Во вторых, Есть событие added_to_stage вроде как-то так
Если задаёшь вопрос прикладывай исходник фла (чтобы нажал и скомпилил, я об этом говорил — тут может быть слишком много всего), чтобы вставить код в комментарий- кнопки вставки кода с низу формы комментариев.
Сложность ассемблера заключается в том что нужно активно использовать отладчик.
Во всём остальном — ассемблер это самый простой язык.
Его смысл в двух словах — кладём -что-то туда-то. Делаем прерывание такое-то.
Не понял, написал коммент, а он исчез… А ладно, в общем: со всем согласен, всё учёл.
Могу предположить что ты некорректно вставил код
Если ты по поводу исчезновения коммента — походу всё проще… обновил страницу слишком рано, до того как он запостился.
Обнаружил удобную вещь, но не знаю правильно ли так делать: если у меня вся отображаемая хрень для левела лежит внутри контейнера, и я удалаю этот контейнер — с экрана пропадают все Child’ы созданные в нём. Это очень ужобно, но это правильный вариант очистки сцены? Или же нужно удалять все Child’ы сначала внутри контейнера, а потом сам контейнер?
И ещё вопрос — при удалении Child’а со сцены, если к нему был прицеплен слушатель событий — слушатель остаётся? Я продполагаю в этом случае праильно использовать событие removed_from_stage и в нём удалять слушателя при удалении объекта со сцены, или же можно иначе?
*удобно 🙂
Я не знаю по поводу этого, если я не ошибаюсь то это может вызвать утечки памяти.
Листенеры тоже, в случае жесткой привязки (я так понимаю по дефолту она жёсткая)
Вот попробуй тест — создай 1000000 раз, а потом удали и следи за памятью.
Я так никогда не удаляю. Я всегда циклом прохожусь.
Ок, спс!
Докладываю об очередном просветлении 🙂 Сегодня понял что пи удалении Child’a, если в контейнере их было больше 1 — остальные смещаются в сторону уменьшения индекса, а я пытался использовать for и removeChildAt(i) для их удаления, что приводило к «перепрыгиванию» через одного Child’а в списке 🙂 Теперь юзаю while, хотя понимаю что и с for можно, но с while как-то красивее 🙂
Если я в главном классе прикручиваю слушатель объекту, который создаётся внутри другого класса (контейнера), то удаление этого слушателя «изнутри» самого объекта будет работать правильно? (вроде логично) Вот пример того что я имею ввиду:
Main.as
…
public var container:Sprite = new Sprite();
public var someObj:SomeObj = new SomeObj();
container.someObj.addEventListener( … );
…
SomeObj.as
…
this.removeEventListener( … );
…
Что-то кнопки кода не срабатывают. Может надо прекращать юзать IE…
Хотя, если такое и возможно, то нужно ж при удалении указывать функцию, обрабатывавшую событие, пока не понял как в таком случае.
Не, походу гемор. Если б не указывая функцию удалять слушателей можно было…
Можно как-то программно (из AS3) динамически изменять точку отсчёта координат какого-нибдуь объекта отображения из библиотеки проекта? Например не левую верхнюю сделать (0,0), а правую нижнюю. Было бы очень круто, но пока не нашёл как… Если знаешь, можешь просто сказать да/нет, я поищу тогда ещё если да…
В ie кнопки вставки кода не работают. По поводу точки не знаю.