最近在看《.net遊戲程式設計入門經典 c#篇》 第一章介紹了如何製作俄羅斯方塊,自己試了試按照書上的步驟,可算是完成了。
於是寫下這篇文章留作紀念。
1.類的設計
在充分分析遊戲的特點後,遊戲大概可以分為3個類:square小正方形,block由4個小正方形組合成的乙個圖形,gamefield遊戲的驅動引擎
2.**的編寫
按照從小到大,從簡單到複雜的順序,先完成square類,square很簡單,只需要提供show,hide方法以及size,location屬性。
接下來是block,block相對比較複雜,分為以下幾種:
它應該有4個square 編號可以按照個人習慣,當然之後計算座標的時候也要根據個人的編號來進行。
block應該有hide,show,left,right,rotate一些方法,屬性的話為了計算座標 應該有square的大小,還有color
要注意的是rotate方法將block順時針旋轉90°,圖上已經標出旋轉的中心。
最後剩下的就是gamefield了,他應該有乙個陣列,儲存背景中所有的square,以及哪些位置有square的 位標誌陣列,對每一行的檢查(是否消去得分)以及消去所有方塊下移操作。
這些類完成後就可以簡單的寫遊戲邏輯了,因為太簡單就不說了,簡單的貼一下**
private block currentblock;
private block nextblock;
private int score;
private bool blockfalling;
private void button1_click(object sender, eventargs e)
private void form1_load(object sender, eventargs e)
private void form1_keydown(object sender, keyeventargs e)
switch (e.keycode)
}private void timer1_tick(object sender, eventargs e)
}else
if (!blockfalling)
picturebox2.invalidate();
currentblock = new block(new point(gamefield.width / 2 * gamefield.squaresize, 0), nextblock.blocktype);
currentblock.show(gamefield.winhandle);
nextblock = new block(new point(15, 15), block.blocktypes.undefined);
nextblock.show(picturebox2.handle);
blockfalling = true;}}
private void form1_activated(object sender, eventargs e)
3.總結
這個簡單的遊戲,可謂是剛好適合新手。可以學到衝突檢測(checklines),遊戲中基本元素與遊戲驅動的理解。
俄羅斯方塊的簡單實現
也是很早很早的東西了 p 這是我幾年以前寫的 seven puzzles 該遊戲為dos版,可在鄙人主頁http sss ic.yeah.內找到 裡的俄羅斯方塊的實現方法,當時接觸程式設計僅半年而已,希望可以給初學者一點幫助。幾乎沒有寫什麼 而且後階段方塊旋轉 消去方面更是只大致介紹了一點方法,不過...
C 實現俄羅斯方塊
c 實現俄羅斯方塊 一 實驗介紹 1.1 實驗內容 本節實驗我們進行設計俄羅斯方塊前的思路分析,以及介紹ncurses 庫的使用方法。1.2 實驗知識點 c 程式設計基礎 ncurses 庫的使用 俄羅斯方塊邏輯設計 1.3 實驗環境 xfce 終端 g 編譯器 ncurses 庫 1.4 適合人群...
用C 實現俄羅斯方塊
include using namespace std 構造完成標誌 bool sign false 建立數獨矩陣 int num 9 9 函式宣告 void input void output bool check int n,int key int dfs int n 主函式 int main ...