2013-02-06 21 views
0

我對WPF有點新鮮,剛開始研究動畫,只是爲了好玩,我開始製作舊式遊戲Frogger(青蛙必須穿越河流/公路而不被汽車撞擊等) )。C#WPF如何處理動畫到達某個點?

我做的動畫在屏幕上移動在河中木柴:

<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> 

和代碼隱藏這個特定的動畫:

​​

現在的問題是,當日志到達某個點時我該如何處理。原因是(就像你可能已經猜到的那樣),我想知道如何在不停止動畫的情況下在動畫的中間執行一個動作(動畫中的不同點或時間,而不是靜態)。

它有點像我在這裏描述的相同的問題:How to determine when an animated sprite reaches a point?,但對於C#WPF。

作爲上面的代碼中的一個例子,我希望青蛙能夠在朝向河流跳躍並且其Canvas.Left屬性與動畫日誌匹配或以其他方式淹死的情況下生存下來。

任何建議是極大的讚賞(但請記住,我是一個新手)

對不起,我不那麼好解釋的問題:)

謝謝你和問候

Lodal

回答

0

既然你只是動畫的Canvas.Left屬性,你總是可以只設立一個DispatcherTimer和閱讀(Canvas.GetLeftCanvas.GetTop)。雖然,也許這只是我,但在概念上,WPF動畫更適用於短暫的爆發,有點像屏幕過渡等等 - 並非真正用於處理整個遊戲動畫。如果這是您的目標,那麼您可能最好自己動手處理動畫(設置DispatcherTimer,然後在每次打勾時更新遊戲狀態)。

+0

這樣做的伎倆,謝謝! – Lodal