我曾尝试翻译(移动)画布,但我遇到了计时器问题。
我尝试了两种不同的方法:
第一种方法是BeginAnimation
函数,第二种方法是DispatcherTimer
刻度,但它们都非常不可靠。
我需要监控翻译的每一步。使用我尝试的第一种方法 ( BeginAnimation
),我在Changed
事件中执行了碰撞检测逻辑,而使用第二种方法 ( DispatcherTimer
),我在Tick
计时器事件中执行了碰撞检测逻辑。
问题是两者都非常不可靠。从某种意义上说,在我的碰撞检测逻辑中,画布应该在其属性 <= 0 时停止平移TranslateTransform
(Y
从技术上讲,如果它正在监视每一步,它应该每次都停在 0 处),但是我尝试了两种方法,它停止时会发生变化。例如,有时它停在 0 处,有时停在 -1、-2、-3 处,有时甚至停在 -4 处。
那么这些差异是怎么回事?为什么它不像它应该的那样监控每一步?
我可以做些什么来为这个画布设置动画并真正监控每一步?我的意思是每一步......它移动的每一个像素