c#使用Graphics繪製俄羅斯方塊圖形?

編程語言越來越發達,對於圖形的處理功能也越來越強大,學習的時候我們用一種最原始的方法來繪製俄羅斯方塊遊戲的圖形,C#中的Graphics語句。

工具/原料

visual studio 2008/2010 C#

方法/步驟

先說下我的思路:

§1.畫出幾種圖形

§2.移動圖形,左,右移動。

§3.讓圖形在指定的範圍內顯示,正確的位置停止。

§4.讓每種圖形由用戶控制旋轉

§5.當每一行圖形全滿後,能夠將此行擦去

§6.擦去一行後將上面所有的圖形全部往下移

理想中的思路:

§定義三個類:

§1.Huatu (畫圖) 類 用來畫幾種基本圖形

§2.Bianhuan (變換) 類 用來旋轉圖形

§3.Panduan (判斷) 類 限制圖形在指定的位置,判斷圖形有某一行圖形滿後,消去一行

§主程序做初始化工作,隨機產生標誌,產生某個圖形。等等..

實際後來操作的方法與理論上有差距:

§因為三個類都會用到相同的數組,靜態數組定義後實現不成功。中間變轉換,有點麻煩,時間也稍晚了些。 §現在就用了一個類,程序規劃待後繼續。

§旋轉(bianhaun)和判斷(panduan)類,都放到了畫圖(hautu)類裡。

幾種基礎圖形:

§每個圖形用一個數組存放其位置

c#使用Graphics繪製俄羅斯方塊圖形

使用Graphics繪製俄羅斯方塊圖形#

方法/步驟2

一、畫圖形1.自己定義圖形的初始位置

c#使用Graphics繪製俄羅斯方塊圖形

使用Graphics繪製俄羅斯方塊圖形#

二、用timer移動圖形

§在Timer裡不斷改變每種圖形數組的值,使得改變圖形的位置

§實現方法:先把當前位置的圖形擦去,然後調用zhuanL(Z,T,l1)改變位置值,再在現在的位置畫出新的圖形。

§ huatu.ca_L(); //把原來的圖形擦去,

§ huatu.zhuanL(); //改變位置,

§ huatu.hua_L(); //再畫出圖

2.擦、畫圖形

c#使用Graphics繪製俄羅斯方塊圖形

使用Graphics繪製俄羅斯方塊圖形#

c#使用Graphics繪製俄羅斯方塊圖形

使用Graphics繪製俄羅斯方塊圖形#

三、讓圖形在正確的位置顯示

c#使用Graphics繪製俄羅斯方塊圖形

使用Graphics繪製俄羅斯方塊圖形#

圖形停止後,要做的工作

§1.重新產生,產生圖形的隨機數

§2.把圖形數組再賦初值

四、旋轉圖形

c#使用Graphics繪製俄羅斯方塊圖形

使用Graphics繪製俄羅斯方塊圖形#

§圖形模擬二維數組顯示效果圖:

c#使用Graphics繪製俄羅斯方塊圖形

使用Graphics繪製俄羅斯方塊圖形#

判斷是否落到別的圖形上

§此步可以和判斷圖形顯示的位置一起

§定義了youtu數組之後:

§在剛才的基礎上只需判斷youtu數組裡的值是否為1即可,若為1則執行初始化的那段程序

五、判斷一行已滿,將此行消去

§定義一個數組public int [,] youtu=new int[1001,1001];//定義記錄是否劃到圖,圖停留

§在一個圖形落下,停止後,把圖形的位置用數組記錄下來。把圖形的位置放入數組的下標,把其值賦為1.

§圖形顯示框是一行21個圖形,此時只需判斷youtu數組裡一行中的每一個值都是1,則說明這一行已滿。

c#使用Graphics繪製俄羅斯方塊圖形

使用Graphics繪製俄羅斯方塊圖形#

六、將上面的圖形全部往下移

c#使用Graphics繪製俄羅斯方塊圖形

使用Graphics繪製俄羅斯方塊圖形#

注意事項

閱讀時根據步驟內容裡面的序號來閱讀

相關問題答案