基于SOPC的乒乓球游戲設(shè)計(jì)
在中斷服務(wù)函數(shù)中,通過(guò)設(shè)置標(biāo)志位變量flag辨別是否為雙擊命令。在確定擊球方式后生成cmd的四種狀態(tài)。cmd為全局變量,在main()函數(shù)中實(shí)現(xiàn)狀態(tài)的選擇。
3.4 小球運(yùn)動(dòng)程序
程序分析:
該段程序是主函數(shù)main()的關(guān)鍵部分,其中數(shù)組xlabel[50]是小球在X軸方向的運(yùn)動(dòng)軌跡,軌跡方程是xlabel=i×5。數(shù)組ylabel[50]和ylabel2[50]是小球在Y方向的兩個(gè)軌跡,軌跡方程分別為ylabel=-0.007i2+1.792i和ylabel2=-0.013i2+3.328i,其中i是小球運(yùn)動(dòng)的變量,在for循環(huán)函數(shù)中勻速增加或減小。當(dāng)出現(xiàn)break時(shí)小球運(yùn)動(dòng)方向改變。當(dāng)i=0或者i=49時(shí),說(shuō)明小球觸壁卻沒(méi)能遭到有效擊球,判定一方得分,通過(guò)UART發(fā)送指令在單片機(jī)上顯示比分。delay()函數(shù)用來(lái)控制小球的運(yùn)動(dòng)速度。
4 實(shí)驗(yàn)結(jié)果
將程序燒寫(xiě)到FPGA芯片內(nèi)部,在Nios II開(kāi)發(fā)環(huán)境下運(yùn)行Run as NiosⅡHardware。把低通濾波器的兩個(gè)輸出通道分別接到雙蹤示波器的輸入端。觀察到示波器上顯示出小球沿著拋物線(xiàn)軌跡來(lái)回運(yùn)動(dòng),并可以通過(guò)按鍵實(shí)現(xiàn)擊球命令改變小球運(yùn)動(dòng)。
5 結(jié)束語(yǔ)
本實(shí)驗(yàn)可以進(jìn)行適當(dāng)改進(jìn)。比如小球軌跡可以選用三個(gè)或三個(gè)以上更加豐富的軌道碼表,這樣小球的運(yùn)動(dòng)軌跡將更加多樣。還可以設(shè)立對(duì)游戲難度的設(shè)置,改變對(duì)小球的運(yùn)動(dòng)速度,這個(gè)想法可以在中斷服務(wù)函數(shù)通過(guò)對(duì)delay()函數(shù)進(jìn)行實(shí)參的變換而實(shí)現(xiàn)。本文引用地址:http://butianyuan.cn/article/172167.htm
評(píng)論