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