科技論文-基于ARM俄羅斯方塊聯(lián)機(jī)游戲設(shè)計(jì)_第1頁
科技論文-基于ARM俄羅斯方塊聯(lián)機(jī)游戲設(shè)計(jì)_第2頁
科技論文-基于ARM俄羅斯方塊聯(lián)機(jī)游戲設(shè)計(jì)_第3頁
科技論文-基于ARM俄羅斯方塊聯(lián)機(jī)游戲設(shè)計(jì)_第4頁
科技論文-基于ARM俄羅斯方塊聯(lián)機(jī)游戲設(shè)計(jì)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于ARM俄羅斯方塊聯(lián)機(jī)游戲設(shè)計(jì)摘要:俄羅斯方塊俄羅斯方塊【9】(Tetris,俄文:Тетрис)是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,它由俄羅斯人阿列克謝·帕基特諾夫發(fā)明,故得此名。俄羅斯方塊的基本規(guī)則是移動、旋轉(zhuǎn)和擺放游戲自動輸出的各種方塊,使之排列成完整的一行或多行并且消除得分。由于上手簡單、老少皆宜,從而家喻戶曉,風(fēng)靡世界。也許大家覺得俄羅斯方塊有什么好聯(lián)機(jī)的,是這樣說沒錯(cuò),但世界上所有的很多事情覺得很無趣的事情確能夠成為一個(gè)有趣的事情,這樣的現(xiàn)象也是常見的,還有我們玩QQ里面的游戲,比如消除游戲,這個(gè)不也是聯(lián)機(jī)游戲嗎,雖然好像沒什么聯(lián)機(jī)性,但卻為什么很多人玩。競爭,現(xiàn)在很多人在游戲中為的就是個(gè)名次,高分,所以一個(gè)聯(lián)機(jī)游戲具有競爭性才是最重要的。對于本次開發(fā)的俄羅斯方塊游戲除了具有競爭性外,還加入高度的可玩性,玩家之間可以彼此釋放技能,比如讓對方加速,讓對方游戲區(qū)域旋轉(zhuǎn)等效果,確實(shí)可以瞬間讓人覺得一個(gè)很乏味很普通的游戲瞬間變?yōu)橐粋€(gè)很有趣很高端的一個(gè)游戲。本文基于ARM下的俄羅斯方塊聯(lián)機(jī)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了研究。首先闡述了俄羅斯方塊游戲的發(fā)展背景,發(fā)展現(xiàn)狀,以及發(fā)展趨勢。分析了開發(fā)俄羅斯方塊聯(lián)機(jī)軟件的必要性和可行性,對開發(fā)俄羅斯方塊軟件進(jìn)行了需求分析,系統(tǒng)設(shè)計(jì),探討了俄羅斯方塊聯(lián)機(jī)軟件的開發(fā)方法和實(shí)現(xiàn)技術(shù)。對于本俄羅斯方塊算法,下面也將進(jìn)行詳細(xì)描述,另外還有用到的QT跨平臺的編程語言,以及交叉編譯工具鏈的使用。關(guān)鍵詞:QT;ARM;俄羅斯方塊;Socket通信。指導(dǎo)老師簽名:南昌航空大學(xué)東軟班綜合報(bào)告PAGEPAGE4TetrisonlinegamedesignbasedonARMAbstract:Tetris(Tetris,Ru:Тетрис)isapopularglobalTVgameandPSPgames,itconsistsoftheRussianAlexeipalmerjester’sinvention,thereforethename.Tetrisisthebasicrulesofmovement,rotation,andputthegameautomaticallyoutputvariousdiamondsmakeitintoacompleteoneormorelinesandeliminatescores.Becauseitissimple,foryoungandold,tohouseholdnames,popularintheworld.MaybeyouthinkofanygoodonlineTetris,saidyes,butallthethingsintheworldfeelveryboringthingsitcanbecomeaninterestingthings,suchaphenomenonalsoiscommon,andweplaytheinsideoftheQQgame,suchastheeliminationofthegame,thisisnotaonlinegame,too,althoughnotonline,butwhyalotofpeopleplay.Competition,nowalotofpeopletoaplaceinthegame,goodgrades,soanonlinecompetitivegameisthemostimportantthing.ForthedevelopmentofTetrisgameinadditiontocompetitive,alsotojointhehighplayability,playerscanreleaseeachotherbetweenskills,suchastoaccelerateeachother,lettheothersideeffects,suchasrotatinggame,canletapersonfeelamomentveryboringveryordinarygameintoonehighendaveryinterestinggame.ThisarticleisbasedontheARMofthedesignandimplementationsofTetrisonlinewerestudied.FirstlyexpoundsthedevelopmentbackgroundofTetrisgame,developmentpresentsituation,anddevelopmenttrend.AnalyzedthenecessityandfeasibilityofdevelopingtheTetrisonlinesoftware,Tetrissoftwaredevelopedforthedemandanalysis,systemdesign,discussestheTetrisonlinesoftwaredevelopmentmethodandrealizationtechnology.ForthisTetrisalgorithmisdescribedindetailbelow,anduseofQTcross-platformprogramminglanguageandtheuseofcrosscompilertoolchain.Keyword:QT;ARM;Tetris;Sockettransfer.SignatureofSupervisor:

學(xué)士學(xué)位論文原創(chuàng)性聲明本人聲明,所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立完成的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含法律意義上已屬于他人的任何形式的研究成果,也不包含本人已用于其他學(xué)位申請的論文或成果。對本文的研究作出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式表明。本人完全意識到本聲明的法律后果由本人承擔(dān)。作者簽名:日期:學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)南昌航空大學(xué)可以將本論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。作者簽名:日期:導(dǎo)師簽名:日期:1.最終紙版材料,需要正式裝訂,每人1份,需要注意中英文摘要里去掉"學(xué)生姓名"\"班級"\"指導(dǎo)教師";2.最終電子材料,上傳服務(wù)器,并刻錄光盤兩份;3.額外提交學(xué)校的紙質(zhì)版中英文論文摘要各1份(若學(xué)生論文成績達(dá)到90分以上,即優(yōu)秀論文,則需要提交2份),電子版中英文論文摘要各1份,需要注意中英文摘要保留"學(xué)生姓名"\"班級"\"指導(dǎo)教師";

基于ARM俄羅斯方塊聯(lián)機(jī)游戲設(shè)計(jì)摘要俄羅斯方塊俄羅斯方塊【9】(Tetris,俄文:Тетрис)是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,它由俄羅斯人阿列克謝·帕基特諾夫發(fā)明,故得此名。俄羅斯方塊的基本規(guī)則是移動、旋轉(zhuǎn)和擺放游戲自動輸出的各種方塊,使之排列成完整的一行或多行并且消除得分。由于上手簡單、老少皆宜,從而家喻戶曉,風(fēng)靡世界。也許大家覺得俄羅斯方塊有什么好聯(lián)機(jī)的,是這樣說沒錯(cuò),但世界上所有的很多事情覺得很無趣的事情確能夠成為一個(gè)有趣的事情,這樣的現(xiàn)象也是常見的,還有我們玩QQ里面的游戲,比如消除游戲,這個(gè)不也是聯(lián)機(jī)游戲嗎,雖然好像沒什么聯(lián)機(jī)性,但卻為什么很多人玩。競爭,現(xiàn)在很多人在游戲中為的就是個(gè)名次,高分,所以一個(gè)聯(lián)機(jī)游戲具有競爭性才是最重要的。對于本次開發(fā)的俄羅斯方塊游戲除了具有競爭性外,還加入高度的可玩性,玩家之間可以彼此釋放技能,比如讓對方加速,讓對方游戲區(qū)域旋轉(zhuǎn)等效果,確實(shí)可以瞬間讓人覺得一個(gè)很乏味很普通的游戲瞬間變?yōu)橐粋€(gè)很有趣很高端的一個(gè)游戲。本文基于ARM下的俄羅斯方塊聯(lián)機(jī)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行了研究。首先闡述了俄羅斯方塊游戲的發(fā)展背景,發(fā)展現(xiàn)狀,以及發(fā)展趨勢。分析了開發(fā)俄羅斯方塊聯(lián)機(jī)軟件的必要性和可行性,對開發(fā)俄羅斯方塊軟件進(jìn)行了需求分析,系統(tǒng)設(shè)計(jì),探討了俄羅斯方塊聯(lián)機(jī)軟件的開發(fā)方法和實(shí)現(xiàn)技術(shù)。對于本俄羅斯方塊算法,下面也將進(jìn)行詳細(xì)描述,另外還有用到的QT跨平臺的編程語言,以及交叉編譯工具鏈的使用。關(guān)鍵字:QT;ARM;俄羅斯方塊;Socket通信。

AbstractTetris(Tetris,Ru:Тетрис)isapopularglobalTVgameandPSPgames,itconsistsoftheRussianAlexeipalmerjester’sinvention,thereforethename.Tetrisisthebasicrulesofmovement,rotation,andputthegameautomaticallyoutputvariousdiamondsmakeitintoacompleteoneormorelinesandeliminatescores.Becauseitissimple,foryoungandold,tohouseholdnames,popularintheworld.MaybeyouthinkofanygoodonlineTetris,saidyes,butallthethingsintheworldfeelveryboringthingsitcanbecomeaninterestingthings,suchaphenomenonalsoiscommon,andweplaytheinsideoftheQQgame,suchastheeliminationofthegame,thisisnotaonlinegame,too,althoughnotonline,butwhyalotofpeopleplay.Competition,nowalotofpeopletoaplaceinthegame,goodgrades,soanonlinecompetitivegameisthemostimportantthing.ForthedevelopmentofTetrisgameinadditiontocompetitive,alsotojointhehighplayability,playerscanreleaseeachotherbetweenskills,suchastoaccelerateeachother,lettheothersideeffects,suchasrotatinggame,canletapersonfeelamomentveryboringveryordinarygameintoonehighendaveryinterestinggame.ThisarticleisbasedontheARMofthedesignandimplementationsofTetrisonlinewerestudied.FirstlyexpoundsthedevelopmentbackgroundofTetrisgame,developmentpresentsituation,anddevelopmenttrend.AnalyzedthenecessityandfeasibilityofdevelopingtheTetrisonlinesoftware,Tetrissoftwaredevelopedforthedemandanalysis,systemdesign,discussestheTetrisonlinesoftwaredevelopmentmethodandrealizationtechnology.ForthisTetrisalgorithmisdescribedindetailbelow,anduseofQTcross-platformprogramminglanguageandtheuseofcrosscompilertoolchain.Keywords:QT;ARM;Tetris;Sockettransfer.論文研究背景 俄羅斯方塊游戲原本是前蘇聯(lián)科學(xué)家阿列克謝·帕基特諾夫所開發(fā)的教育用軟件,之后開始提供授權(quán)給各個(gè)游戲公司,造成各平臺上軟件大量發(fā)行的現(xiàn)象。GameBoy版的俄羅斯方塊在日本賣出424萬套,是GameBoy史上賣最好的游戲。海灣戰(zhàn)爭時(shí),也是前線美軍最常拿消磨時(shí)間的游戲之一。由于俄羅斯方塊具有的數(shù)學(xué)性、動態(tài)性與知名度,也經(jīng)常拿來作為游戲程序設(shè)計(jì)的練習(xí)題材。俄羅斯方塊曾經(jīng)造成的轟動與造成的經(jīng)濟(jì)價(jià)值可以說是游戲史上的一件大事,它看似簡單但卻變化無窮,令人上癮。相信大多數(shù)用戶都還記得為它癡迷得茶不思飯不想的那個(gè)俄羅斯方塊時(shí)代。俄羅斯方塊上手極其簡單,但是要熟練地掌握其中的操作與擺放技巧,難度卻不低。作為家喻戶曉老少皆宜的大眾游戲,其普及程度可以說是史上任何一款游戲都無法相比的。論文研究意義 該游戲是一款基于ARM平臺的游戲,不僅在ARM平臺下運(yùn)行,Linux和window下都能夠運(yùn)行。所用到的技術(shù)都是和嵌入式系統(tǒng)相關(guān)。嵌入式系統(tǒng)無疑是當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲器等)非常有限,并且對成本很敏感,有時(shí)對實(shí)時(shí)響應(yīng)要求很高等。特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。像我們平常常見到的手機(jī)、PDA、電子字典、可視電話、VCD/DVD/MP3Player、數(shù)字相機(jī)(DC)、數(shù)字?jǐn)z像機(jī)(DV)、U-Disk、機(jī)頂盒(SetTopBox)、高清電視(HDTV)、游戲機(jī)、智能玩具、交換機(jī)、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等都是典型的嵌入式系統(tǒng)?;贏RM俄羅斯方塊聯(lián)機(jī)的系統(tǒng)設(shè)計(jì)硬件方案設(shè)計(jì)CPU處理器

-SamsungS3C2440A,主頻400MHz,最高533Mhz

SDRAM內(nèi)存

-在板64MSDRAM

-32bit數(shù)據(jù)總線

-SDRAM時(shí)鐘頻率高達(dá)100MHz

FLASH存儲

在板256MNandFlash,掉電非易失(用戶可定制256M/1G,批量采購升級為1GFlash加60元!)

在板2MNorFlash,掉電非易失,已經(jīng)安裝BIOS

LCD顯示

-板上集成4線電阻式觸摸屏接口,可以直接連接四線電阻觸摸屏

-支持黑白、4級灰度、16級灰度、256色、4096色STN液晶屏,尺寸從3.5寸到12.1寸,屏幕分辨率可

以達(dá)到1024x768象素;

-支持黑白、4級灰度、16級灰度、256色、64K色、真彩色TFT液晶屏,尺寸從3.5寸到12.1寸,屏幕

分辨率可以達(dá)到1024x768象素;

-標(biāo)準(zhǔn)配置為256K色240x320/3.5英寸TFT真彩液晶屏,帶觸摸屏;

接口和資源

-1個(gè)100M以太網(wǎng)RJ-45接口(采用DM9000網(wǎng)絡(luò)芯片)

-3個(gè)串行口

-1個(gè)USBHost

-1個(gè)USBSlaveB型接口

-1個(gè)SD卡存儲接口

-1路立體聲音頻輸出接口,一路麥克風(fēng)接口;

-1個(gè)2.0mm間距10針JTAG接口

-4USERLeds

-6USERbuttons(帶引出座)

-1個(gè)PWM控制蜂鳴器

-1個(gè)可調(diào)電阻,用于AD模數(shù)轉(zhuǎn)換測試

-1個(gè)I2C總線AT24C08芯片,用于I2C總線測試

-1個(gè)2.0mm間距20pin攝像頭接口

-板載實(shí)時(shí)時(shí)鐘電池

-電源接口(5V),帶電源開關(guān)和指示燈

系統(tǒng)時(shí)鐘源

-12M無源晶振

實(shí)時(shí)時(shí)鐘

-內(nèi)部實(shí)時(shí)時(shí)鐘(帶后備鋰電池)

擴(kuò)展接口

1個(gè)34pin2.0mmGPIO接口

1個(gè)40pin2.0mm系統(tǒng)總線接口

規(guī)格尺寸

-100x100(mm)

操作系統(tǒng)支持

-Linux+QtE4.6.3+

Qtopia-2.2.0

-WindowsCE.NET6.0(R3)圖1.開發(fā)板示意圖軟件方案設(shè)計(jì)【1】客戶端模塊 客戶端用戶通過和GUI界面進(jìn)行交互,向客戶端通信層發(fā)送各種請求,客戶端通信層收到請求后發(fā)向服務(wù)端,最后收到服務(wù)端的回應(yīng)達(dá)到消息響應(yīng)的效果。 本項(xiàng)目客戶端請求有:登錄、注冊、舉手、暫停、各個(gè)技能釋放、游戲結(jié)果提交、游戲退出等請求。服務(wù)端通過這些請求對應(yīng)的各種協(xié)議進(jìn)行回應(yīng)各個(gè)請求結(jié)果,然后客戶端接收到后處理各個(gè)回應(yīng)實(shí)現(xiàn)通信。 以下是客戶端模塊結(jié)構(gòu)圖:圖2.客戶端模塊結(jié)構(gòu)圖服務(wù)端模塊服務(wù)端,開啟端口進(jìn)行監(jiān)聽,本項(xiàng)目端口為9527,開通監(jiān)聽后,開始監(jiān)聽客戶端登錄、注冊、舉手、暫停、各個(gè)技能釋放、游戲結(jié)果提交、游戲退出等請求,然后通過和數(shù)據(jù)庫進(jìn)行交互并將回應(yīng)結(jié)果發(fā)送給客戶端。以下是服務(wù)端模塊結(jié)構(gòu)圖:圖3.服務(wù)端模塊結(jié)構(gòu)圖數(shù)據(jù)庫設(shè)計(jì)由于涉及信息存儲不是很多,所以數(shù)據(jù)庫設(shè)計(jì)這方面只建立了一個(gè)表。表結(jié)構(gòu)如下:表1.序號字段名字段類型說明備注1accountvarchar賬號主鍵2usernamevarchar用戶名3passwordvarchar密碼4winvarchar總贏數(shù)5losevarchar總輸數(shù)6gradevarchar歷史最高分7statusvarchar在線狀態(tài)1在線,0不在線8roomvarchar所在房間不在房間時(shí)為9999整體模塊動作時(shí)序圖4.時(shí)序圖基于ARM俄羅斯方塊聯(lián)機(jī)的實(shí)現(xiàn)技術(shù)QT圖形界面編程的信號與槽【5】信號與槽是一種高級接口,應(yīng)用于對象之間的通信,它是QT的核心特性。信號和槽能攜帶任意數(shù)量和任意類型的參數(shù)。我們可以將很多信號與單個(gè)的槽進(jìn)行連接,也可以將單個(gè)的信號與很多的槽進(jìn)行連接。使用信號與槽,發(fā)送者和接收者可以不用知道object的任何信息。 在此次畢業(yè)設(shè)計(jì)中,主要應(yīng)用信號與槽,進(jìn)行不同窗體之間的通信,實(shí)現(xiàn)了重畫機(jī)制以及在不同窗口中處理從通信模塊發(fā)過來的請求數(shù)據(jù)。Socket通信【6】(1)、Socket通常也稱作“套接字”,應(yīng)用程序通常通過“套接字”以下是TCP通信的三次握手示意圖:向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。根據(jù)連接啟動的方式以及本地套接字要連接的目標(biāo),套接字之間的連接過程可以分為三個(gè)步驟:服務(wù)監(jiān)聽,客戶端請求,連接確認(rèn)。圖5.TCP三次握手示意圖 (2)、QT中提供的Socket完全使用了類的封裝機(jī)制,使用戶不需要接觸底層的各種結(jié)構(gòu)體操作。而且它采用QT本身的信號與槽機(jī)制,使編寫的程序更容易理解。(3)、Socket和QTcpServer類實(shí)現(xiàn)了本次圍棋聯(lián)機(jī)軟件的客戶端和服務(wù)器。TCP是一個(gè)流式協(xié)議,對于應(yīng)用程序來說,數(shù)據(jù)是一個(gè)很長的流。QTcpSocket繼承自QIODevice,可以從QDataStream或QTextStream中讀取或?qū)懭霐?shù)據(jù),在此次畢業(yè)設(shè)計(jì),用的是從QDataStream讀取和寫入數(shù)據(jù)。多線程編程【3】【4】【6】 多線程處理可以同時(shí)、運(yùn)行多個(gè)線程。由于多線程應(yīng)用程序?qū)⒊绦騽澐殖啥鄠€(gè)獨(dú)立的任務(wù),因此可以在以下方面顯著提高性能:多線程技術(shù)使程序的響應(yīng)速率更快,因?yàn)橛脩艚缑婵梢栽谶M(jìn)行其它工作的同時(shí)一直處于活動狀態(tài);當(dāng)前沒有進(jìn)行處理的任務(wù)時(shí)可以將處理器事件讓給其它任務(wù);占用大量處理時(shí)間的任務(wù)可以定期將處理器時(shí)間讓給其它任務(wù);可以隨時(shí)停止任務(wù);可以分別設(shè)置各個(gè)任務(wù)的優(yōu)先級以優(yōu)化性能QT通過三種形式提供了對線程的支持,使得開發(fā)輕巧的多線程QT程序更為容易,并能充分利用多處理器及其的優(yōu)勢。它們分別:平臺無關(guān)的線程類線程安全的事件投遞跨線程的信號—槽連接Sqlite數(shù)據(jù)庫編程【2】 SQLite是遵守ACID的關(guān)系數(shù)據(jù)庫管理系統(tǒng),它包含在一個(gè)相對小的C庫中。它是D.RichardHipp創(chuàng)建的公有領(lǐng)域項(xiàng)目。不像常見的客戶端/服務(wù)器結(jié)構(gòu)范例,SQLite引擎不是個(gè)程序與之通信的獨(dú)立進(jìn)程,而是連接到程序中成為它的一個(gè)主要部分。所以主要的通信協(xié)議是在編程語言內(nèi)的直接API調(diào)用。這在消耗總量、延遲時(shí)間和整體簡單性上有積極的作用。整個(gè)數(shù)據(jù)庫(定義、表、索引和數(shù)據(jù)本身)都在宿主主機(jī)上存儲在一個(gè)單一的文件中。它的簡單的設(shè)計(jì)是通過在開始一個(gè)事務(wù)的時(shí)候鎖定整個(gè)數(shù)據(jù)文件而完成的。俄羅斯方塊算法實(shí)現(xiàn)技術(shù)【7】游戲map區(qū)域: 圖形背景采用藍(lán)色背景,20行*10列,用一個(gè)指針數(shù)組存儲游戲下一個(gè)圖形提示區(qū)域: 4行*4列,也用一個(gè)指針數(shù)組存儲方塊種類: 一共七種:分別以S、Z、L、J、I、O、T這7個(gè)字母的形狀來命名 I:一次最多消除四層 J(左右):最多消除三層,或消除二層 L:最多消除三層,或消除二層 O:消除一至二層 S(左右):最多二層,容易造成孔洞 Z(左右):最多二層,容易造成孔洞 T:最多二層方塊顏色設(shè)置: 每個(gè)種類方塊的數(shù)組里面的數(shù)分別代表某種顏色,如下方塊的定義unsignedcharSquareShape[4*4]={ 0,0,0,0, 0,1,1,0, 0,1,1,0, 0,0,0,0};該定義為田字形方塊,1是顏色值的代表,其他方塊值分別定義為11,21,31,41,51,61,然后通過switch選擇哪種顏色。方塊旋轉(zhuǎn)算法:旋轉(zhuǎn)是在上圖矩陣中進(jìn)行旋轉(zhuǎn)的,因?yàn)樾D(zhuǎn)角度是90度,所以可以通過對稱變換進(jìn)行旋轉(zhuǎn)。算法代碼如下:for(inti=0;i<4;i++){ for(intj=0;j<4;j++) { *(pszTmp+(3-j)*4+i)=*(pszShape+i*4+j);//rotate90angle }}圖6.方塊旋轉(zhuǎn)流程圖方塊碰撞算法:碰撞檢測通過當(dāng)前方塊矩陣與map區(qū)域的指針數(shù)組進(jìn)行按位與操作,如果為0則沒有碰撞,否則產(chǎn)生碰撞。圖7.碰撞檢測游戲結(jié)束判斷:如果方塊一出來就發(fā)生碰撞就說明游戲結(jié)束了。移植技術(shù)【8】所有功能及算法都實(shí)現(xiàn)后,在PC端都能夠正確編譯并執(zhí)行,但本項(xiàng)目最主要的是能夠在mini2440開發(fā)板上運(yùn)行,所以要進(jìn)行交叉編譯。交叉編譯過程大致如下:1.安裝標(biāo)準(zhǔn)的C開發(fā)環(huán)境,由于Linux安裝默認(rèn)是不安裝的,所以需要先安裝一下(如果已經(jīng)安裝好的話,就可以免去這一步了):#sudoapt-getinstallgccg++libgcc1libg++makegdb2.下載arm-linux-gcc-3.4.1.tar.bz2arm-linux-gcc-3.4.1.tar.bz2的下載地址如下:/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz23.解壓arm-linux-gcc-3.4.1.tar.bz2#tar–jxvfarm-linux-gcc-3.4.1.tar.bz2解壓過程需要一段時(shí)間,解壓后的文件形成了usr/local/文件夾,進(jìn)入該文件夾,將arm文件夾拷貝到/usr/local/下#cdusr/local/#cp-rvarm/usr/local/現(xiàn)在交叉編譯程序集都在/usr/local/arm/3.4.1/bin下面了4. 修改環(huán)境變量,把交叉編譯器的路徑加入到PATH。(有三種方法,強(qiáng)烈推薦使用方法一) 方法一:修改/etc/bash.bashrc文件#vim/etc/bash.bashrc在最后加上:exportPATH=$PATH:/usr/local/arm/3.4.1/binexportPATH方法二:修改/etc/profile文件: #vim/etc/profile增加路徑設(shè)置,在末尾添加如下,保存/etc/profile文件:exportPATH=$PATH:/usr/local/arm/3.4.1/bin方法三:#exportPATH=$PATH:/usr/local/arm/3.4.1/bin注:(這只能在當(dāng)前的終端下才是有效的!)5.立即使新的環(huán)境變量生效,不用重啟電腦:對應(yīng)方法一:#source/root/.bashrc對應(yīng)方法二:#source/etc/profile6.檢查是否將路徑加入到PATH:#echo$PATH 顯示的內(nèi)容中有/usr/local/arm/bin,說明已經(jīng)將交叉編譯器的路徑加入PATH。至此,交叉編譯環(huán)境安裝完成。7.測試是否安裝成功#arm-linux-gcc-v結(jié)論 該項(xiàng)目通過基于Socket通信,多線程編程,以及QT圖形界面化編程,SQLITE數(shù)據(jù)庫編程,實(shí)現(xiàn)了多人間的互相通信功能。 本論文在也是通過在韓海峰老師以及苗利老師的指導(dǎo)幫助下進(jìn)行完成,在該項(xiàng)目開發(fā)階段也遇到過不少問題,問題肯定是會有的,最重要的是碰到一個(gè)問題,該怎么去解決這個(gè)問題,我平時(shí)大多數(shù)通過谷歌搜索答案,雖然是答案,但不能一味的照搬,要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論