我是ActionScript 3.0的新手,我正在制作一款射击游戏。我的问题是关于重装枪,当然当弹药达到0时,你必须重装。按'R'后,子弹文本会返回到12,但是当我单击鼠标时,它将再次返回到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);
}
}
提前致谢!
答案 0 :(得分:0)
在按下'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.
}
也不确定为什么你有两个子弹变量就可以了。