我正在创建一个小游戏,只是为了获得Action Script 3.0的更多经验。 我想要的是:
如果你开枪。子弹击中了。比上面的文字要-20 .. 说它有100(健康)。我们打了。它将显示80.第二次打60等。
这就是我所拥有的,但似乎没有成功。
var a;
var b;
a = 100;
b = 20;
Health.text = a
//-------- This above part works.
//After adding the part under here. The whole 'Game' doesnt work.
if (kogel.hitTestObject(baws)) //Kogel=bullet. Baws=target
{
Health.text = -b
}
这是整个代码; $
var geweer; //poppetje in de instance name voor je object die je wilt bewegen.
var ster:Star;
var omhoog;
var omlaag;
var a;
var b;
a = 100;
b = 20;
Health.text = a
stage.addEventListener(KeyboardEvent.KEY_DOWN,beweeg);
function beweeg(event:KeyboardEvent)
{
switch(event.keyCode)
{
case 38:
geweer.y = geweer.y -10;
//kogel.y = kogel.y -10;
break;
case 40:
geweer.y = geweer.y +10;
//kogel.y = kogel.y +10;
break;
case 32:
kogel = new Star();
addChild(kogel);
kogel.y = geweer.y
kogel.x = geweer.x
}
}
stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
function enterFrameHandler(event:Event)
{
kogel.x = kogel.x + 5
}
if (kogel.hitTestObject(baws))
{
Health.text = -b
}
谢谢,
列维
答案 0 :(得分:0)
也许这会更好用
if (kogel.hitTestObject(baws)) //Kogel=bullet. Baws=target
{
a -= b;
Health.text = a;
}
答案 1 :(得分:0)
免责声明:我不是AS 3.0编码器,但许多命令式语言都使用 类似的任务原则。
看起来你只是将文本分配到-20。你应该做的是
Health.text = Health.text - b
或
Health.text -= b