網路教學(e-Learning)校園社群(e-Community)服務台(e-Service)系所班網(e-Class)登入
2012.11.20腳色攻擊(頭頂腳踩)
by 高鈺婷 2012-11-20 14:39:04, 回應(0), 人氣(485)

import flash.display.MovieClip;
import flash.events.KeyboardEvent;
import flash.events.Event;

var emy1 :MovieClip = new emy();
var emy2 :MovieClip = new emy();

var flag :String = "falling";
var mov :String = "";
var twokey :Boolean = false;

var g :int = 3;
var dy  :int  = 0;
var plySpd :int = 8;
var emy1die :Boolean = false;
var emydy :int =-20;

player.stop();
stage.addChild(emy1);
stage.addChild(emy2);
stage.setChildIndex(emy2,0);

init(1);
init(2);
function init(i:int)
{
 this["emy"+i].x = Math.floor(Math.random()*450)+50;
 this["emy"+i].y = i *225-135;
 this["emy"+i].death = false;
 this["emy"+i].gotoAndStop(1);
}
//kdown
stage.addEventListener(KeyboardEvent.KEY_DOWN,kdown);
function kdown(e:KeyboardEvent)
{
 if(e.keyCode == 32 && flag == "landing")
 {
  dy =-30;
  flag = "jumping";
 }
 else if(e.keyCode == 37)
   {
    if(mov == "R")
     twokey = true;
     mov = "L"; 
   }
   else if(e.keyCode == 39)
    {
     if(mov == "L")
      twokey = true;
      mov = "R";
    }
}
//kup
stage.addEventListener(KeyboardEvent.KEY_UP,kup);
function kup(e:KeyboardEvent)
{
 if(e.keyCode == 37)
 {
  if(twokey  == true)
   {
    mov = "R";
    twokey = false;
   }
  else
   mov= "";
   player.stop();
   
 }
 else if (e.keyCode == 39)
  {
   if(twokey == true)
   {
    mov = "L";
    twokey = false;
   }
   else
    mov = "";
    player.stop();
  }
}
//enterframe-loop
stage.addEventListener(Event.ENTER_FRAME,loop);
function loop(e:Event)
{
 player.y += dy ;
 
 if (flag== "jumping")
  {
   dy += g;
   if(player.hitTestObject(emy1))
    emy1die = true;
   if(dy >= 0)
          flag = "falling";
  }
  else if (flag == "falling")
   {
    dy += g;
    if(player.hitTestObject(emy2))
    {
     emy2.play();
     player.y -= 30;
     dy = 0;
    }
   }
   
   if(player.hitTestObject(ground))
   {
    player.y = 285;
    dy =  0;
    flag = "landing";
   }
   
   if(mov == "R" && player.x < 520)
   {
    player.scaleX = 0.63;
    player.play();
    player.x += plySpd;
   }
   else if (mov == "L" && player.x > 30)
   {
    player.scaleX = -0.63;
    player.play();
    player.x -= plySpd;
   }
   
   if(emy1die == true)
   {
    emy1.y += emydy;
    emydy += g;
    emy1.x += 10;
    if(emy1.y > 500)
    {
     emydy = -20;
     emy1die = false;
     init(1);
    }
   }
   if(emy2.death == true)
   init(2);
}