![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: May 2010
Сообщений: 59
|
Здравствуйте,
решил спросить на примере, как мне получить x и y главный класс TestPoint package { import flash.display.*; import flash.geom.*; public class TestPoint extends Sprite { var test1:Test1; public function TestPoint() { test1 = new Test1(); addChild(test1); trace(test1.x, test1.y); } } } package { import flash.display.*; public class Test1 extends MovieClip { var test1:MovieClip; public function Test1() { test1 = new mc1(); test1.x = 100; test1.y = 100; addChild(test1); } } } вопрос в следующем, в главном классе я вызываю trace(test1.x, test1.y) и мне пишется 0 0 я понимаю, т.к. главная сцена находится в координатах 0 0, но как мне вытащить координаты круга (того, который создается в классе Test1) ??? подскажите плиз на примере, желательно с примером правильного кода спасибо |
|
|||||
|
Регистрация: May 2010
Сообщений: 59
|
угу эту ошибку я уже понял, видимо уже голова не варит
но тогда вопрос такой, я собственно видимо не верно привел пример, расскажу на словах есть объект (герой), он стреляет, создаются пули, их много каждый созданный объект пули (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 Должен выглядеть вот так? package { import flash.display.*; public class Test1 extends MovieClip { var object:MovieClip; public function Test1() { object = new mc1(); this.x = 100; this.y = 100; addChild(object); } } } верно? |
|
|||||
|
Цитата:
Если это у вас всё не в документ классе, то тогда вам нужно создать класс уровня например Level1 и в него поместить героя, и когда надо пули. |
|
|||||
|
Регистрация: May 2010
Сообщений: 59
|
с примерами бы =)
новичкам трудно понять некоторые вещи, в голове реальная каша мне уже советовали про класс уровня (мир), но я не понял как это сделать, и пример не показали :-( |
|
|||||
|
Просто представьте, что герой и всё остальное будет находится в пустом муви-клипе по именем Level1, так же как они сейчас находятся на TimeLine - который тоже самый настоящий муви-клип. А вы полностью делаете игру на классах, или у вас главный код в кадрах, а класс пули просто создали для удобства?
|
|
|||||
|
Регистрация: May 2010
Сообщений: 59
|
нет, я полностью делаю на классах
основной класс это TowerKiller (он же как Вы называете уровень) класс героя это Hero класс пуль это BulletLoader, у него есть еще один класс Bullet BulletLoader подгружает данные их XML, после чего в цикле создает из класса Bullet пули и помещает их в массив есть класс EnemyLoader и Enemy для загрузки данных врагов и создания врагов на TimeLine ничего нет, я сразу отказался от программирования на временной шкале, т.к. для более мения серьезного проекта, это неудобно и не профессионально... Добавлено через 43 секунды Забыл сказать в классе TowerKiller добавляется в addChild только герой а вот в классе героя, уже идет управление всем... |
|
|||||
|
Регистрация: May 2010
Сообщений: 59
|
герой это башня которая стреляет
Вы видимо не поняли... вот тут http://www.flasher.ru/forum/showthread.php?t=140422 вконце темы, я пример привел небольшой, надеюсь более понятно будет :-) |
|
|||||
|
Итак, сами посудите: глупо, что герой является мозгом игры. Герой же не обдумывает, что пуля должна войти в стену, отскочить и свалиться воооон у того угла? Он же не должен знать, что сейчас думает монстр, куда бы ему свалить в кучу трупы прошлых "героев", верно же? Герой умеет только стрелять, ходить и смежные действия. О другом он не должен задумываться вообще.
Да, вам следует создавать пули в объекте Мир, а пули, в свою очередь, не должны думать о стороннем вообще тоже. Они только летят и проверяются на столкновение со стенами. Они не должны знать, что думает слесарь Вася - главный босс игры. Герой, в свою очередь, не должен знать как и куда летят пули. Это пули контролируют свои действия. Вы должны делать логически обособленные объекты, иначе получится нечто вроде "сидение от унитаза управляет бочком и сливом". Добавлено через 9 минут И да, я вот честно, не знаю, какое самое нормальное решение для проверки хитТеста обособленных объектов между другими объектами. Читал, что самое то - использовать сетку. То есть, грубо говоря, пуля летит, она знает, в каком она квадратике, далее идет проверка, есть ли кто в этом квадратике, если есть - проверка на хитТест между теми, кто там есть. Логика ясна? Я на деле никогда не пробовал, как-то от игрушек отошел уже очень давно.
__________________
тут я Последний раз редактировалось КорДум; 20.09.2010 в 23:59. |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|