我做了一些碰撞if语句,但他们没有工作。如何制作代码在C#中等待几毫秒?
birdbox3.X += 5;
birdbox3.Y -= 5;
if (birdbox3.Intersects(Banner1)) {
birdbox3.Y += 10;
}
else if (birdbox3.Intersects(Banner2)) {
birdbox3.Y = -birdbox3.Y; }
因此,如果我们采取第一条语句,该框最初在左下角。根据我的代码,理想情况下,在我的游戏中,一旦它达到极限顶部的横幅,它应该向右下移,因此X和Y位置都会增加,理想情况下会正确地向上+。但是,会发生什么呢是真正快速的反弹,在调试之后,我意识到它永远陷入第一次,如果它碰撞2次,将Y恢复到初始运动,第三次碰撞,并且完成过程并结束。
这给我们带来了一个问题,我该如何让Update代码运行得慢一点,或者在半秒钟之后或者这样的过程中,所以当它运行时,它不会误解冲突?非常感谢!
你可以使用Thread.Sleep() – Jamaxack 2015-03-02 05:27:35
@Jamaxack Nope,会冻结游戏的线程。我认为每次更新对象时都不想锁定游戏。把它想象成冻结一个winform/WPF应用程序中的UI。 – 2015-03-02 05:45:07