俄羅斯方塊遊戲筆記(一) 磚塊樣式配置窗體

2021-09-25 14:17:00 字數 2319 閱讀 6981

一、磚塊樣式配置窗體

第一步 雙擊lbl的paint事件

第二步 雙擊lblmode的mouseclick

自定義介面反思:

要想改變label的大小,autosize屬性必須改。

不能在第一步後將graphics dispose掉,會報沒有引數的錯。

陣列例項化 int[ , ] arr=new int[5,5];   //表示宣告乙個五行五列的二維陣列(陣列使用前需例項化) 

呼叫陣列時用arr[x,y]

int[ , ] arr=new int[5,5];   這個一定要是全域性變數

第二步i提供乙個方法:將螢幕畫素轉化為磚塊陣列下標,以至可以用陣列存放這25個磚塊,達到用陣列下標呼叫磚塊的目的。

這樣做出來後,還不是完美的。當你最小化頁面時,這些你選擇的變色了的方塊會全部消失。我們還需做第三步來補充。

第三步 在paint事件中再加入如下**

總結: 以完成陣列中儲存的各個方塊的bool值,能夠讓每次重繪時再現我們之前選好的方塊 

第四步 實現磚塊顏色自定義

拖入乙個colordialog

拖入乙個lblcolor,修改屬性autosize,borderstyle--fixed3d,

雙擊lblcolor的click事件。寫入如下**:

總結:要將方塊的顏色定義成乙個全域性變數blockcolor.(第二步已經定義好了)。

最後一行**要寫,如果不寫,那麼你改變顏色時,已選好的磚塊仍是上次的顏色,不會立即改變;改變的方塊只是你執行顏色操作之後選擇的方塊。

第五步 實現將方塊的資訊儲存,並顯示在listview控制項上。

拖入乙個listview控制項lsvblockset,修改屬性view--details,multiselect(一次選中多行)--false,gridline(顯示格仔)--true,columns--加兩列(編碼與顏色),fullrowselect(全行選擇)--true.

拖入乙個button控制項btnadd(新增),雙擊寫**:

總結:用乙個blockstring儲存方塊資訊。eg:0010010110010001000000000

使用大量字串連線時用stringbuilder類,而不是string類。最後再轉化成string類,存放在blockstring中。

陣列遍歷的方向是從上到下,而後從左到右。

第六步 實現切換listview選項,lblmode可以更新顯示。

雙擊listview的itemselectionchanged事件:

總結:字串也是可以索引的,s[i]表示字串的第i個元素,i從0開始。

將字串下標,轉化為陣列下標。

第七步 實現刪除按鈕功能,刪除listview中的選項。

第八步 實現lblmode的清空(第七步將listview中刪除乙個條目,可lblmode中還存在該方塊的形象)

拖入乙個清空的按鈕btnclear

雙擊按鈕寫如下事件:

在第七步的最後加一行**,執行這個按鈕的單擊:

總結:用**模仿按鈕單擊事件:btnclear.performclick();

第九步 新增編輯 「已儲存方塊」的按鈕

附: 第五步那個判斷圖案是否已經存在的**也可以加進去。

俄羅斯方塊遊戲

大二上學期前兩周的課程設計寫 更多的是借鑑 了乙個500多行的俄羅斯方塊遊戲,畢竟也是花了兩天時間把被人的看懂,然後花了兩天多的時間敲出來,又花了兩天時間寫了4000多字的專案報告,所有有必要在部落格中寫下來以留作紀念。struct block blocks 7 i 口 l 反l z 反z t 用十...

C 俄羅斯方塊遊戲

俄羅斯方塊是一款非常經典的老遊戲,相比現在的網路遊戲和大型遊戲而言,俄羅斯方塊非常小。不要看似小,要實現俄羅斯方塊的全部功能也不容易。先說說涉及的知識點 繼承 不同的方塊繼承於方塊類 多型 每種方塊都可以旋轉 初始化,但是每種方塊的旋轉都不一樣,採用抽象方法定義 簡單工廠設計模式 由工廠隨機建立方塊...

Canvas 遊戲 俄羅斯方塊

我第三個動畫遊戲終於可以玩了,demo 由於 wikipedia 的素材很像磚塊,我 裡就把 tetromino 稱為了磚塊 brick 整個拼板稱為牆面 wall 分別對應了遊戲中玩家控制目標和地圖。變形首先觀察 j 形狀轉置 t 和旋轉 r 的圖形,零表示空心部位,非零實心部位 j 1,0,0 ...