![]() |
Вопрос про координаты (x y)
Здравствуйте,
решил спросить на примере, как мне получить x и y главный класс TestPoint Код AS3:
Код AS3:
вопрос в следующем, в главном классе я вызываю trace(test1.x, test1.y) и мне пишется 0 0 я понимаю, т.к. главная сцена находится в координатах 0 0, но как мне вытащить координаты круга (того, который создается в классе Test1) ??? подскажите плиз на примере, желательно с примером правильного кода спасибо |
Так у вас вложенность какая? Смотрите сами: test1.test1
Все правильно, первый test1 лежит в (0, 0), а test1 в нем лежит в (100, 100), ясно? Вы берете координаты не того объекта и зачем-то создали вложенность. Код AS3:
|
угу эту ошибку я уже понял, видимо уже голова не варит
но тогда вопрос такой, я собственно видимо не верно привел пример, расскажу на словах есть объект (герой), он стреляет, создаются пули, их много каждый созданный объект пули (bullet = new Bullet()) добавляется в массив после чего происходит проверка каждой пули по массиву (на попадание), собственно у пуль надо брать их текущие координаты относительно сцены... просто как я это вижу Класс героя, в нем создается в цикле (например 10 пуль) объект пули while (limi--) { bullet = new Bullet(); массив.push(bullet) addChild(bullet) } прошу прощения за цикл, просто для краткости а в классе пуль Bullet уже на сцену добавляются сами пули из обхектов библиотеки bullet = new mc_myBullet(); bullet.x = координата например кончика пушки героя и y тоже самое addChild(bullet) и собственно как в этом случае быть? как мне в классе героя, когда я буду перебирать массив пуль, брать их координаты? Добавлено через 4 минуты КорДум, скажите, в моей первом примере получается класс Test1 Должен выглядеть вот так? Код AS3:
верно? |
Цитата:
Если это у вас всё не в документ классе, то тогда вам нужно создать класс уровня например Level1 и в него поместить героя, и когда надо пули. |
с примерами бы =)
новичкам трудно понять некоторые вещи, в голове реальная каша мне уже советовали про класс уровня (мир), но я не понял как это сделать, и пример не показали :-( |
Просто представьте, что герой и всё остальное будет находится в пустом муви-клипе по именем Level1, так же как они сейчас находятся на TimeLine - который тоже самый настоящий муви-клип. А вы полностью делаете игру на классах, или у вас главный код в кадрах, а класс пули просто создали для удобства?
|
нет, я полностью делаю на классах
основной класс это TowerKiller (он же как Вы называете уровень) класс героя это Hero класс пуль это BulletLoader, у него есть еще один класс Bullet BulletLoader подгружает данные их XML, после чего в цикле создает из класса Bullet пули и помещает их в массив есть класс EnemyLoader и Enemy для загрузки данных врагов и создания врагов на TimeLine ничего нет, я сразу отказался от программирования на временной шкале, т.к. для более мения серьезного проекта, это неудобно и не профессионально... Добавлено через 43 секунды Забыл сказать в классе TowerKiller добавляется в addChild только герой а вот в классе героя, уже идет управление всем... |
Но если вы всё добавляете в класс героя, то как оно работает? Наверняка ваш герой ходит туда-сюда, получается с ним одновременно так же ходит всё вокруг... Наверно я что-то не понял...
|
герой это башня которая стреляет
Вы видимо не поняли... вот тут http://www.flasher.ru/forum/showthread.php?t=140422 вконце темы, я пример привел небольшой, надеюсь более понятно будет :-) |
Итак, сами посудите: глупо, что герой является мозгом игры. Герой же не обдумывает, что пуля должна войти в стену, отскочить и свалиться воооон у того угла? Он же не должен знать, что сейчас думает монстр, куда бы ему свалить в кучу трупы прошлых "героев", верно же? Герой умеет только стрелять, ходить и смежные действия. О другом он не должен задумываться вообще.
Да, вам следует создавать пули в объекте Мир, а пули, в свою очередь, не должны думать о стороннем вообще тоже. Они только летят и проверяются на столкновение со стенами. Они не должны знать, что думает слесарь Вася - главный босс игры. Герой, в свою очередь, не должен знать как и куда летят пули. Это пули контролируют свои действия. Вы должны делать логически обособленные объекты, иначе получится нечто вроде "сидение от унитаза управляет бочком и сливом". Добавлено через 9 минут И да, я вот честно, не знаю, какое самое нормальное решение для проверки хитТеста обособленных объектов между другими объектами. Читал, что самое то - использовать сетку. То есть, грубо говоря, пуля летит, она знает, в каком она квадратике, далее идет проверка, есть ли кто в этом квадратике, если есть - проверка на хитТест между теми, кто там есть. Логика ясна? Я на деле никогда не пробовал, как-то от игрушек отошел уже очень давно. |
| Часовой пояс GMT +4, время: 16:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.