怎樣用鍵盤控制上下翻轉(zhuǎn)?
這個是沒有專門的函數(shù)來控制俄羅斯方塊的翻轉(zhuǎn)的, 一般來講,是通過如下的方式來實現(xiàn)俄羅斯方塊的翻轉(zhuǎn): 首先,用3維數(shù)組來存放七種基本方塊圖形: 例如: int BOX[7][4][4]={ { {1,1,1,1}, // ----型 {0,0,0,0}, {0,0,0,0}, {0,0,0,0} }, { {1,1,1,0}, // ┌--型 {1,0,0,0}, {0,0,0,0}, {0,0,0,0} }, { {1,1,1,0}, // --┐型 {0,0,1,0}, {0,0,0,0}, {0,0,0,0} }, { {1,1,1,0}, // -┬-型 {0,1,0,0}, {0,0,0,0}, {0,0,0,0} }, { {1,1,0,0}, // -T_型 {0,1,1,0}, {0,0,0,0}, {0,0,0,0} }, { {0,1,1,0}, // _T-型 {1,1,0,0}, {0,0,0,0}, {0,0,0,0} }, { {1,1,0,0}, // 田型 {1,1,0,0}, {0,0,0,0}, {0,0,0,0} } }; 如果希望實現(xiàn)用鍵盤控制翻轉(zhuǎn),需要做兩件事情: 1.接收并響應鍵盤按鍵事件 2.在進行按鍵事件處理時,進行翻轉(zhuǎn) 由于1比較簡單,就不多說了。
對于2,其實有兩種方法實現(xiàn): 1.進行矩陣的轉(zhuǎn)置處理(也就是右轉(zhuǎn)90度),按一次鍵,轉(zhuǎn)置一次 2.將19種變換圖形也用3維數(shù)組來存放,通過數(shù)組元素的下標訪問找到旋轉(zhuǎn)后的形狀 例如: L型: { {1,0,0,0}, // L型 {1,0,0,0}, {1,1,0,0}, {0,0,0,0} }, { {1,1,1,0}, // ┌--型 {1,0,0,0}, {0,0,0,0}, {0,0,0,0} }, { {1,1,0,0}, // ┐型 {0,1,0,0}, {0,1,0,0}, {0,0,0,0} }, { {0,0,1,0}, // --┘型 {1,1,1,0}, {0,0,0,0}, {0,0,0,0} }, 為了方便讀取,減少程序中算法上的開銷(比如進行4*4矩陣的轉(zhuǎn)置), 我建議你采取將19種變換圖形也用3維數(shù)組來存放的方式