![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 68
|
Ну в общем такая ситуация:
Делаю игру, есть некий класс юнита, обьект которого создается и туда передаются параметры определенные. Обьект содержит переменную clip:MovieClip. По запросу определенной функции этот клип например перемещается или меняется как-то, это по сути неважно. Интересует как мне обратиться к родителю этого мувика, чтобы например проверить карту проходимости, или узнать координаты других обьектов находящихся на уровне....Это моя первая игра в широком смысле, и хочется сделать все грамотно, чтобы потом не стыдно было за код да и изменить чтобы можно было что-то без головоломок и кучи времени. Если непонятно описал спрашивайте.если надо выложу код класса |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 68
|
возвращает null. на это первым делом и надеялся))
|
|
|||||
|
ну так нужно дождаться добавления Event.ADDED
__________________
http://www.chessmax.ru |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 68
|
Inet_PC, спасибо помогло
dimarik, да я понимаю, не понимал почему это происходит. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
– Давай, сынок, иди!
– Папа, а слева есть стена? – Да, сынок. Слева стена. – Папа, а справа есть стена? – Да, сынок, и справа стена. – Папа, а впереди тоже стена? – Да,сынок, и впереди стена. – А че, сразу сказать куда идти – не мог? – Есть такое слово, сынок – "Разработчик".
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 68
|
Новая проблема...пытаюсь реализовать данный алгоритм на AS 3.0, но в некоторых местах не пойму что имел ввиду автор.
источник: http://xitri.com/2008/09/22/simple-e...#comment-78710 Я нк пытаюсь сделать на всем готовеньком, вы меня поймите, но просто просидел уже не один час и зашел в тупик честно говоря. Буду очень рад если найдется ктото, кто поможет. Вот собственно сам код: step = 2; onEnterFrame = function(){ var dx = _xmouse - man._x; var dy = _ymouse - man._y; //Направление (угол) к цели var angle = Math.atan2(dy, dx); var dist = Math.sqrt(dx*dx + dy*dy); if(dist > step) { //пробуем пройти напролом tgtX = man._x + step * Math.cos(angle); tgtY = man._y + step * Math.sin(angle); if (!path.hitTest(tgtX, tgtY, true)){ //напролом не получилось, вычисляем базовое направление var dAngle = dAngleRadian(direction, angle); workAngle = angle + dAngle*.8; //Шаг поворота - 10 градусов for(var i = 0; i < 360; i += 10) { for(var j = -1; j <= 1; j += 2) { var a = workAngle + radian(i) * j; var tempX = man._x + step * Math.cos(a); var tempY = man._y + step * Math.sin(a); if (path.hitTest(tempX, tempY, true)) { //точка выхода найдена. Запоминаем ее и прерываем цикл tgtX = tempX; tgtY = tempY; break; } } } } var timeDx = tgtX - man._x; var timeDy = tgtY - man._y; //направление движения direction = Math.atan2(timeDy, timeDx); var dAngle = dAngleDegree(direction*180/Math.PI, man._rotation); //поворячиваем клип к направлени движения на 5-ю часть man._rotation += dAngle * .2; man._x = tgtX; man._y = tgtY; man.play(); } else { //стоим man.gotoAndStop(5); } } function dAngleRadian(a1, a2) { var da = a1 - a2; if (da > Math.PI) { da = -Math.PI*2 + da; } else if (da < -Math.PI) { da = Math.PI*2 + da; } return da; } function dAngleDegree(a1, a2) { var da = a1 - a2; if (da > 180) { da = -360 + da; } else if (da < -180) { da = 360 + da; } return da; } function degree(a) { return a / Math.PI * 180; } function radian(a) { return a / 180 * Math.PI; } |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Одна тема – один вопрос.
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|