Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Стрельба. (http://www.flasher.ru/forum/showthread.php?t=75043)

UrbanMan 03.02.2006 13:14

Стрельба.
 
У меня проблема. Есть рокета которая крутиться вокруг своей оси и стреляет очередью. Проблема состоит в том что когда я кручусь, пули тоже начинают крутиться и менять траекторию.
Вот код:
Код:

_root.onEnterFrame = function() {
        wspeed = 9.2;
        if (Key.isDown(Key.SHIFT)) {
                zzz++;
                if (zzz>4) {
                        _root.attachMovie("gun", "gun1"+i, i);
                        _root["gun1"+i]._rotation = _root.rocket._rotation;
                        _root["gun1"+i]._x = _root.rocket._x;
                        _root["gun1"+i]._y = _root.rocket._y;
                        zzz = 0;
                        _root["gun1"+i].onEnterFrame = function() {
                                this._x += -wspeed*Math.cos(Math.PI/180*_root.rocket._rotation);
                                this._y += -wspeed*Math.sin(Math.PI/180*_root.rocket._rotation);
                        };
                }
        }
        i++;
};

Пример стрельбы я взял на этом форуме, но что интересно как только я хочу сменить "Gun" на что нибудь другое код перестает работать. Я всё проверял не фигурирует ли "Gun" где нибудь ещё, везде всё менял и название в библиотеки и в самом коде, не помогает. :confused:

Ekzi 03.02.2006 15:35

Цитата:

Есть рокета которая крутиться
А что такое рОкета? :)
Цитата:

как только я хочу сменить "Gun" на что нибудь другое код перестает работать
А ты пробовал менять имя клипа не в библиотеке а в свойствах клипа???

Kyber Anton 03.02.2006 17:06

У тебя КАЖДЫЙ кадр берётся _root.rocket._rotation, чтобы вычислить синус.
Нужно обратиться к этому свойству только ОДИН РАЗ. Например,

_root.attachMovie("gun", "gun1"+i, i);
_root["gun1"+i]._rotation = _root.rocket._rotation;
_root["gun1"+i]._x = _root.rocket._x;
_root["gun1"+i]._y = _root.rocket._y;
_root["gun1"+i].xmov = -wspeed*Math.cos(Math.PI/180*_root.rocket._rotation);
_root["gun1"+i].ymov = -wspeed*Math.sin(Math.PI/180*_root.rocket._rotation);
zzz = 0;
_root["gun1"+i].onEnterFrame = function() {
this._x += this.xmov;
this._y += this.ymov.
};

Вообще, если надо, напиши в личку, я-то всякую стрельбу делал.

UrbanMan 03.02.2006 18:43

Цитата:

Сообщение от Kyber Anton
У тебя КАЖДЫЙ кадр берётся _root.rocket._rotation, чтобы вычислить синус.
Нужно обратиться к этому свойству только ОДИН РАЗ. Например,

_root.attachMovie("gun", "gun1"+i, i);
_root["gun1"+i]._rotation = _root.rocket._rotation;
_root["gun1"+i]._x = _root.rocket._x;
_root["gun1"+i]._y = _root.rocket._y;
_root["gun1"+i].xmov = -wspeed*Math.cos(Math.PI/180*_root.rocket._rotation);
_root["gun1"+i].ymov = -wspeed*Math.sin(Math.PI/180*_root.rocket._rotation);
zzz = 0;
_root["gun1"+i].onEnterFrame = function() {
this._x += this.xmov;
this._y += this.ymov.
};

Вообще, если надо, напиши в личку, я-то всякую стрельбу делал.

Спасибо большое, всё работает


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

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