Форум 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)
-   -   Проблема hittest клипов. Или что такое _root[name]? (http://www.flasher.ru/forum/showthread.php?t=103873)

Musatoff 14.11.2007 15:01

Проблема hittest клипов. Или что такое _root[name]?
 
Привет всем! такая ситуация. Делаю для себя что-то типа игры, в которой танк выпускает шарики при нажатии на кнопку. Вот код:

Код:

stop();
speed = 5;
depth = 0;
depth1 = 1;
root.onMouseDown = function() {
        angle = ball._rotation;
        angle = angle*Math.PI/180;
        ball.gotoAndPlay(2)
        ++depth;
        txtShoots.text = depth
        //var loh:Array = new Array(1,2,3,4,5)
        //var popa = loh[kuka]
        name = "pula"+depth;
        var num:Number = random(4)+1;
        var newname = "pula"+num;
        updateAfterEvent();
        _root.attachMovie(newname,name,depth);
        _root[name]._x = ball._x+nose*Math.cos(angle);
        _root[name]._y = ball._y+nose*Math.sin(angle);
        _root[name].xmov = speed*Math.cos(angle);
        _root[name].ymov = speed*Math.sin(angle);
        _root[name].onEnterFrame = function() {
                this._x += this.xmov;
                this._y += this.ymov;
                if (this._x>390) {
                        this.xmov *= -1;
                        this._alpha -= 15;
                }
                if (this._x<10) {
                        this.xmov *= -1;
                        this._alpha -= 15;
                }
                if (this._y>490) {
                        this.ymov *= -1;
                        this._alpha -= 15;
                }
                if (this._y<105) {
                        this.ymov *= -1;
                        this._alpha -= 15;
                }
                if (this._alpha<20) {
                        removeMovieClip(this);
                }
                if (ball.hitTest(this._x, this._y, true)) {
                        ++depth1;
                        var crash = "bang"+depth1;
                        this.attachMovie("bang",crash,depth1);
                        this.crash._x = this._x;
                        this.crash._y = this._y;
                        crash.gotoAndPlay(2);
                        this.gotoAndPlay(2);
                        this._alpha = 100;
                        delete this.onEnterFrame;
                        txtCrashes.text = depth1;
                }

Так вот он выпускает шарики которые называет последовательно pula1, pula2 и т.д.

Столкновения с самим танком работает, со стенами тоже. НО! никак не получается сделать hittest между пулями. :(
Все перепробовал... может просто я не понимаю как и что такое _root[name].
Просто если бы это была просто переменная например равная ("pula"+depth) то можно было бы еще попытаться.

Мой мозг начинает ломаться... :) :) :)

iNils 14.11.2007 15:16

Для оформления своего кода, надо использовать теги [code][/code].
_root[name] это путь к клипу
Например _root.pula1

Musatoff 14.11.2007 15:22

спс. понял. Но потом после кода, например если написать trace("pula"+depth._x) то выдает "pulaundefined" в OUTPUT. вот в этом то и загвоздка, что он так просто не распознает это дело..

iNils 14.11.2007 15:34

А что должно быть по вашему?:)

CrazyFlasher 14.11.2007 15:36

Код:

trace(_root["pula"+depth]._x)

Musatoff 14.11.2007 15:36

ну _x клипа, котрый pula1, pula2 и.т.д.

СПАСИБО! пробовал такое, видимо ошибся где-то
а вопрос про реализацию столкновения можете подсказать?\
просто они же все разные, и прибавляются еще и еще новые с новым кликом.
Я думал что сделать переменную, например "123" которая меньше на один depth. и если pula_depth сталкивается с 123, то типа событие происходит. Правильно ли это? не работает....

iNils 14.11.2007 16:43

Musatoff, без "ну помогите", это не служба поддержки, будет у людей время и до вас доберутся.

Musatoff 14.11.2007 16:53

thanks


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

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