none
繪圖問題 RRS feed

  • 問題

  • 你好

    我想做一個小精靈的小遊戲

    要做小精靈要吃的果食 我做了一個類別用來繪製黃色的果實,類別程式如下

    ---------------------------------------------------------------------------

     Public Sub drawPie()
            Dim accountX As Integer
            Dim accountY As Integer
            Dim pieY As Integer = 10 'y的初始座標
            Dim pieX As Integer = 10 'x的初始座標

            accountX = (Me.endX - Me.starX) \ 30 '利用座標來計算x要畫的個數
            accountY = (Me.endY - Me.starY) \ 30 '利用座標來計算y要畫的個數

            Dim i As Integer 'column
            Dim j As Integer 'row

            For j = 1 To accountY
                For i = 1 To accountX

                    grp.FillPie(Brushes.Yellow, pieX, pieY, 10, 10, 360, 360) '將畫布畫滿圓點
                    pieX += 30  '間隔 (X點的間隔)

                Next
                pieX = 10 '回歸起始點(X軸)
                pieY += 30 '間隔 (Y點的間隔)
            Next
        End Sub

    ---------------------------------------------------------------------------------

     但是有個問題    無法當小精靈吃到果實時 ,將果實消除掉(吃掉一個消除一個)

    麻煩請各位前輩幫忙push一下

     

    2006年12月1日 下午 02:31

解答

  • 實做的時候應該分三層,並準備緩衝區。

    觀念:

    1. 螢幕顯示可為 PictureBox ,一個記憶體的繪圖物件,若不清楚,可以用一個不顯示的 PictureBox ,會稍微慢一點。

    2. 分底圖層,分數層,動作層(此層也可以拆更多層,基本上包含小精靈、鬼、加分水果)

    3. 底圖層不動,分數層一小精靈位置更新內容,動作層依小精靈、鬼繪製。

    4. 依序將底圖層、分數層、動作層畫到記憶體繪圖物件上。(緩衝區是為了減少螢幕閃爍而存在)

    5. 畫到螢幕顯示區。

    考慮人眼的反應能力,螢幕更新時間間距可在 30 ms ~ 100 ms 為間距。

     

    2006年12月2日 上午 02:52
    版主

所有回覆

  • 你需要一個紀錄果實的地方(譬如二維陣列), 然後判斷資料再決定是否畫果實, 吃掉果實後改變陣列中的資料, 進行畫面重繪
    2006年12月1日 下午 03:29
  • 實做的時候應該分三層,並準備緩衝區。

    觀念:

    1. 螢幕顯示可為 PictureBox ,一個記憶體的繪圖物件,若不清楚,可以用一個不顯示的 PictureBox ,會稍微慢一點。

    2. 分底圖層,分數層,動作層(此層也可以拆更多層,基本上包含小精靈、鬼、加分水果)

    3. 底圖層不動,分數層一小精靈位置更新內容,動作層依小精靈、鬼繪製。

    4. 依序將底圖層、分數層、動作層畫到記憶體繪圖物件上。(緩衝區是為了減少螢幕閃爍而存在)

    5. 畫到螢幕顯示區。

    考慮人眼的反應能力,螢幕更新時間間距可在 30 ms ~ 100 ms 為間距。

     

    2006年12月2日 上午 02:52
    版主
  • 謝謝大大回答我的問題

    可是我是個程式新手 所以我不太懂你描述的意思

    可否給我一個程式的小例子來說明大大的意思

    感謝大大

    2006年12月2日 下午 04:33