![]() |
видимость объектов сцены классами
добрый день, очень надеюсь на вашу помощь.
Ситуация следующая: есть два класса Unit и Floor. каждый объект класса Floor добавляется конструтктором в статический массив этого класса. Объект класса Unit каждый кадр обращается к функции класса Floor, которая пебирает все экзэмпляры Floor и проверяет пересекаются ли они одним из своих подобъектов(вложенные мувики) с объектом вызвавшим функцию(экземпляром Unit-а). все работало превосходно, но затем мне понадобилось добавить все объекты со сцены(экземпляры Unit и Floor) в отдельный муви клип.(map_mc предположим). после чего появилось обилие проблем с координатами( хотя поидеи я предусмотрел смещение сетки координат) и более того методы hitTestObject и hitTestPoint перестали работать. приведу сокращенный код, думаю его хватит. если понадобится кину исхожник. класс Unit Код AS3:
Код AS3:
|
координаты всех объектов, добавленных в мувиклип теперь будут такие : map_mc.x+object.x, это чтобы привести их к глобальным.
Вообще правильно изначально привязывать координаты объекта не к координатам Stage, а к координатам класса (наследованного от спрайта или мувиклипа), в котором находятся все объекты, чтобы координаты были относительными. |
поясните про координаты класса пожалуйста..
и да.. как из класса в обратиться к map_mc, если класс находится в отдельном пакете? я немного запутался с этим. нужно импортировать какойто класс? |
вы нарисовали экземпляр класса мувиклип вручную, дали ему имя map_mc.
а нужно в его свойствах прописать чтобы он наследовался не от мувиклипа, а от класса ,допустим, Map. далее создаете класс Map.as после этого все что вы пропишете в классе Map будет "влиять" на map_mc допустим чтобы переместить map_mc на координаты (100,100) в конструкторе класса map пишите this.x = 100;this.y = 100; тоесть когда будет создаваться map_mc он будет брать все параметры из класса Map |
я наверно немного не правильно пояснил, не знаю.. или я не понимаю... дело не в координатах совсем. хотя спасибо за разъяснения - это может частично помочь) я не пойму как сделать вновь рабочим метод hitTest. странно, он должен был бы хотя бы выводить ошибку, что не находит какой-то из объектов. но нет. он считает что они не пересекаются. хотя оба объекта находятся в map_mc, визуально пересекаются, и оба находятся в приделах видимости метода.
|
использвание hittest - первый признак *****кода... по делу: вы зря тратите время. Лучше учитесь программировать, возложите всю математику и координатный гемор на готовый движок (например flashpunk). Я вам по личному опыту говорю, первые 2-3 проекта - в мусорную корзину, лучше сосрдоточтесь на архитектуре
|
мой совет такой, скачайте несколько исходников, и разберитесь как в них расположены классы, как что наследовать, что в чем размещать,как должны взаимодействовать классы, и почитайте побольше про ООП.
|
это все конечно замечательно, и без сомнения справедливо. но я учусь в том числе и на практике. и у меня возник вполне конкретный вопрос. советов я вроде как не спрашивал.)
Добавлено через 19 минут а за совет движка спасибо) хотя проблема все равно не решилась ибо дело не в физике. |
| Часовой пояс GMT +4, время: 03:22. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.