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

正文內(nèi)容

基于arm9的貪吃蛇游戲(完整版)

2025-08-01 14:20上一頁面

下一頁面
  

【正文】 xNodeType=TP_SkBody。WorldArray[W_YSize/2][W_XSize/21]。 LineTo(pdc,620,480)。enum WN_Type{ TP_Space, TP_Block, TP_Cake, TP_SkBody, //Snake Body TP_SkHead, TP_SkTail}。 initOSDC()。任務(wù)一為主任務(wù),在創(chuàng)建任務(wù)的時候,賦給它的優(yōu)先級別比任務(wù)二高,所以任務(wù)一優(yōu)先運行,任務(wù)二處于就緒狀態(tài),因為任務(wù)一主要是等待鍵盤消息,在無鍵盤消息的時候,任務(wù)一被掛起,這時候任務(wù)二進入運行狀態(tài)。游戲分三個關(guān)口,第一關(guān)沒有障礙物,第二關(guān)有2個障礙物,第三關(guān)有四個障礙物。配合FFTICE使用,,片內(nèi)運行情況盡在掌握。17.CAN BUS:設(shè)置1個CAN 口,采用MCP2510 和TJA1050。12.ADC:板載3個電位器和選擇跳線,同時在板上設(shè)模擬電壓輸入專用接口。6.LCD:兼容多種LCD,可采用5 寸256 色屏或8 寸16bit 真彩屏,同時預(yù)留一個24bit 接口。本系統(tǒng)采ARM9+uC/OS II開發(fā)設(shè)計,具有精度高、運行穩(wěn)定、實時性好、抗干擾能力強、性價比高的特點,可以在各種工業(yè)場合中廣泛應(yīng)用,達到了設(shè)計的初衷。 uC/osII的任務(wù)調(diào)度是完全基于任務(wù)優(yōu)先級的搶占式調(diào)度,也就是最高優(yōu)先級的任務(wù)一旦處于就緒狀態(tài),則立即搶占正在運行的低優(yōu)先級任務(wù)的處理器資源。每個分區(qū)中包含整數(shù)個大小相同的內(nèi)存塊,但不同分區(qū)之間的內(nèi)存塊大小可以不同。μC/OS操作系統(tǒng)中每個任務(wù)可以有5種狀態(tài):休眠態(tài)、就緒態(tài)、運行態(tài)、等待或掛起狀態(tài)、中斷態(tài),在任一個時候,任務(wù)的狀態(tài)一定是這5種狀態(tài)之一。它被廣泛應(yīng)用于微處理器、微控制器和數(shù)字信號處理器。uC/OSII只是一個實時操作系統(tǒng)內(nèi)核,它僅僅包含了任務(wù)調(diào)度,任務(wù)管理,時間管理,內(nèi)存管理和任務(wù)間的通信和同步等基本功能。任務(wù)在等待消息、郵箱或者信號量等事件的到來的時候會進入掛起狀態(tài),當任務(wù)接到消息以后,則處于就緒狀態(tài)。用戶需要動態(tài)分配內(nèi)存時,系統(tǒng)選擇一個適當?shù)姆謪^(qū),按塊來分配內(nèi)存。為了簡化系統(tǒng)設(shè)計,uC/OSII規(guī)定所有任務(wù)的優(yōu)先級不同,因為任務(wù)的優(yōu)先級也同時唯一標志了該任務(wù)本身。試驗箱基本硬件信息1.S3C2410S Core 小板:采用S3C2410X 處理器,64M NANDFLASH 64RAM??梢灾С职逋?bit 或24bit 屏。13.IDE/CF 卡插座: 英尺的筆記本硬盤讀寫和IDE 模式下的CF 卡讀寫。18.Double DA:設(shè)置兩個DAC 端口,采用MAX504 接SPI 總線。目前支持的硬件調(diào)試器有MultiICE以及兼容MultiICE的調(diào)試工具如FFTICE。貪吃蛇撞到矩形邊界,障礙物或者自己身體的一部分,游戲即結(jié)束,重新開始。任務(wù)一程序流程框圖如圖33所示, 該任務(wù)完成對鍵盤消息的接收,識別,并改變相應(yīng)變量任務(wù)二流程圖:如圖34所示,主要功能是控制蛇的速度并在屏幕上顯示蛇的移動,并完成對分數(shù)、游戲等級、和游戲用時的記錄和顯示。 LoadFont()。enum Direction {Up=0,Down=1,Left=2,Right=3}。 MoveTo(pdc,220,440)。 xNodeType=TP_SkHead。 xNodeisBlock=1。 UpdateNextNode(xNode,Left)。 else if (score==10) flag2=1。例如剛開始蛇是5節(jié),這時候依次把第2四節(jié)的屬性給第1節(jié);把第3節(jié)(即蛇頭)的屬性給第2節(jié);把第4四節(jié)的屬性給第3節(jié);把第4節(jié)(即蛇頭)的屬性給第3節(jié);把第5節(jié)(即蛇頭)的屬性給第4節(jié)。 TailNode Type = TP_SkTail。本設(shè)計用一個矩形方框來代表食物,所以通過上面介紹的方法產(chǎn)生食物坐標后,對應(yīng)在該坐標的位置畫上一個矩形方框。 DrawPoint ( CakeNode )。 //消息循環(huán) For ( 。OSTimeDly ( GetSpeed (gamelevel))。 } }四 程序下載與調(diào)試把程序下載到試驗箱中:(1)執(zhí)行菜單Project | Make 對工程進行編譯連接。(5)等待程序裝載完畢以后,通過Execute | Go 菜單以及Execute | Stop(或者工具欄中的相應(yīng)按鈕)運行或暫停程序。注意:在進行調(diào)試時在ADS 中必須選擇當前工程的Debug 版本,如果選擇Release 版本則無法正常調(diào)試程序。解決方法:要優(yōu)化蛇控制程序,簡化程序過程。豐富的想象力是建立在豐富的知識的基礎(chǔ)上,所以我們要通過多的途徑來幫助自己建立較豐富的知識結(jié)構(gòu)。附錄程序代碼:/***************************************************************************\ Copyright (c) 20042007 threewater, All rights reserved. by threewter \***************************************************************************//***************************************************************************\ 說明: C main 函數(shù),ucosii初始化等定義 Bug TODO list 修正 2004512 創(chuàng)建\***************************************************************************/include../ucosii/ /* uC/OS interface */include ../ucosii/add/include ../inc/include ../ucosii/add/include ../inc/sys/include ../src/gui/include ../ucosii/add/include include include include pragma import (__use_no_semihosting_swi ) // ensure no functions that use semihosting ///******************任務(wù)定義***************///OS_STK Main_Stack [STACKSIZE] = {0, }。}。 //坐標類型的變量 struct WorldNode* Next。 //需要增加的蛇長計數(shù)器const INT8U ReverseDir[4] = {1,0,3,2}。 //定義 第二關(guān)游戲標志U8 flag2=0。//返回采樣值 }///***********蛇的步進速度控制函數(shù)*************///INT32S GetSpeed ( U8 level ) // 關(guān)口作為傳遞參數(shù){ int ADData。 U16 text1 [ 100 ]。 MoveTo ( pdc,220,440 )。y++ ) // 定義各個點的屬性 for( x=0 。 } else { xNode Type = TP_Space。 ( y == W_YSize/3 | y == W_YSize*2/3 ))|( x == 0||y== 0||x == W_XSize1|| y == W_YSize1 ) ) //如果是第三關(guān)則有四個障礙物 { xNode Type = TP_Block。 HeadNode = xNode。 xNode PreDir = Left。 RandCake()。 //延遲一定時間 DestoryDC ( pdc )。 DrawPoint( CakeNode )。x++ ) { xNode = amp。break。 if ( xNode Type == TP_SkHead) if( ReverseDir[Dir] == HeadNode PreDir ) return。 case Right: ++。//清屏 TextOut ( pdc,230,230,text3,TRUE,FONTSIZE_MIDDLE)。 DrawPoint ( TailNode )。 //new head if( HeadNode isBlock ) //判斷是否妝到障礙物 或者邊界 { nRet = 1。 // 重新隨機產(chǎn)生食物 } else { flag1 = 0。}void Sk_Key_Down ( void ){ UpdateNextNode( HeadNode,Down )。ERRNO )。 break。 strChar2Unicode ( s16buf ,Level: )。 TextOut ( pdc ,100 ,450 ,s16buf ,TRUE ,FONTSIZE_MIDDLE )。 Int2Unicode ( shi ,s16buf )。 Int2Unicode ( miao ,s16buf )。 //初始化AD轉(zhuǎn)換器if USE_MINIGUI == 0 initOSMessage()。Snake_Stack[STACKSIZE1] , Snake_Task_Prio )。//定義消息結(jié)構(gòu) ClearScreen()。 break。 ShowWorld ()。 Nextlevel ()。//刪除消息 } DestoryDC ( pdc )。//創(chuàng)建系統(tǒng)信號量 GameRun = OSSemCreate (1)。 //系統(tǒng)附加任務(wù)初始化 LCD_printf(Starting uCOSII...\n)。 //初始化系統(tǒng)繪圖設(shè)備 LoadFont()。} ///********************Main function**********************///int main ( void){ ARMTargetInit()。 strChar2Unicode ( s16buf,: )。 U8 shi,fen,miao。 Int2Unicode ( gamelevel ,s16buf )。 break。 } else { OSSemPost ( GameRun )。}void Sk_Key_Right ( void ){ UpdateNextNode( HeadNode,Right )。 } //Then ( HeadNode Type == TP_Space ) HeadNode Type = TP_SkHead。 } Else // 如果沒有 判斷是否撞到食物 { HeadNode isBlock = 1。 TailNode Type = TP_SkTail。//延遲一定時間} ///***************蛇步進驅(qū)動函數(shù)****************///INT8U SnakeStep ( void ){ //Drive the Snake to go a step INT8U nRet = 0。 } xNode Dir = D
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1