我对 WPF 有点陌生,刚开始研究动画,只是为了好玩,我开始创建老式游戏 Frogger(青蛙必须穿过河流/道路而不会被汽车撞到等的游戏)。
我为河流中穿过屏幕的木头制作了动画:
<Canvas>
<Rectangle Name="shape_WaterBackground" Fill="#1E90FF" Height="20" Width="260" Canvas.Top="240"/>
<Rectangle Name="shape_Lumber" Width="40" Canvas.Top="240" Fill="Brown" Height="16" Margin="0,2,0,0" />
<Image Name="Froggy" Height="20" Width="20" Canvas.Top="300" Canvas.Left="120" Source="Froggy.jpg" />
</Canvas>
这个特定动画的代码隐藏:
DoubleAnimation Animate_Lumber_Movement = new DoubleAnimation(-40, 280, TimeSpan.Parse("0:0:7"));
Animate_Lumber_Movement.RepeatBehavior = RepeatBehavior.Forever;
shape_Lumber.BeginAnimation(Canvas.LeftProperty, Animate_Lumber_Movement);
现在我的问题是,当日志到达某个点时我该如何处理。原因是(就像您可能已经猜到的那样)我想知道如何在不停止动画的情况下在动画中途执行动作(动画中的不同点或时间,而不是静态)。
它与我在此处描述的问题有些相同:如何确定动画精灵何时到达某个点?,但对于 C# WPF。
作为上面代码中的一个示例,如果青蛙跳向河流并且它的 Canvas.Left 属性与动画日志匹配,我希望青蛙能够幸存下来,否则就会淹死。
非常感谢任何建议(但请记住,我是新手)
对不起,这个问题解释得不太清楚:)
感谢你并致以真诚的问候
洛达尔