Показать сообщение отдельно
Старый 12.11.2008, 14:16
Agent007 вне форума Посмотреть профиль Отправить личное сообщение для Agent007 Найти все сообщения от Agent007
  № 1  
Ответить с цитированием
Agent007

Регистрация: May 2006
Сообщений: 33
По умолчанию Проверка HitTest

Здравствуйте, помогите пожалуйста разобраться
есть класс выстрела
Код:
class Vistrel {
//Propertis
var att_mc:String;
var cel_mc:MovieClip;
var speed_vis:Number;
private var __pulanum:Number;
var value_tan_krot:Number;
var pula:MovieClip;
//Propertis

function Vistrel(p_att_mc:String, p_cel_mc:MovieClip, p_speed_vis:Number, p_pulanum:Number) { 
	this.__pulanum = p_pulanum
	att_mc = p_att_mc
	cel_mc = p_cel_mc

	_root.attachMovie(att_mc, att_mc+this.__pulanum, _root.getNextHighestDepth(), {_x:cel_mc._x, _y:cel_mc._y});
	
	pula = _root[att_mc+this.__pulanum]
	pula._rotation = cel_mc._rotation;
	pula.value_tan_krot = cel_mc._rotation;
	pula.speed_vis = p_speed_vis
	pula.onEnterFrame = function() {
	this._x -= Math.sin(Math.PI/180*(180-this.value_tan_krot))* this.speed_vis;
	this._y -= Math.cos(Math.PI/180*(180-this.value_tan_krot))* this.speed_vis;
	}
}
public function get pulanum():Number {
        return this.__pulanum;
    }
public function set pulanum(value:Number):Void {
        this.__pulanum = value;
    }


}
И во флешки

Код:
var my_array:Array = new Array();
var my_pula:MovieClip = new MovieClip;

for (var i:Number = 0; i<5; i++) {
my_array.push (_root.attachMovie('monst', 'monst'+i, _root.getNextHighestDepth(), {_x:(150*i)+50, _y:50}));
}

var mouseListener:Object = new Object(); 
mouseListener.onMouseDown = function() {
var vistrel:Vistrel = new Vistrel("pula", bash, 15, _root.getNextHighestDepth());
my_pula = vistrel.pula
////////////////////////////////////////////
_root.onEnterFrame = function() {
	len = my_array.length
	for (var j:Number = 0; j<len; j++) {
	if (my_pula.hitTest(my_array[j])) {
		vistrel.pula.removeMovieClip();
		my_array[j].removeMovieClip();
		delete this;
		my_array.sort();
		my_array.shift();
    }
	}
}
////////////////////////////////////////////
}

mouseListener.onMouseMove = function() { 
	radians = Math.atan2 (_xmouse - bash._x, _ymouse - bash._y); 
	grad = -radians * 180 / Math.PI; 
	bash._rotation = grad; 
    updateAfterEvent(); 
};
Mouse.addListener(mouseListener);
Проблема в следущем при попадании пули в цель все замечательно отрабатывает, но если выпустить две пули подряд то срабатывает последняя, почему и как это побороть? Подскажите пожалуйста
Вложения
Тип файла: rar vistr.rar (6.9 Кб, 61 просмотров)