【问题标题】:How do I create a speed boost in CS6 AS2?如何在 CS6 AS2 中创建速度提升?
【发布时间】:2015-06-22 01:14:41
【问题描述】:

我正在使用带有 AS2 的 Flash CS6。

我在高中的游戏设计课上学习了一些基本的编码。我目前正在尝试在您按下换档按钮时添加“速度提升”功能。你应该能够按下它,这会给你 5 秒的速度提升。在这 5 秒后,您将恢复正常速度。这些是我所做的变量:

    speed = 6;
    boost = 16;
    boost_timer = 0;

我已将速度设置为 6,并且我将 16(Shift 键的 ASCII 代码)称为“加速”。当我在主代码中调用它时,我还添加了一个计时器,让嘘声计数到 5 秒。这里是那部分代码:

    if(Key.isDown(boost))
    {
        speed = 0;
        boost_timer++;
        speed = 12
    }

-

    if(boost_timer >= 5)
    {
        boost_timer = 0;
        speed = 6;
    }

现在,我在这里尝试做的是,当我按下“boost”时,它会将我的“boost_timer”设置为 0(这仅在它尚未为 0 时才重要)。然后,它将开始增加我的“boost_timer”并将我的“速度”设置为原始速度的两倍。

在第二段代码中,我将它设置为一旦达到 5,它应该将计时器设置回 0。但是,因为“boost_timer++”已经设置,即使它被设置回 0,它仍然会增加。但是,即使它达到 5,它也会简单地重新启动计时器并继续将速度重置为 6。下次我按下“boost”按钮时,它应该将“boost_timer”设置回 0 并重新做整个东西。

我计划稍后添加某种加电功能,这将限制你可以使用加速的次数,但现在,我首先想确保我的游戏实际上能够使用加速多次。

到目前为止,我在编码方面遇到的实际问题是,每当我现在按下“增强”按钮时,它确实会提高速度。但是,它保持在提高的速度,并且永远不会自行返回。并且由于某种原因,每当我在已经提升的情况下再次按下“提升”按钮时,它都会恢复到原始速度。就好像“增强”按钮正在用作增强的激活和停用按钮,但我不知道为什么以及我的代码的哪一部分导致了这种情况。

非常感谢您提供的任何帮助!

【问题讨论】:

    标签: performance timer actionscript-2 flash-cs6


    【解决方案1】:

    newgrounds为你找到答案:

    If you just want to test if the key isnt pressed at the time, just use:
    if(Key.isDown(Key.UP) == false)
    or
    if(!Key.isDown(Key.UP))
    

    但是,如果您只想测试钥匙被抬起的确切点,则必须使用闩锁系统:

    if(Key.isDown(Key.UP)){
        latch = true;
    }
    if(!Key.isDown(Key.UP) && latch){
        latch = false;
        // put your actions here
    }
    

    你可以看到只有 !Key.isDown(Key.UP) && 在按键被按下后锁存一次,所以它会执行动作,然后 将等到按键被按下然后再次释放以执行 再次行动。

    您可能应该在键被抬起的地方运行一些功能,以降低速度并存储速度提升剩余值。

    这个锁存器变量也应该在每一帧之前没有更多函数的地方设置为假,所以在事件程序进入下一帧后,它的值为假


    嗯!已经为此创建了事件监听器:adobeMX

    【讨论】:

      猜你喜欢
      • 2020-07-21
      • 1970-01-01
      • 2011-05-14
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      相关资源
      最近更新 更多