Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > ActionScript 3 > Клонируем и управляем |
Автор: GRESHNIK512 6.8.2015, 19:03 |
Собственно есть кораблик от него при нажатий кнопки создается пулька. function Pt(){ Br_1=Br_1-EP; patr = new Patr(); addChild(patr); patr.x=sh_2.x+50 *Math.cos©; patr.y=sh_2.y+50 *Math.sin©; ra[q]=C; q=q+1; } Далее через обработчик событий в теле: patr.addEventListener(Event.ENTER_FRAME,patr_p); Переходим на функцию function patr_p (p:Event) { var PATR:MovieClip = p.currentTarget as MovieClip; PATR.x += 1.1* Math.cos(ra[q-1]); PATR.y += 1.1* Math.sin(ra[q-1]); if(PATR.x > 850) {PATR.x = -50;} if(PATR.x < -50) {PATR.x = 850;} if(PATR.y < -50) {PATR.y = 650;} if(PATR.y > 650) {PATR.y = -50;} } Проблема в том что запуская новую пульку все пульки меняют направление на последнюю может знает кто как сделать пулькам индивидуальную скорость т к направление я передаю в массив "ra" через q Пишите все соображения Кто хочет потестить как летит пулька J + WASD и постреляться жмите L мышку и WASD щиток Y |
Автор: GRESHNIK512 9.8.2015, 20:00 |
После мозгового штурма все таки нашел решение, осталось додумать как передать направление из основного фала в Patr.as(Класс) не забываем в главном файле выставить импорт :" import Patr.*; " Patr.as package { import flash.display.MovieClip; import flash.events.Event; public class Patr extends MovieClip { private var k:int; public function Patr() {this.addEventListener(Event.ENTER_FRAME, onEnter);} private function onEnter(e:Event):void{ ++k; trace(k); if (k<100){ this.x += 1.1* Math.cos(5); this.y += 1.1* Math.sin(5); } if (k>100) { this.x += 1.1* Math.cos(2); this.y += 1.1* Math.sin(2); } } }} Запуская главный файл пулька летит сначала вверх k продолжает наростать и когда равняется 100 меняет направление при запуске новой пульки предыдущая не меняет свое направление )) function patr_p (p:Event) { var Pa = p.target ; if ((Pa.x > sh_1.x-15) && (Pa.x < sh_1.x+15) && (Pa.y > sh_1.y-20) && (Pa.y < sh_1.y+20)) { Xhp -=DP; Pa.removeEventListener(Event.ENTER_FRAME,patr_p); removeChild(Pa); } if (Pa.x > 850) {Pa.x = -50;} if (Pa.x < -50) {Pa.x = 850;} if (Pa.y < -50) {Pa.y = 650;} if (Pa.y > 650) {Pa.y = -50;} } function Pt(){ Br_1=Br_1-EP; var patr:Patr = new Patr(); patr.x=sh_2.x+50 *Math.cos©; patr.y=sh_2.y+50 *Math.sin©; addChild(patr); ra[q]=C; q=q+1; patr.addEventListener(Event.ENTER_FRAME,patr_p); } Хоть чуточку начал понимать классы ) |