ActionScript 3 - 重装弹药

ActionScript 3 - Reloading Ammo

我是 ActionScript 3.0 的新手,我正在创建一款射击游戏。我的问题是关于给枪装弹,当然当弹药到0时,你必须重新装弹。按 'R' 后,项目符号文本返回到 12,但是当我单击鼠标时,它将再次 return 变为 0。

import flash.events.MouseEvent;
import flash.events.KeyboardEvent;

var bulletCount:int = 13;
var bullets:int = 12;
var bulletEmpty:int = 0;

stage.addEventListener(MouseEvent.CLICK, bulletcount);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);

function bulletcount(evt:MouseEvent):void
{
    bulletCount--;
    Bullet1.text = String(bulletCount);

    if(bulletCount <= 0)
    {
        stopcount();
    }
}

function stopcount():void
{
    Bullet1.text = String(bulletEmpty);
}

function keyDownHandler(evt:KeyboardEvent):void
{
    if(evt.keyCode == 82) 
    {
    //Reload (using key 'R')
    Bullet1.text = String(bullets);
    }
}

提前致谢!

之所以在按 'R' 后项目符号文本变回 12,是因为该值 bullets 未在任何地方更改。它总是会显示 12,因为这是您为其分配的值。

当您单击鼠标时,它返回 0 的原因是因为 bulletCount 变量在鼠标事件中递减后现在为 0:

 bulletCount--;
Bullet1.text = String(bulletCount);

if(bulletCount <= 0)
{
    stopcount();  //bulletCount is now going to equal 0
}

要解决此问题,请将其添加到 if 语句中或重新加载的任何位置

if(bulletCount <= 0)
{
    stopcount();
    bulletCount += 12; // add the value back to the variable.
}

也不确定为什么你有两个子弹变量,一个就可以了。