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.
}
也不确定为什么你有两个子弹变量,一个就可以了。
我是 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.
}
也不确定为什么你有两个子弹变量,一个就可以了。