1

我正在尝试制作一个游戏,其中一个按钮被点击,一个健康栏的 45 个健康点下降。我有我所有的编码,它运行良好,但我想制作按钮,以便如果健康低于 45,则不会从健康栏中获取任何内容。我尝试使用:

if(health < 45) health = health;

但它没有成功。我觉得解决这个问题很容易,但我就是想不通。显然,我对这一切都很陌生,仍然很难理解一些概念。这是我的编码:

fortyfivedown_btn.addEventListener(MouseEvent.CLICK, fortyfivedownClick);

    var health:int = 100;

    lifebar.gotoAndStop(101);

    function fortyfivedownClick(event:MouseEvent):void{
        health -= 45;
        if(health < 0) health = 0;
        else if(health > 100) health = 100;

        lifebar.gotoAndStop(health + 1);
    }
4

4 回答 4

1

如果健康值小于或等于 45,干脆什么都不做有什么问题吗?例如,像这样:

function fortyfivedownClick(event:MouseEvent):void {
    if (health <= 45) {
        return;
    }
    // Perform action
}

如果玩家没有足够的生命值,这将导致函数提前退出。

于 2012-07-16T08:29:40.477 回答
0

如果我理解这个问题:

if(health>=45) // just add this
    lifebar.gotoAndStop(health + 1);
于 2012-07-16T08:34:23.987 回答
0

实际上它非常简单,您的事件告诉您的健康下降 45,然后检查健康是否低于 0,您只需要在方法开始时检查您有多少健康,如果是则跳出方法45或以下。

不知道“break”是否在 Flash 中有效,但这将是最简单的解决方案

例如:

function fortyfivedownClick(event:MouseEvent):void{
    if (health <= 45) {
        break;
    }
    health -= 45;
    if(health < 0) health = 0;
    else if(health > 100) health = 100;
    lifebar.gotoAndStop(health + 1);
    }
于 2012-07-16T08:34:57.223 回答
0

使用 Math.max 方法。IT 非常方便的地方,比如价值规范化。

function fortyfivedownClick(event:MouseEvent):void{
   health = Math.max( 45, health -= 45 );
}
于 2012-07-16T09:19:46.587 回答