国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

游戲程序加工在教學(xué)中的實(shí)現(xiàn)

2009-04-21 06:44李慎東
關(guān)鍵詞:左移程序代碼子彈

李慎東

游戲程序加工,對(duì)學(xué)生來(lái)說(shuō)是一個(gè)非常新鮮、感興趣的課題。它不僅可以鍛煉學(xué)生的邏輯思維能力,還能充分發(fā)揮學(xué)生的創(chuàng)造力。設(shè)計(jì)“游戲程序加工”教學(xué)內(nèi)容,主要是為了開(kāi)啟游戲程序設(shè)計(jì)之門(mén),使每個(gè)學(xué)生都能領(lǐng)會(huì)信息的編程加工的原理和方法。因此我基于VB程序設(shè)計(jì)平臺(tái)以“雷電”程序的加工為例,對(duì)教學(xué)進(jìn)行了精心的設(shè)計(jì)與程序?qū)崿F(xiàn)的策劃,通過(guò)學(xué)生體驗(yàn)游戲程序的加工以充分達(dá)到教學(xué)目標(biāo)。

根據(jù)教材(《信息技術(shù)基礎(chǔ)》,上海教育科學(xué)出版社出版)課標(biāo)要求,這節(jié)內(nèi)容主要講述在VB編程環(huán)境下讓學(xué)生體驗(yàn)信息的編程加工的過(guò)程。因此在本課中我借助Moodle教學(xué)平臺(tái),以“游戲程序的簡(jiǎn)單加工”為主線,從學(xué)生通過(guò)VB源程序體驗(yàn)游戲并發(fā)現(xiàn)游戲存在的問(wèn)題著手,引導(dǎo)學(xué)生學(xué)會(huì)查看對(duì)象、修改對(duì)象屬性和變量值,以小組合作形式讓學(xué)生嘗試解決游戲存在的問(wèn)題,試圖閱讀程序代碼和代碼添加,使學(xué)生明白通過(guò)編寫(xiě)程序代碼就可以完善程序的功能。在教學(xué)過(guò)程中通過(guò)學(xué)生體驗(yàn)游戲程序加工過(guò)程再到知識(shí)歸納,充分體現(xiàn)隱性知識(shí)到顯性知識(shí)的轉(zhuǎn)化。下面我就結(jié)合教學(xué)實(shí)際,談一談“雷電”游戲程序加工在教學(xué)中的實(shí)現(xiàn)過(guò)程。

一、“雷電”游戲的設(shè)計(jì)思想

完成此游戲程序設(shè)計(jì)涉及以下幾個(gè)方面的內(nèi)容:①敵方飛機(jī):移動(dòng)(為簡(jiǎn)化程序,將敵機(jī)置為不動(dòng))、生命值(當(dāng)被我方子彈擊中后,生命值就減1,生命值為0時(shí)則我方贏,游戲結(jié)束)、子彈數(shù)(永遠(yuǎn)夠用)、子彈射擊的路徑(設(shè)置為無(wú)規(guī)則的曲線路徑射擊)。②我方飛機(jī):移動(dòng)(按“a、d、s、w”鍵時(shí)飛機(jī)“左、右、上、下”移動(dòng),飛機(jī)移動(dòng)時(shí),子彈跟著飛機(jī)一起移動(dòng))、子彈射擊(點(diǎn)擊鼠標(biāo)左鍵或按“,”鍵時(shí)發(fā)射子彈,每按一次子彈數(shù)減1,子彈數(shù)為0時(shí)則我方輸了,游戲結(jié)束)、子彈射擊路徑(垂直發(fā)射)、生命值(被敵方擊中1次則生命值減1,生命值為0時(shí)則我方輸,游戲結(jié)束)。③控制鍵的檢測(cè):通過(guò)文本框的SetFocus功能獲取光標(biāo)焦點(diǎn),檢測(cè)按鍵執(zhí)行相應(yīng)功能。④敵方與我方子彈射擊速度各由一個(gè)計(jì)時(shí)器控制。

二、簡(jiǎn)單的對(duì)象屬性、變量值的修改

課程中設(shè)計(jì)從學(xué)生體驗(yàn)并發(fā)現(xiàn)“雷電游戲”存在的問(wèn)題切入,學(xué)生在體驗(yàn)中發(fā)現(xiàn)我方飛機(jī)只能左移且移動(dòng)速度慢、控制鼠標(biāo)左鍵發(fā)射子彈、子彈數(shù)太少、生命值不夠、敵方飛機(jī)不能動(dòng)、敵機(jī)子彈無(wú)規(guī)則地曲線發(fā)射。

針對(duì)學(xué)生發(fā)現(xiàn)的問(wèn)題,經(jīng)過(guò)反復(fù)的思考與設(shè)計(jì),我巧妙地將問(wèn)題串起來(lái),同時(shí)也呈現(xiàn)了程序設(shè)計(jì)的基本過(guò)程。通過(guò)講解先讓學(xué)生了解程序的編寫(xiě)環(huán)境、界面的對(duì)象及基本屬性、查看與理解基本程序代碼,以便各組學(xué)生能順利地完成如下列表中的任務(wù)。

各組任務(wù)及指引表

各組任務(wù)既有梯度又有相似性,梯度表現(xiàn)在:從程序界面對(duì)象屬性的修改到變量值、代碼參數(shù)的修改,遵循了程序設(shè)計(jì)的思想;相似性表現(xiàn)在各組修改的都是數(shù)值,簡(jiǎn)單易懂。

三、如何實(shí)現(xiàn)多功能的代碼添加

教師提供給學(xué)生的雷電源程序,功能少漏洞多,希望同學(xué)們通過(guò)加工雷電程序,能夠使得程序功能更加完善。上述活動(dòng)是教學(xué)目標(biāo)達(dá)成的一個(gè)重要過(guò)程,要圓滿完成本節(jié)教學(xué)任務(wù),需要更深層次地拓展教學(xué)內(nèi)容。由于學(xué)生對(duì)程序代碼的陌生,教學(xué)設(shè)計(jì)中只能采取以誘善引的策略,逐步使學(xué)生了解程序代碼的編寫(xiě)過(guò)程,使學(xué)生既不產(chǎn)生對(duì)程序代碼的恐懼感,又能成功地添加代碼完善游戲功能,成就感會(huì)使學(xué)生保持良好的學(xué)習(xí)興趣。所以在源程序中只編寫(xiě)了簡(jiǎn)化后飛機(jī)左移的代碼。學(xué)生主動(dòng)查找飛機(jī)左移的代碼在哪里,并試圖理解飛機(jī)左移代碼:

If KeyAscii = Asc("a") Then '如果按的是a鍵,就執(zhí)行下面語(yǔ)句

myplayer.Left = myplayer.Left – 30'我方飛機(jī)向左移動(dòng)30個(gè)緹(單位)

End If'結(jié)束判斷

在教師的提示下學(xué)生很快便能掌握“if”和“end if”是成對(duì)出現(xiàn)的條件語(yǔ)句,可以用來(lái)判斷按鍵情況,以執(zhí)行相應(yīng)語(yǔ)句。(語(yǔ)句中的KeyAscii和Asc(“a”)不再過(guò)多解釋,學(xué)生可課后查閱相關(guān)知識(shí)。)接下來(lái)學(xué)生便可參照飛機(jī)“左移代碼”,兩個(gè)學(xué)生為一組探討添加“右移代碼”就簡(jiǎn)單多了。大部分學(xué)生通過(guò)復(fù)制“左移代碼”到“右移代碼”提示處,再將“a”改成“d”。把“myplayer.left”改成“myplayer.right”,按照正常理解思路是對(duì)的,可是我們回過(guò)頭來(lái)查看一下“myplayer”的對(duì)象屬性,在位置屬性里只有“l(fā)eft”和“top”,沒(méi)有“right”的屬性,因此需要理解的是“改變(減少或增加)對(duì)象與窗體左邊之間的距離就能實(shí)現(xiàn)飛機(jī)的左右移動(dòng)”,即執(zhí)行右移的語(yǔ)句為:

myplayer.Left = myplayer.Left + 100

游戲程序加工,除了要求每個(gè)學(xué)生都能完成上述基本的活動(dòng)任務(wù)外,更要強(qiáng)調(diào)學(xué)生創(chuàng)造力的發(fā)揮,要求學(xué)生課后有選擇地、有創(chuàng)造性地去修改游戲程序,比一比誰(shuí)加工的游戲程序功能更多、更合理,并要求學(xué)生一周后提交作品,教師對(duì)學(xué)生的優(yōu)秀作品進(jìn)行點(diǎn)評(píng)。

四、程序代碼(僅提供關(guān)鍵部分程序代碼)

Dim enemylife As Integer'敵方生命值

Dim mylife As Integer'你的生命值

Dim fs As Boolean'判斷子彈發(fā)射

Dim bullet As Integer'子彈數(shù)目

Private Sub Form_Load() '程序開(kāi)始運(yùn)行時(shí)初始化數(shù)據(jù)

enemylife = 10

fs = True

bullet = 10

La1.Caption = enemylife

mylife = 3

Label3.Caption = mylife

Label5.Caption = bullet

End Sub

Private Sub Form_Click()'點(diǎn)擊鼠標(biāo)時(shí)子彈發(fā)射

If bullet <> 0 And enemylife <> 0 And mylife <> 0

Then

mybullet.Visible = True: Timer1.Enabled = True

bullet = bullet - 1 '子彈數(shù)減1

Label5.Caption = bullet

End If

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

Text1.Text = ""

Text1.SetFocus

If fs = True Then

mybullet.Left = myplayer.Left + myplayer.Width / 2

'子彈未發(fā)射,我方飛機(jī)左移時(shí),子彈跟著左移.

End If

If KeyAscii = Asc("a") Then

myplayer.Left = myplayer.Left - 30

End If

'此處可添加按鍵控制的代碼,如右移等

End Sub

'計(jì)時(shí)器1控制我方子彈移動(dòng)速度程序段

'計(jì)時(shí)器2控制敵方子彈移動(dòng)速度程序段

'游戲結(jié)束程序段

'游戲開(kāi)始程序段

(作者單位:廣東廣州市第五中學(xué))

猜你喜歡
左移程序代碼子彈
新工科背景下Matlab對(duì)高等數(shù)學(xué)課堂教學(xué)輔助作用的探討
華容道玩法大解密
三顆子彈
子彈VS防彈
Karma:讓子彈飛一會(huì)兒
子彈
計(jì)算機(jī)網(wǎng)絡(luò)信息安全未來(lái)發(fā)展趨勢(shì)
嵌入式系統(tǒng)中程序的優(yōu)化策略
開(kāi)懷一笑
永仁县| 仙游县| 保山市| 沧源| 宁城县| 中西区| 始兴县| 林州市| 肇东市| 邮箱| 驻马店市| 庆安县| 自贡市| 道真| 宝清县| 宝兴县| 巩留县| 涞水县| 杭锦旗| 黎城县| 怀柔区| 个旧市| 梁平县| 武穴市| 五寨县| 静宁县| 湟源县| 博罗县| 东港市| 白银市| 鲁甸县| 乌兰察布市| 伊宁市| 保靖县| 客服| 平顶山市| 集安市| 无为县| 莱州市| 获嘉县| 平度市|