Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с функцией с Math.cos(this.a) и Math.sin(this.a) (http://www.flasher.ru/forum/showthread.php?t=169361)

yo3o 03.10.2011 17:33

Проблема с функцией с Math.cos(this.a) и Math.sin(this.a)
 
Проблема с функцией с Math.cos(this.a) и Math.sin(this.a)

функция нормально работает если в ней нету Math.cos(this.a) и Math.sin(this.a) но они мне нужны для того что-бы пыля летела в нужное направления! код очень маленький! помогите мне! во код:
Код:

var lev:Number = 1;
var bulletSpeed:Number = 35;

function NewMyBullet(event:Event):void
{
++lev;
var NewR4: MovieClip = new bulletAvtomat();
this.addChild(NewR4)
NewR4.x = Hero.x;
NewR4.y = Hero.y;
NewR4.addEventListener(Event.ENTER_FRAME, NewMyBulletonEnterFrame);
NewR4.rotation = Hero.rotation;
NewR4.a = NewR4.rotation / 180 * 3.14159265359;
function NewMyBulletonEnterFrame(event:Event){
        event.target.x = event.target.x + bulletSpeed * Math.cos(this.a);
        event.target.y = event.target.y + bulletSpeed * Math.sin(this.a);
               
        //event.target.x = event.target.x + bulletSpeed;
        //event.target.y = event.target.y + bulletSpeed;
};};


derhab 03.10.2011 17:44

а что за this.a? у вас вычисляется NewR4.a

yo3o 03.10.2011 17:45

тему в топку! решения
Код:

Math.cos(event.target.a)
Добавлено через 51 минуту
Блин еще одна проблема! как мне удалить эти пули если их Х больше 350 пробывал так но не работает =(
Код :
Код:

function NewMyBulletonEnterFrame(event:Event)//она же и есть листенер
{
  event.target.x = event.target.x + bulletSpeed * Math.cos(event.target.a);
  event.target.y = event.target.y + bulletSpeed * Math.sin(event.target.a);

  if (event.target.x > 350){trace("1111111111111");removeChild(this)};
};


derhab 03.10.2011 19:04

опять this)

yo3o 03.10.2011 19:09

вот так работает но выдает ошибку! removeChild(NewR4)

Код:

ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
        at flash.display::DisplayObjectContainer/removeChild()
        at MethodInfo-230()


in4core 03.10.2011 19:26

Код AS3:

removeChild(event.target)

не ?

yo3o 03.10.2011 19:34

не=) вот решение:
Код:

        if (event.target.x > 450){
                removeChild(NewR4)
                NewR4.removeEventListener(Event.ENTER_FRAME, NewMyBulletonEnterFrame);
        };


toFL 03.10.2011 19:53

Код AS3:

removeChild(event.target)

Цитата:

не=)
Забавно.

yo3o 03.10.2011 19:54

блинблинблин все ровно периодически выскакивает это ошибка! что делать?

Inet_PC 03.10.2011 20:05

Не писать в кадрах, не?
Код AS3:

if (NewR4.parent) removeChild(NewR4);



Часовой пояс GMT +4, время: 10:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.