王澤良
(四川儀表工業(yè)學校 重慶北碚 404000)
傳統(tǒng)教學是把需要掌握的知識,展示并表達出來,學生通過記憶理解并在實際應(yīng)用中使用這些知識,從而學到對應(yīng)的知識技能。然而對于掌握知識這樣的教學目標,可以有不同的教學過程和教學模式,以JAVA學科中的變量類型這個知識點為例,可設(shè)計一個簡單的任務(wù)闖關(guān)文字游戲,針對JAVA變量8種數(shù)據(jù)類型,提出8道填空題回答變量所占內(nèi)存大小,正確答完一題才能繼續(xù)回答下一題,全部答完表示闖關(guān)成功。這樣的教學過程相比知識點的直接闡述,稍微生動一些。還可以進一步設(shè)計成“塔防”類游戲,游戲界面對應(yīng)8架飛機向玩家飛來,每答對一題就發(fā)出一枚導(dǎo)彈擊中飛機。還可把這個教學平臺“闖關(guān)游戲”作為教學項目內(nèi)容,讓學生開發(fā)這樣的平臺,讓需要掌握的JAVA變量類型知識,在不知不覺中進入學生腦海[1]。教學模式從老師闡述知識點學生去記憶,變成了學生需要完成游戲項目開發(fā)去獲取對應(yīng)的知識點。
本文的游戲開發(fā)教學模式是在傳統(tǒng)的項目教學基礎(chǔ)上,把一些沒有聯(lián)系的闡述的JAVA知識點的案例,改為實現(xiàn)具體游戲項目的多個小的項目和案例[2]。不但能在這些案例中掌握JAVA相關(guān)技術(shù)知識,還能在最后得到一個具體的游戲項目,學生之間可以交換運行使用這個游戲,對比自己與別人的優(yōu)缺點,從而提高JAVA程序設(shè)計能力[3]。
本文以一個具體的游戲項目“俄羅斯方塊”為例,該游戲是有七種形狀的方塊,每次隨機一種不斷下落。玩家控制四個方向鍵,實現(xiàn)左右移動或者快速下落或者旋轉(zhuǎn)方塊。
該游戲?qū)儆诤唵蔚腉UI程序,需要在組件上繪圖,因此運用JFrame組件,以及對應(yīng)的方法創(chuàng)建頂級窗口作為游戲界面。在主類的main方法中完成以下工作,創(chuàng)建 JFrame對象,增加關(guān)閉按鈕功能,設(shè)置大小并且固定,獲取該對象的容器,把“俄羅斯方塊”類的實例加入該容器,監(jiān)聽按鍵。
設(shè)計一個名為Blok 的“俄羅斯方塊”類,該類繼承自JPanel 并實現(xiàn) KeyListener接口。用二維數(shù)組map[][]存放地圖狀態(tài),三維數(shù)組shapes[][][]存放方塊形狀,構(gòu)造方法中初始化數(shù)據(jù)啟動定時器,newblok()是新建方塊的方法,用隨機數(shù)確定方塊形狀,通過判斷新建的方塊能否移動決定游戲是否結(jié)束,newmap()是新建地圖的方法,把數(shù)組中邊界元素設(shè)置為1,表示需要繪圖。用一個名為blow()的方法判斷方塊能否移動。
public int blow(int x,int y,int type,int state) {//判斷方塊能否移動的方法
public void keyPressed(KeyEvent e) {// 必須實現(xiàn)KeyListener接口的所有方法
本文通過具體的“俄羅斯方塊”游戲開發(fā)案例教學,闡述游戲開發(fā)教學模式在程序設(shè)計課程中的應(yīng)用。在實際教學過程中,很好的激發(fā)了學生興趣,鞏固了所學的JAVA程序設(shè)計相關(guān)技術(shù)知識。學生在該案例教學過程中體會了完成具體工作后的成就感,從書本中知識的數(shù)量堆積,到開發(fā)出一定功能的項目產(chǎn)品。這個過程就是一個沒有學過JAVA的學生成為掌握該門技術(shù)的專業(yè)學生的轉(zhuǎn)變過程。