2012-04-12 46 views
4

如果我有一個頁面繪製2線

如何將我的動畫第一線到達第二條線的位置在2號線?

回答

2

添加「計數器」變量,這將是線已經在兩個位置之間行進的距離的百分比。將它初始化爲零,因爲它從開始位置開始。添加一個計時器,每次滴答你增加「計數器」並使客戶區域無效,以便重新繪製。一旦「計數器」達到100,並且達到目標的100%,就可以禁用不再需要的計時器。

在油漆日常你已經知道的起始位置和結束位置,以便只是劃清界線,在這兩者之間的「櫃檯」的百分比。所以,如果你知道startX並且你知道endX你的繪製版本是startX +(((endX-startX)/ 100 * counter)。針對每條線的頂部,左側,右側和底部執行此操作,然後完成。

+0

我編輯我的問題。我以爲我可以用w和w和h2比較w2,直到它們相等,然後停止...但是...這不起作用。你能擴展你的想法嗎? – BigBug 2012-04-12 05:26:26

+0

更換(W *(INT)幀)與(W +((W2 - W)*幀)) – 2012-04-12 05:31:24

+0

它並不完全工作...行只是向右移動過去的目標行.... – BigBug 2012-04-12 05:43:47

1

如果我沒有錯,你有眨眼,這是你的問題? 嘗試使用此BufferedGraphics 小例子

System.Drawing.Graphics g = this.CreateGraphics(); 
    System.Drawing.BufferedGraphicsContext dc = new BufferedGraphicsContext(); 
    BufferedGraphics backbuffer = dc.Allocate(g, new Rectangle(new Point(0, 0), g.VisibleClipBounds.Size.ToSize())); 
    backbuffer.Graphics.DrawLine(Pens.White, 10, 10, 10, 100); 
    backbuffer.Render(g); 
+0

如果我錯了,我會刪除這個答案 – Likurg 2012-04-12 08:01:30