PDA

Просмотр полной версии : дубликация


Uvnik
29.07.2005, 22:53
Вот код у патрона который должен вылетать рядом с клипом ship


onClipEvent (load) {
laserMoveSpeed = 35;
this._y = _root.rship._y+15;
this._x = _root.rship._x+53;
}
onClipEvent (enterFrame) {
this._x += laserMoveSpeed;
if (this._x>520) {
this.removeMovieClip() ;
}
}
onClipEvent (enterFrame) {
for (i=1; i<=_root.numEnemy; i++) {
if (this.hitTest(_root[ "enemy"+i])) {
_root.score += 100;
_root[ "enemy"+i].gotoAndPlay(2) ;
}
}
}

А код у того клипа(ship):

onClipEvent (load) {
maxLasers = 6;
laserCounter = 1;
depthCounter = 1;
moveSpeed = 15;
_root.laser._visible = false;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.SPACE)) {
laserCounter++;
_root.laser.duplicateMovieClip("laser"+laserCounter, laserCounter) ;
_root["laser"+laserCounter]._visible = true ;
}
}


Один патрон вылетает, но как мне сделать чтобы вылетал также патрон по имени laz и летел точно так же как и laser , но чуть выше(где то на 20 px) я пытался делать копию кода у ship и менял имена ,но втрой патрон не вылетает!Всякие там глюки.....Как мне сделать чтобы вылетало 2 патрона и они разные (laser+"i" и laz+"i") клипы???

Uvnik
31.07.2005, 15:37
Неужели ни кто не знает в чём праблы???Почему переименовывание не помогает???Работает тока с одним клипом...... :mad: http://www.smailiki.nm.ru/gru/1_8.gif

iNils
31.07.2005, 15:57
исходник лучше дай.

KidsKilla
31.07.2005, 16:31
пацаны! тут у меня сайтик http://microsoft.com, в нём ошибка, не могу разобраться, посмотрите, плз где-что? заранее спасибо! (c) не помню кто сказал...

Uvnik
31.07.2005, 22:32
Гы гы :D -7mb!Ну я упрошу и выставлю(там у меня сплошной jpg)

Uvnik
01.08.2005, 16:21
Вот.......ship3 я так упростил, потому что он такой тока с чють большей геометрией(как в ship2) весил 1.26 mb!Ship3.fla -это то что я описывал .Ship2.fla -это другой вариан ,в нем праблы что когда патроны касаютя клипа enemy то они не удаляются! :(

iNils
01.08.2005, 16:27
Общее замечание:
Все твои проблемы в том, что используешь методику 5-го флеша и раскидываешь код по всему флешу. Я насчитал у тебя 6 обработчиков enterFrame.

Код надо распологать централизованно в одном месте. Тогда легче будет отслеживать что у тебя с чем конфликтует, хотя половина конфликтов сама по себе исчезнет.

Uvnik
03.08.2005, 14:34
хотябы не знаете почему патрон не удаляется при столкновении...?

Uvnik
03.08.2005, 14:37
Кстати, я делал это по статье для 5-го флэша.....надо же...какой промох.
А как это перевести на 6-ой флэш? :( :confused:

NeZnayKa
03.08.2005, 16:56
не знаю почему ремовмовиклип не работала...
но с визибл работает как надо

Uvnik
04.08.2005, 21:56
Теперь надо ещё упростить,тоесть усложнить.Надо стоб патрон вылетал тока каждую половину секунды, а не постоянно, ну что-нибудь типа указываеш время во скоко будет вылетать,типа laserTime=0.5 ,а дальше скрипт......

Uvnik
05.08.2005, 21:16
А можно разъяснить?Вот действие а клипе

this._visible = 0;
, а как оно действует? Подобно _alpha?Тоесть не видно а хиттеситься?а если написать this._visible = false; эффект тот жэ?

iNils
06.08.2005, 02:36
А можно разъяснить?Вот действие а клипе

this._visible = 0;
, а как оно действует? Подобно _alpha?Тоесть не видно а хиттеситься?а если написать this._visible = false; эффект тот жэ?
1. _visible=false и _visible=0 одно и тоже
2. Оно лучше чем _alpha = 0, тем что графика в ней не просчитывается и поэтому требует меньше ресурсов. Но при этом также просчитывается с помощью hitTest

Uvnik
07.08.2005, 00:08
Мда.......опять облом.......ведь летящих кораблей будет много тогда можно убить один и ещё скоко нибудь невидимым потроном....хотя есть выход!Можно при сталкновении патрон выкидывать сразу за 620 по оси x,тогда патрон удалиться!Должен....

Uvnik
08.08.2005, 14:04
Тогда как должен выглядеть код что бы удалялся каждый второй патрон???
Вот исходный код

onClipEvent (load) {
laserCounter = 1;
_root.laser._visible = false;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.SPACE)) {
laserCounter++;
_root.laser.duplicateMovieClip("laser"+laserCounter, laserCounter);
_root["laser"+laserCounter]._visible = true;
}
}

Uvnik
15.08.2005, 21:33
Ладно .....думаю надо сделать функцию под именем mxlas, и типа там должно быть вроде написано то что надо
_root.laser["delCounter"].virable=0
_root.laser["delCounter"]._x=620
И они удаляться и ещё вроде надо сделать масив где будут цифры -номера лазеров которые надо удалить.....и как то всё это соединисть.....
Функции и массивы(а тем более вытаскивать от туда информацию) я делать не умею
Плиз ХЕЛП!