import flash.display.MovieClip;
import flash.events.Event;
import flash.events.KeyboardEvent;
var enemy:MovieClip = new emy();
var attk:MovieClip = new attack();
var hp :int = 5;
var dam :int = 2; //每次損血量
var plySpd :int = 10;
var emySpd:int = 8;
var attkable:Boolean = true;
var hitable:Boolean = true;
create();
function create()
{
stage.addChild(enemy);
enemy.gotoAndPlay(1);
enemy.x = Math.floor(Math.random()*451)+50;
enemy.y = 50;
hp = 5;
enemy.addEventListener(Event.ENTER_FRAME,AI);
}
function AI(e:Event)
{
if(enemy.x + emySpd >= 500)
{
enemy.x = 500;
emySpd *= -1;
}
else
if(enemy.x + emySpd < 50)
{
enemy.x = 60;
emySpd *= -1;
}
else
enemy.x += emySpd;
}
stage.addEventListener(Event.ENTER_FRAME,loop);
function loop(e:Event)
{
if(enemy.death == true)
{
stage.removeChild(enemy);
create();
hitable = true;
}
if(attk.over == true)
{
attk.over = false;
attk.removeEventListener(Event.ENTER_FRAME,got);
stage.removeChild(attk);
attkable = true;
}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN,kdown);
function kdown(e:KeyboardEvent)
{
switch(e.keyCode)
{
case 37:
if (player.x - plySpd < 50 )
player.x = 50;
else
player.x -= plySpd;
break;
case 39:
if (player.x + plySpd > 500)
player.x = 500;
else
player.x += plySpd;
break;
case 38:
if(player.y - plySpd < 110)
player.y = 110;
else
player.y -= plySpd;
break;
case 40:
if(player.y - plySpd > 360)
player.y = 360;
else
player.y += plySpd;
break;
case 32:
if(attkable == true)
{
stage.addChild(attk);
attkable = false;
attk.x = player.x;
attk.y = player.y - player.height/2;
attk.gotoAndPlay(2);
if (hp >0)
{
hitable = true;
attk.addEventListener(Event.ENTER_FRAME,got);
}
}
}
}
function got(e:Event)
{
if (hitable == true && attk.hitTestObject(enemy))
{
hitable = false;
hp -= dam;
if(hp > 0)
enemy.play();
else
enemy.gotoAndPlay("die");
enemy.removeEventListener(Event.ENTER_FRAME,AI);
}
}