如何在c#中延迟某些内容

问题描述 投票:0回答:1

我正在研究一款可以让玩家投下炸弹的游戏。我希望炸弹在爆炸前先闪烁一秒钟,以便玩家有时间逃跑。我发现的唯一解决方案是“睡眠”,但是线程暂停时播放器无法移动,因此无法正常工作。打开新线程并使用睡眠会很愚蠢吗?可能会有多个炸弹同时爆炸的情况。我也将使用这种方法来逐渐增加炸弹爆炸时的命中范围。如果相关的话,我正在研究monogame。

c# monogame
1个回答
0
投票

我认为您在这里使用了错误的模式。

  • 您不想“等待”炸弹爆炸。
  • 您需要的是炸弹在给定的时间爆炸。

因此,在您的游戏逻辑中,当您遍历活动游戏对象的状态时,您需要检查从其产生的时间到当前时间之间的时间,然后检查是否经过了保险丝时间:

If (Now() - SpawnTime >= Fusetime) { Boom(); }

您现在甚至可以拥有更多的逻辑。 例如:如果剩余时间少于1秒,则使炸弹闪烁/发出哔哔声/晃动。或您想要的任何内容。

© www.soinside.com 2019 - 2024. All rights reserved.