AS 3学习书上的例子,勇士斗恶龙

放在第一帧测试:

import flash.utils.Timer;
import flash.events.TimerEvent;

//创建英雄
var hero:Object=new Object();
//创建恶龙
var monster:Object=new Object();
//英雄的属性
hero.name="勇者";
hero.HP=500;
hero.ATT=90;
hero.DEF=88;
hero.AGI=60;
hero.skill1="普通攻击";
hero.skill2="飞刃闪";
hero.skill3="极光剑";

//恶龙的属性
monster.name="恶龙";
monster.HP=1000;
monster.ATT=120;
monster.DEF=100;
monster.AGI=22;
monster.skill1="攻击";
monster.skill2="龙尾击";
monster.skill3="毁灭光线";

//创建周期10001ms的计时器
var timer:Timer=new Timer(1000);
//监听计时器并执行函数
timer.addEventListener(TimerEvent.TIMER,round);
//启动计时器
timer.start();
//为后面防守和攻击对象进行赋值
function whoAttack(a:Object,b:Object):Array
{
 if(a.AGI*Math.random()>b.AGI*Math.random())
 {return [a,b];}
 else
 {return [b,a];}
 }
function round(e:TimerEvent):void
{
 var damage:Number;
 var skillindex:uint;
 var roundFight:Array=whoAttack(hero,monster);
 var attacker:Object=roundFight[0];
 var defender:Object=roundFight[1];
 //随机获得伤害值
 damage=attacker.ATT*Math.random()-defender.DEF*Math.random();
 if(damage<=0)
 {
  //伤害值不能是负数
  damage=0;
  }
  else{
  //保证伤害值是整数
   damage=Math.ceil(damage);
   }
 //防守方的血少了伤害值
 defender.HP-=damage;
 //获得攻击招式
 if(damage  {
  skillindex=1;
  }
 else if(damage  {
  skillindex=2;
  }
 else
 {
  skillindex=3;
  }
 trace(attacker.name+"向"+defender.name+"发动了"+attacker["skill"+skillindex]+","+defender.name+"损失了"+damage+"点HP!");
 if(defender.HP<=0)
 {
  trace(defender.name+"终于支持不住,倒下了!/n"+attacker.name+"获得胜利!/n"+"GAME OVER");
  timer.removeEventListener(TimerEvent.TIMER,round);
  return;
  }
 trace(hero.name+"HP:"+hero.HP+","+monster.name+"HP:"+monster.HP+"/n");
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值