邢閣 吉林動畫學院
開發(fā)相關程序時,可以運用二維數(shù)組方式,達到對方框狀態(tài)有效管控的目的。 基于Microsoft Visual C++程序語言下,適用于Windows98、WindowsXP以上等操作系統(tǒng)。對俄羅斯方塊的圖案類型與狀態(tài)進行判斷和分析。其中主要包含了7個不同種類的圖案,各類圖案存在著不同的變形狀態(tài)。見下圖1。
圖1
當某種圖案下落時,借助對鍵盤的操作,能夠?qū)崿F(xiàn)針對不同類型圖案狀態(tài)的有效轉換。鑒于方塊處于Windows下能依靠可視窗口進行呈現(xiàn),所以,應該合理利用位圖資源。一般而言,基于Windows操作系統(tǒng)下,各個位圖資源均通過矩形加以界定。假如采用各個位圖代表各類別圖案的每一種變形狀態(tài),根據(jù)上圖1獲悉,應該定義19個位圖,如此,使位圖繪制的任務量變大,進行變形狀態(tài)之間轉換的過程中易于出現(xiàn)閃爍、抖動的情況,并且?guī)Ыo方塊下落過程中判定一定的阻礙。由于不同類別圖案包含了四個一致的小方塊。依靠各個位置的組合方式,能夠產(chǎn)生一共19類狀態(tài)的圖案。所以,應該進行一個小方塊DIB位圖的科學繪制。因為實施持續(xù)調(diào)用位圖所花費的時間不長,在人眼視覺停留時間之內(nèi),位圖表現(xiàn)出一定的完整性。對于不同小方塊左上角的坐標而言,可應用(cx1,cy1),(cx2,cy2),(cx3,cy3),(cx4,cy4)進行表示,通過科學管控程序當中不同坐標間的關聯(lián),能夠?qū)π》綁K組合形狀有效控制的效果。下圖2代表的為第三類圖案變形狀態(tài)的具體轉換狀況。
圖2
進行游戲窗口定義的過程當中,假設游戲左上角的坐標點是(ulPosx,ulPosy),有關邊框的寬度則定義成frmwidth,相應的邊框?qū)挾取⒏叨纫来螢?16mWidth、20mHeight。在這當中,mWidth、mHeight依次為小方塊的寬度、高度,假設二者是相等的。從功能發(fā)揮的角度而言,通過對相關圖案進行擦除的方式,然后朝下移動一個mHeight的距離之后,可以重新呈現(xiàn)圖案。假如移動了一個mHeight距離以后,所有小方塊左上角的縱坐標均未超過相應的方框底線,同時小方塊所在方位相應的數(shù)組元素均不為1的時候,表明目前的圖案尚未到達底部,同時也未碰到任何障礙物,能夠從中加以有效呈現(xiàn);不然,當開始呈現(xiàn)以前,需要朝上移動一個mHeight距離,并把全部進行的距離移動均加以取消。對于擦除圖案、呈現(xiàn)圖案依次借助函數(shù)EraseDesign()、PaintDesign()予以代表; 通過運用函數(shù)CalcStatus(),可以對public變量i1-i4、j1-j4的數(shù)值加以科學計算。
在深入理解與掌握二維數(shù)組概念與內(nèi)涵之后,便可以科學判斷一行是否已經(jīng)填滿。通過對二維數(shù)組當中的不同元素進行掃描的方式,假如一行的全部元素均為1,說明該行已經(jīng)填滿,無需進行消除,接著對該行之上不同行的狀態(tài)輪流進行下移;假如彼此鄰近的兩行均已填滿的時候,應該再次進行一次處理。
從此次論文的闡述和分析當中,可以獲悉,系統(tǒng)分析與思考二維數(shù)組在俄羅斯方塊游戲編程當中的有效應用策略顯得尤為必要,具有一定的研究意義和實施價值。本文以二維數(shù)組在俄羅斯方塊游戲編程中的具體應用作為主要的研究內(nèi)容加以展開論述與分析:確保方塊圖案類型與狀態(tài)分析的科學性、強化對游戲窗口的準確定義、注重一行是否填滿的科學判定。望此次研究與分析的內(nèi)容和結果,能夠得到有關俄羅斯方塊游戲編程技術工作人員的關注與重視,并且從中獲取相應的啟發(fā)和幫助,以便充分發(fā)揮出二維數(shù)組在俄羅斯方塊游戲編程當中的良好作用,進而推動我國游戲編程技術的不斷發(fā)展與進步。