王清
摘要:pygame是基于python的一個模塊,可以用python語言編寫簡單的小游戲,因其可操作性非常高,可以根據自己所需編輯圖像、音頻等素材,所以具有超高的自由度,完全滿足任何想要的小游戲制作條件。制作過程中,僅需具備簡單的編程知識,用近乎白話的水平描述(編輯)出游戲的代碼即可實現小游戲的各種效果,用到的圖片素材和音頻素材能支持常見的圖片與音頻格式,不論是自己制作還是現成的素材,都能方便地應用。小學數學課上的游戲,總是會激發孩子們的學習熱情,極大地提高教學效率,所以將pygame運用在小學數學課堂上即能克服找不到教學素材的困難,又能根據內容需要,制作出最符合教學目標的小游戲。
關鍵詞:pygame;python;小游戲;小學數學
一、在小學數學課堂上使用小游戲的困境
隨著教學多媒體在全國各小學的普及,現代化的教學素材逐漸走進了孩子們的課堂,圖片、音頻、動畫,甚至是小游戲,都越來越多地被運用到了各科教學中,這些素材的正確使用,都有助于教學目標的達成,但是很多細心的教師備課時,在網上尋覓好久,也找不到一張心儀的圖片、一段滿意的動畫,更不要說一個符合自己教學風格與教學內容的小游戲了。而一位非美術專業和計算機專業的教師,要根據自己的想法創作出圖片、音頻、動畫或小游戲,都是有難度的。
二、pygame和python簡介
在當下流行的幾款編程語言中,python語言兼具簡潔、優美、易讀,非常適合只需簡單使用的初學者。pygame是python的一個模塊,是專門用來編寫游戲的,而它又特別適合用來編寫2D的小游戲。想要用pygmae自制簡單的小游戲,所需的知識量非常少,通常只需要簡單的百來行代碼就能實現。
三、pygame自制小游戲的優勢
(一)制作過程簡便
小學階段遇到的數學小游戲或者可轉化為小游戲的數學問題,都是比較簡單的,比如人教版二年級上冊的《搭配》,又比如人教版四年級上冊的《烙餅問題》,這些簡單的小游戲只需要百來行左右的代碼就能輕松實現。要達到上述這類小游戲的制作水平,只需要簡單掌握pygame里的幾個常用模塊即可,如精靈組的創建、鼠標或鍵盤的檢測、圖形的移動或變換,這些知識在網上很多平臺都有免費的教學視頻,教師可以輕松獲取并掌握。
(二)互動性高
課堂游戲不同于課堂上的其他教學環節,最主要的區別在于課堂游戲的有趣和互動性,有趣性很容易實現,就不過多闡述。學生與學生的不同操作會得到不同的結果,所以學生之間也會有語言上的交流互動,學生的實際表現影響教師的判斷,教師根據自己的判斷控制游戲的流程,所以也有師生之間的互動,這就是平時所說的生生互動與師生互動,但這類小游戲還有一個重要的互動環節,那就是參與游戲的學生與游戲本身之間的互動,學生通過鼠標或鍵盤的操作,在游戲中獲得不同的反饋,學生又根據自己得到的反饋來判斷自己接下來怎么操作,所以學生與游戲之間具有強烈的互動,而這種互動非常有利于學生數學思維的培養,這種互動也是其它常規教學環節中見不到的。
(三)高自由度
教材上的內容只是給教師一種教學參考,不同的教師會用不同的方式把這些教材上的知識傳授給學生,可是網絡上現成的教學資源都是別的教師的想法,雖然可以照搬到你的課堂上來用,但是卻并不能完全按照你的思路進行教學。所以說教師在教學中具有很高的自由度,卻又被教學資源限制住了,不能施展自己的才能,不能把自己最想要的教學設計展現出來。pygame,具有高自由度的小游戲設計模塊,能輕松解決掉這個問題,不論是對圖形的控制,還是聲音的控制,還是對鼠標、鍵盤、文本等輸入內容的檢測,都能通過簡單的代碼實現,這樣一來,教師的任何想法都可以在小游戲中呈現給學生,達到自己最想要的教學效果。
四、完成一個自制小游戲的必備模塊參考
不同的人喜歡用不同的方式來完成同一件事情,所以同一個小游戲的代碼肯定也都不同,但大體上都離不開下面4個方面的模塊或函數。
(一)控制游戲主體流程
pygame中可以用while函數來進行流程的控制,當while后的值為“True”時,該循環可以一直持續,知道while后的這個值為“False”為止。主循環下的不同小分支,可以用if函數來完成,if后的值為“True”時,if下的語句可以執行一次,否則不執行。
(二)鼠標或鍵盤的輸入檢測
pygame中用來檢測鼠標的模塊有很多,它們可以獲取鼠標的按鍵、光標位置等信息,在烙餅問題中,主要用到pygame.MOUSEBUTTONDOWN來記錄按下鼠標和pygame.mouse.get_pos( )來獲取鼠標的位置。
而鍵盤的操作可以通過pygame.KEYDOWN或pygame.KEYUP來檢測,其中按下鍵盤也可以用pygame.key.get_pressed來檢測。
(三)圖片控制
交互式的游戲肯定離不開畫面,畫面上的各種變或不變的圖片是游戲呈現出來的主體部分,pygame里的image模塊提供了加載圖片的load函數,display模塊里的set_mode( )和flip( )可以設置窗口大小和顯示背景圖片,對于某些小一點的圖片,可以用screen.blit( )來顯示。
五、總結
本文針對pygame在小學數學課堂上自制小游戲進行的簡要的分析,優點有高效簡便、互動性強、高自由度、跨平臺易分享,簡單的小游戲制作所需的四部分知識分別是流程控制、輸入檢測、圖片輸出和音頻輸出。高自由度的pygame小游戲可以將眾多教師的優秀的教學想法付諸實現,極大地提高教學趣味性和教學效果,易分享的特點也容易讓優秀的作品通過網絡傳播開來,服務于更多的教師和學生。
參考文獻:
[1]金淑湘.談小游戲在小學數學教學中的應用[J].中國校外教育(下旬刊),2019,(6).112.
[2]徐燕.數學游戲在小學數學教學中的應用策略研究[J].中國校外教育(中旬刊),2019,(6).71,79.
[3]陳萍.游戲在小學數學教學中的應用[J].甘肅教育,2019,(12).111.
(四川省遂寧市船山區老池鎮小學校 629000)