Actionscript-3:使变量保持不变

时间:2012-07-16 08:26:33

标签: actionscript-3 flash variables

我正在尝试制作一个点击按钮的游戏,健康栏中的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 个答案:

答案 0 :(得分:1)

如果健康状况小于或等于45,根本无所事事有什么不妥吗?例如,像这样:

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

如果玩家没有足够的健康状况,这将导致该功能提前退出。

答案 1 :(得分:0)

如果我理解这个问题:

if(health>=45) // just add this
    lifebar.gotoAndStop(health + 1);

答案 2 :(得分:0)

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

不知道“破解”是否适用于闪存,但这将是最简单的解决方案

例如:

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);
    }

答案 3 :(得分:0)

使用Math.max方法。这是价值规范化的非常方便的地方。

function fortyfivedownClick(event:MouseEvent):void{
   health = Math.max( 45, health -= 45 );
}