Показать сообщение отдельно
Старый 17.04.2015, 08:28
бакуард вне форума Посмотреть профиль Отправить личное сообщение для бакуард Найти все сообщения от бакуард
  № 3  
Ответить с цитированием
бакуард

Регистрация: Mar 2015
Сообщений: 64
Извиняюсь, сразу ответить не получилось. Вот код:

Код AS3:
//враг и его деятельность
var countAtack:Number = 0;//для замены таймера при подсчете потерь энергии героя при контакте с врагом
var count:Number = 0;//для замены таймера при подсчете потерь энергии врага при контакте с героем
var distanceXYe:Number;//значение расстояния (враг - герой)
var speedEnemy:Boolean;//разрешаем(или запрещаем) перемещение врага
var strongEnemy:Number;//уровень атаки врага (задается случайно)
var healthEnemy:Number;//уровень защиты врага (задается случайно)
var speedXYe:int = 1.2;//скорость врага
var lifeEnemy:uint;//энергия(жизни) врага
function f_enemyAppeared () {
	//добавление врага на сцену
	var enemy:Enemy = new Enemy();
	enemy.x = Math.floor(Math.random() * 400 + 30 );
	enemy.y = Math.floor(Math.random() * 400 + 30 );
	this.lifeEnemy = Math.floor(Math.random() * 22);
	this.strongEnemy = Math.floor(Math.random()*10) + 1;
	this.healthEnemy = Math.floor(Math.random()*10) + 1;
        addChild(enemy);
	//перемещение врага
	enemy.addEventListener(Event.ENTER_FRAME, f_enemyGo);
	function f_enemyGo (e:Event) {
	var enemy:MovieClip = e.currentTarget as MovieClip;
	var distanceXe = hero.x - enemy.x;
	var distanceYe = hero.y - enemy.y;
	var distanceXYe = Math.sqrt(distanceXe*distanceXe + distanceYe*distanceYe);
	var speedXe = speedXYe * distanceXe/distanceXYe;
	var speedYe = speedXYe * distanceYe/distanceXYe;
	if(distanceXYe < 10){
		speedEnemy = false;
	}else{
		speedEnemy = true;
	}
	if(speedEnemy == true){
	   enemy.x += speedXe;
	   enemy.y += speedYe;
	}
	//если у врага кончились жизни или наступил день - удалим его
	    if(day == true || lifeEnemy <= 0){
	       removeChild(enemy);
	       enemy.removeEventListener(Event.ENTER_FRAME, f_enemyGo);
	    }
	//враг атакует
	    if(distanceXYe < 15 && ++countAtack%40 == 0){
		    lifeHero -= strongEnemy/healthHero;
	    }
	//враг получает урон слева
	   if(distanceXYe < 10 && enemy.x <= hero.x && ++count%10 ==0 && heroBeatLeft == true){
			lifeEnemy -= strongHero/healthEnemy;
	   }
	//враг получает урон справа
	   if(distanceXYe < 10 && enemy.x >= hero.x && ++count%10 ==0 && heroBeatRight == true){
		    lifeEnemy -= strongHero/healthEnemy;
	   }
	//анимация жизней врага
	  enemy.gotoAndPlay(Math.floor(11 - lifeEnemy));
    }
}
Да, забыл еще об одном написать: Когда я атакую врага жизни теряют все враги на сцене.