一、磚塊樣式配置窗體
第一步 雙擊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 ...