在Actionscript 3中有条件地向实体添加实体

时间:2016-04-02 21:44:52

标签: actionscript-3 flash actionscript

我对动作脚本3非常陌生,只是通过YouTube学习了基本的编码。无论如何,我使用FlashPunk来缓解疼痛,它似乎有用的工具。

在扩展World类的我的Level中,构造函数添加了两个实体:Player和Enemy,然后玩游戏并执行操作。我希望能够添加Enemy实体的其他实例,或者使用键输入删除并重新添加播放器(以便重置健康状况和位置)。如果我在Main.as中尝试以下内容

Input.define("Reset", Key.R);

后面是Level.as中的以下内容

    public function Level() 
    {
        if (Input.pressed("Reset"))
        {
            add(new Enemy());
            add(new Player());
        }
    }

很多事情都没有发生,直觉上我认为应该有效。在生成实体的实例时,我是否遗漏了某些内容?

1 个答案:

答案 0 :(得分:0)

我找到了自己的解决方案,但我仍然很想知道其他人会如何做同样的事情。 当我使用FlashPunk库时,我可以访问补间。我的游戏以60 FPS的速度运行,所以我在这个级别上使用了一个.0167的时间来检查每帧按键一次。代码如下,从类开始。

    public class Level extends World
{

    public function Level() 
    {
        var resetCheck:Tween = new Tween(.0167, Tween.LOOPING, reset);
        addTween(resetCheck,true)
        trace("World init");            
    }
    public function reset()
    {
        if (Input.pressed("Reset"))
        {
            removeAll();
            add(new Player());
            add(new Enemy());
            trace("RESET!!!");
        }
        if (Input.pressed("Spawn Enemy"))
        {
            add(new Enemy());
        }
    }

}