如何在 CS6 AS2 中创建速度提升?
Posted
技术标签:
【中文标题】如何在 CS6 AS2 中创建速度提升?【英文标题】:How do I create a speed boost in 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 并重新做整个东西。
我计划稍后添加某种加电功能,这将限制你可以使用加速的次数,但现在,我首先想确保我的游戏实际上能够使用加速多次。
到目前为止,我在编码方面遇到的实际问题是,每当我现在按下“增强”按钮时,它确实会提高速度。但是,它保持在提高的速度,并且永远不会自行返回。并且由于某种原因,每当我在已经提升的情况下再次按下“提升”按钮时,它都会恢复到原始速度。就好像“增强”按钮正在用作增强的激活和停用按钮,但我不知道为什么以及我的代码的哪一部分导致了这种情况。
非常感谢您提供的任何帮助!
【问题讨论】:
【参考方案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
【讨论】:
以上是关于如何在 CS6 AS2 中创建速度提升?的主要内容,如果未能解决你的问题,请参考以下文章
如何创建由 xml 文件驱动的 Adobe Flash cs6 Actionscript 3 rtmp 视频播放器?