freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

畢業(yè)設計-基于arm的俄羅斯方塊游戲的開發(fā)-資料下載頁

2024-12-04 10:00本頁面

【導讀】電子領域,嵌入式系統(tǒng)的游戲娛樂功能受到越來越多的關注。微處理器S3C2440A硬件平臺,設計并實現了俄羅斯方塊游戲。系統(tǒng)的實現主要分為兩個部分。首先,在PC機上安裝qtcreator開發(fā)軟件,利用Qt的信號與槽、事件機制等技術,完成俄羅斯方塊游戲程序的設計。設計的重點是實現方塊的數據存儲、移動旋轉和消行等功能。件,并下載到ARM開發(fā)板mini2440上運行。經過測試,整個系統(tǒng)性能良好,滿足設計要求。行操作,人機交互效率較高。界面美觀大方,功能說明簡單完整。時代主流,具有重要的現實意義。

  

【正文】 etris(zhoujunhao)))設置窗口標題欄的內容 [1]。 游戲的 繪制 在 UI 系統(tǒng)中,不同的 widget 會經常發(fā)各種消息,通常 UI 系統(tǒng)都會把這些消息和消息參數規(guī)范化, QT 把消息類型和消息參數都封裝到 QEvent 及其子類中,同時定義了 QObject:: event(QEvent *e)函數來處理各種 QEvent,這就是 QT 的event 機制。信號通過事件實現,事件可以過濾,事件更底層,事件是基礎,信號是擴展。 當一個事件產生時, Qt 通過實例化 一個 QEvent 的合適的子類來表示它,然后通過調用 event() 函數發(fā)送給 QObject 的實例(或者它的子類)。 event() 函數本身并不會處理事件,根據事件類型,它將調用相應的事件處理函數,并且返回事件被接受還是被忽略。一些事件,比如 QMouseEvent 和 QKeyEvent,來自窗口系統(tǒng);有的,比如 QTimerEvent,來自于其他事件源;另外一些則來自應用程序本身 [2]。 QPaintEvent 是個類,繼承于 QEvent,包含了繪畫的事件。當控件本身更新的時候,繪畫事件會發(fā)送到控 件,對于實例來講,這種事情一般是遮住他的控件移動了,導致其需要重繪。 void QWidget::paintEvent ( QPaintEvent * )是虛 函數,常州大學本科生畢業(yè)設計 (論文) 第 20 頁 共 30 頁 只要窗口部件需要被重繪就被調用 。每個要顯示輸出的窗口部件必須實現它。這個事件處理器可以 在子類中被重新實現來接收繪制事件 。它可以是 repaint() 或 update() 的結果。很多窗口部件在當它們被請求時,它們很簡單 地重新繪制整個界面 。 QPainter 類 是在窗口部件上實現繪制的繪圖工具類。 QPainter 可以繪制從簡單的直線到 像餅圖和弦這樣的復雜形狀。它也可以繪制排列的文本和像素映射。本設計利用 QPainter 類相關成員函數來實現游戲界面的繪制 [4]。 游戲背景的網格可有可無,并不影響游戲的進行,若需要讓方塊直接下落到底,增進游戲 操作 節(jié)奏,添加網格背景就 能 使得方塊的位置更加清晰 明目 ,便于游戲。 網格的繪制 首先 需要 使用函數 (Qt::DotLine)定義繪筆風格為點線, DotLine 就 是指由一些 像素分隔的 點,然后進行繪圖。 如下代碼是繪制網格區(qū)域橫線的關鍵代碼 。 for(int i=0。 imap_row。 i++) { (QPoint(0,i*step),QPoint(thisgameArea_width,i*step))。 } map_row 指網格行數 10, for 循環(huán)中從第一行開始到最后一行繪制點線, 這里 使用 的 函數 void QPainter::drawLine ( int x1, int y1, int x2, int y2 ); 繪制從 (x1, y1)到(x2, y2)的直線并且設置當前畫筆位置為 (x2, y2),利用這個函數快速繪制直線。網格豎線的 繪制方法與此相似 。 繪制方塊前,用函數 ()設定方塊邊框顏色,用 ()設定畫刷用了填充方塊顏色,之后掃描整個游戲網格區(qū)域,網格數組中,只要檢測到值為 1 就證明有方塊,然后利用 QPainter 成員函數 drawRect()繪制矩形就可以了,關鍵代碼如下: for(int i=0。imap_row。i++) { for(int j=0。jmap_col。j++) { if(*(currentMap+i*map_col+j)==1) { (j*step,i*step,step,step)。 } } } QPixmap 類是基于像素的繪圖設備,是 Qt 提供的一個圖像處理類, QPixmap內的像素數據是由底層窗口系統(tǒng)管理的。所以本設計 需要 使用 QPainter 來訪問,新建 QPainter 類需要使用 QPixmap 類作為入口參數。本文 中填充游戲背景顏色是通過 使用 QPixmap 類中的成員函數 fill()來 實現的。 常州大學本科生畢業(yè)設計 (論文) 第 21 頁 共 30 頁 鍵盤處理 除了 QPaintEvent 外,本設計用到的另一個事件機制就是 QKeyEvent, 鍵盤的處理都在函數 void Widget::keyPressEvent(QKeyEvent *event)中實現 。當鍵盤按鍵被按下就會觸發(fā)這個函數。 Qt 基類通過枚舉已經定義了各個按鍵。如開始鍵為 Key_S,向下按鍵為 Key_Down,數字鍵 1 為 Key_1 等等。對應 游戲界面也會有相應的改變。在這個函數中,只有一個 switch 語句,不同的按鍵會觸發(fā)不同的情況發(fā)生,以進行不同的事件處理。相關代碼結構如下所示: void Widget::keyPressEvent(QKeyEvent *event) { switch(eventkey()) { case Qt::Key_S :?? break; case Qt::Key_P : ?? break; ?? default: QWidget::keyPressEvent(event)。 } 本設計除了實現幾個基本按鍵操作外,還有一些擴展功能。 所有的功能按鍵如圖 所示: 按 鍵 事 件“ S ” 鍵 : 開始 游 戲“ P ” 鍵 : 暫停 與 恢 復 游 戲“ 上 ” 鍵 : 逆時 針 旋 轉 方 塊“ 下 ” 鍵 : 方塊 加 速 下 移 或者 直 接 落 底“ 1 ” 到 “ 6 ”鍵 : 難 度 切 換“ C ” 鍵 : 游戲 界 面 顏 色 變化“ 左 ” 、“ 右 ” 鍵 : 方塊 左 移 與 右 移“ D ” 鍵 :“ 下 ” 鍵 功 能切 換 圖 鍵盤事件功能說明 常州大學本科生畢業(yè)設計 (論文) 第 22 頁 共 30 頁 這里 Key_Down 鍵定義了兩個功能,一個是只讓方塊加速下移一步,另一個是使方塊直接下落到底,通過 Key_D 鍵盤可以對這兩個功能進行切換。Key_Down 鍵每次按下都會進行判斷,默認功能是加速下移。 Key_C 鍵的功能是使游戲背景區(qū)域、方塊邊框顏色和方塊背景填充顏色隨機變化,這里只要改變畫刷、 畫筆、背景填充色等參數就可以達到變色的效果。 Qt 的顏色設置都是在類QColor 中實現的, QColor 一般有四個參數,數值范圍都是 0~255,前 3 個參數表示 紅綠藍三原色 ,通過自由組合得到不同的顏色,最后一個參數是設置顏色透明度。另外 Key_P 和 Key_1~Key_6 的數字鍵實現的是暫停功能和對方塊下落速率的調節(jié)。具體都是通過對定時器的操作來完成的。 常州大學本科生畢業(yè)設計 (論文) 第 23 頁 共 30 頁 4 移植和測試 交叉編譯工具安裝 在 Linux 平臺下,要為開發(fā)板編譯內核,圖形界面 Qtopia, bootloader,還有其他一些應用程序,均需要交叉編譯工具鏈。 本文使用 armlinuxgcc 來建立armlinux 交叉編譯環(huán)境, 將 armlinuxgcc 安裝到 /usr/local/arm/目錄下, 首先解壓縮源碼包 ,在命令行下輸入: tar xzvf 這個命令會在 /usr/local/arm/ 目錄下安裝 armlinuxgcc 交叉編譯程序,然后設置環(huán)變量指定編譯器的路徑,命令如下: export PATH=/usr/local/arm/:$PATH 設置完成后, 使用以下命令可以查看 armlinuxgcc 是否安裝成功: armlinuxgcc –v 如果按照成功會顯示如下圖 所示信息: 圖 armlinuxgcc 版本信息 交叉編譯 Qt/Embedded 為了在 ARM目標機上運行 Qt應用程序,還必須交叉編譯 Qt的嵌入式版本 ,即 Qt/Embedded。 Qt/Embedded 是挪威 Trolletch 公司的圖形化界面開發(fā)工具 Qt的嵌入式版本 , Qt/Embedded 具有 面向對象、跨平臺、資源消耗少和可移植性強等優(yōu) 點, 它 擁有較高的運行效率,而且整體采用面向對象編程,擁有良好地體系架構和編程模式 越來越多的第三方軟件公司開始采用 Qt/Embedded 開發(fā)嵌入式 Linux 下的應用軟件。 Qt/Embedded 源碼包 可以在諾基亞官網下載, 源碼在編譯本地版本時已經解壓縮,所以直接進入源碼目錄進行配置,但配置前先要清空舊的配置,用以下命令: make confclean 然后重新進行配置: 常州大學本科生畢業(yè)設計 (論文) 第 24 頁 共 30 頁 ./configure prefix /usr/local/Trolltech/ embedded arm –nonis –nolargefile –noaccessibility –noqt3support –nophonon –noopengl xplatform qws/linuxarmg++ 這里包含了 安裝目錄的配置以及交叉編譯的配置。 配置完成后開始編譯,這里用的編譯工具鏈是 : make 編譯完成后安裝: make install 這樣 Qt 就被安裝在 /usr/local/Trolltech/ 目中下。 最后一步是設置環(huán)境變量, 在命令行下輸入 vim /etc/profile 打開文件, 在文件最后添加如下內容: export PATH=/usr/local/Trolltech/:$PATH export LD_LIBRARY_PATH=/usr/local/Trolltech/:$LD_LIBRARY_PATH 一個是 qmake 路徑,一個是 Qt 庫的路徑, 保存并 退出后,要使設置生效還要輸入如下命令: source /etc/profile 至此, Qt/Embedded 開發(fā)環(huán)境搭建完成。 下載運行 首先在 Linux 命令行下需要 3 步操作: ( 1) 建立工程文件 : qmake project ( 2) 生成 Makefile 文件 : qmake ( 3) 對整個工程進行編譯,生成可執(zhí)行文件 : make。 然后使用 SecureCRT 軟件啟動開發(fā)板和下載可執(zhí)行文件。 SecureCRT 是一個仿真終端連接工具。它可以方便的連接 SSH 服務器,遠程管理 Linux。同時 ,它還能使用多種協(xié)議方便的上傳下載文件。 使用開發(fā)板需要安裝的 USB 驅動和USB 轉串驅動可以對照開發(fā)板手冊提前安裝 好。連接好開發(fā)板 ,打開 SecureCRT軟件,點擊快速連接, 在彈出窗口中進行連接設置, 協(xié)議 選擇 為 Serial,端口設置為 設備管理器中增加的 COM 口, 波特率設為 115200,去掉 RTS/CTS 的勾選,具體的連接設置如 下圖 所示。 常州大學本科生畢業(yè)設計 (論文) 第 25 頁 共 30 頁 圖 SecureCRT 連接設置 點擊連接就完成了配置。 然后按照 以下幾個步驟進行可執(zhí)行文件的下載與運行: ( 1) 按下開發(fā)板的復位鍵,在 SecureCRT 窗口中跳出菜單選項,鍵入“ b”啟動 linux 系統(tǒng)。 ( 2) 在 linux 命令行下鍵入“ rz” , 如圖 所示 在彈出窗口中添加 可執(zhí)行文件 并 下載到開發(fā)板上的 linux 系統(tǒng) 根目錄下 。 圖 可執(zhí)行文件下載 常州大學本科生畢業(yè)設計 (論文) 第 26 頁 共 30 頁 ( 3) 在運行可執(zhí)行文件之前, 先 要將 文件的權限進行修改, 否則不能執(zhí)行。在命令行下 輸 入 chmod 777 Tetrix,把 Tetrix 文件修改為可讀可寫可執(zhí)行的權限 。 ( 4) 要執(zhí)行程序,就在命令行下鍵入 ./Tetrix –qws。在嵌入式 QT 版本中,程序需要服務器或自己作為服務器程序。服務器程序構造的一個方 法就是使用 qws 命令選項啟動程序。如果不添加 qws 命令,程序將以客戶端形式啟動,這時候啟動失會敗。 程序啟動后,按 S 鍵開始運行游戲,方塊會自動下降,如下圖 所示: 圖 運行效果界面 下圖 所示,按下 P 鍵 , 在分數下面顯示“ pause!”標簽表明游戲處于暫停狀態(tài),再次按下 P 鍵,“ pause!”標簽會消失,方塊繼續(xù)下降。由于在此之 前已 消除 2 行方塊, 圖上 score 顯示 分數為 200。 The current difficulty 顯示為 2,這
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1