-1

您好,我是 ActionScript 3.0 的新手,我真的需要一些帮助:P 我正在尝试制作一个计时(?)游戏。基本上,这个生命值应该是随机衰减的,当生命值达到 1000 时,播放它的人必须单击一个按钮。

当我单击按钮时,我已经设法制作了健康栏并使其下降,但是我如何制作它以使健康栏随着时间的推移而衰减?

最大生命值为 10000,我希望生命值每 0.1 秒下降 80~90(随机)?

这是到目前为止我所做的代码

var maxHP:int = 10000;
var currentHP:int = maxHP;
var percentHP:Number = currentHP / maxHP;
var randNum:Number=Math.floor(Math.random()*1000)+900;

function updateHealthBar():void
{
percentHP = currentHP / maxHP;
healthBar.barColor.scaleX = percentHP;
}

function attackHealth():void
{
for(currentHP = maxHP; currentHP > 0; currentHP-= 1)
{
    updateHealthBar();
}
}

attackButton.addEventListener(MouseEvent.CLICK, attackButtonClicked);

function attackButtonClicked(e:MouseEvent):void
{
currentHP -= 800;
if(currentHP <= 0)
{
    currentHP = 0;
    trace("You died! :P");
}
setInterval(attackHealth, 500);
updateHealthBar();

}
4

1 回答 1

0

您可以使用计时器

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

//it will trigger every 100ms and keep repeats indefinitely
 var t:Timer = new Timer(100);
 t.addEventListener(TimerEvent.TIMER, onTimer);


  private function onTimer(event:TimerEvent):void {
       var damage:int = 80 + int(Math.random()*11); //[80, 90]

       //do something with damage

  }
于 2013-10-26T12:40:18.693 回答