新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于FPGA的M2M異構(gòu)虛擬化系統(tǒng)(三)

基于FPGA的M2M異構(gòu)虛擬化系統(tǒng)(三)

作者: 時間:2018-08-31 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://2s4d.com/article/201808/388221.htm

  4.3.2.應(yīng)用程序設(shè)計與實現(xiàn)

  4.3.2.1.基于MIPS匯編語言的俄羅斯方塊游戲設(shè)計

  開發(fā)環(huán)境:自己編寫的MIPS匯編器AssemblerForRS-232.jar,MIPS匯編語言源文件in.asm,安裝jre或jdk并配置好環(huán)境變量的windows XP及以上的操作系統(tǒng)。

  程序流程:

  

  圖 47 俄羅斯方塊程序流程圖

  主要模塊:

  start函數(shù)

  參數(shù):無

  功能:游戲的主體框架,作用類似main函數(shù)

  說明:內(nèi)部調(diào)用Tetris、tetris_clr、wait_key、start_enter等函數(shù),構(gòu)成整個游戲的主體框架。

  Tetris函數(shù)

  參數(shù):無

  功能:游戲的邏輯控制主體

  說明:調(diào)用各種初始化函數(shù)、俄羅斯方塊的生成函數(shù)和運動函數(shù)、玩家鍵盤控制函數(shù)、各種信息顯示函數(shù),實現(xiàn)游戲的所有邏輯。

  ini_boarder函數(shù)

  參數(shù):無

  功能:畫俄羅斯方塊運行的左右邊界

  說明:初始化游戲時使用

  set_bottom函數(shù)

  參數(shù):無

  功能:畫俄羅斯方塊運行的下邊界

  說明:初始化游戲時使用

  info函數(shù)類

  函數(shù)類:info_help、info_next、info_fail

  參數(shù):無

  功能:顯示各種信息

  說明:在初始化游戲界面時調(diào)用info_help顯示幫助信息;調(diào)用info_next在屏幕左上角顯示下一個即將下落的方塊的形狀和顏色,當(dāng)游戲失敗時調(diào)用info_fail提醒玩家。

  check_key函數(shù)

  參數(shù):輸出參數(shù)$v0和$v1

  功能:檢查是否有鍵按下

  說明:鍵盤無鍵按下時$v0=0;否則$v0=1,$v1=鍵值

  chk_dlt函數(shù)

  參數(shù):輸出參數(shù)$v0

  功能:檢查并刪除滿行

  說明:檢測每一行是否已擺滿方塊,如果擺滿則將其刪除。返回值$v0為刪除的滿行數(shù)。

  detect_collision函數(shù)

  參數(shù):輸出參數(shù)$v0

  功能:檢查是否有方塊沖突

  說明:如果有沖突則返回$v0=2

  null_loop函數(shù)

  參數(shù):輸入?yún)?shù)$a0

  功能:空循環(huán),用于延時

  說明:$a0=0,表示長延時;$a0=1表示短延時

  get_next_seq函數(shù)

  參數(shù):輸入?yún)?shù)$a3、輸出參數(shù)$v0

  功能:根據(jù)當(dāng)前方塊的形狀,得到下一個方塊的形狀

  說明:輸入$a3當(dāng)前形狀的序列號,返回$v0下一個方塊的形狀的序列號

  draw_pic函數(shù)類

  函數(shù)類:pre_draw_pic類、un_pre_draw_pic類、draw_pic類

  參數(shù):輸入?yún)?shù)$a0和$a2

  功能:根據(jù)方塊現(xiàn)在的位置和接下來的位置來畫方塊

  說明:輸入?yún)?shù)$a0是當(dāng)前位置,$a2是方塊將要移動的位置

  4.3.2.2.基于C語言的吃豆子游戲設(shè)計

  開發(fā)環(huán)境:自己編寫的硬件系統(tǒng)模擬器SimulatorForV5.jar,自己編寫的內(nèi)存填充工具MemoryFilling.jar,自己編寫的硬件內(nèi)存分配文件memory.bin,Gcc編譯環(huán)境,嚴(yán)格的簡單的C語言程序源文件user.c,安裝jre或jdk并配置好環(huán)境變量的windows XP及以上的操作系統(tǒng)。

  程序流程:

  

  圖 48吃豆子程序流程圖

  主要模塊:

  start_game函數(shù)

  原型:void start_game();

  功能:游戲程序的邏輯主函數(shù)

  說明:控制packman的運動,兩個怪物的簡單智能移動,檢查游戲的終止條件,判斷鍵盤輸入并做相應(yīng)的響應(yīng)

  init_game函數(shù)

  原型:void init_game();

  功能:初始化游戲的全局變量

  說明:每次游戲重新開始時,需要調(diào)用該函數(shù)進行全局變量的初始化

  check_catch函數(shù)

  原型:int check_catch()

  功能:檢測packman是否被怪物抓到

  說明:如果被抓到返回1,否則返回0

  check_collision函數(shù)

  原型:int check_collision()

  功能:檢測兩個怪物是否有沖突

  說明:如果有則返回1,否則返回0



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉