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

正文內(nèi)容

軟件工程課程設(shè)計(jì)-游戲程序設(shè)計(jì)課程設(shè)計(jì)-wenkub

2022-11-18 04:20:39 本頁(yè)面
 

【正文】 or(j=0。 } // 載入池塘高程 if(!loadHightMap(POOL_MAP_FNAME, POOL_Y_MAP, CELL_COLS, CELL_ROWS)) { return NULL。在本次課程設(shè)計(jì)中,同學(xué)給予了很多的幫助,使我對(duì)整個(gè)課程設(shè)計(jì)的思路有了總體的把握,并耐心的幫助我解決了許多問(wèn)題,使我有了很大的收獲。 迷你地圖的繪制是在 GMiniMap 類中實(shí)現(xiàn)的,該類首先通過(guò) drawRoadTile()方法繪制道路瓦片,然后在通過(guò) setCarPos()方法計(jì)算出指針一定速度和方向,最后使用 draw()繪 制迷你地圖。指針要先平移后旋轉(zhuǎn),從而達(dá)到指針跟隨汽車速度的增加與減少而在不同的位置繪制的效果。廣告牌技術(shù)及無(wú)論賽車怎樣旋轉(zhuǎn)始終是圖片與我們的視線錘子,即賽車旋轉(zhuǎn)多少度,圖片亦隨之旋轉(zhuǎn)相應(yīng)的角度。 賽車模型的加載和繪制 汽車 模型需要從文件讀取,為了顯示汽車輪胎的轉(zhuǎn)動(dòng)和是否剎車(尾燈的亮與不亮 ),車身與四個(gè)輪胎和尾燈要分別繪制。由于在游戲當(dāng)中并不 能看到整個(gè)賽道,所以在繪制時(shí)只需要繪制部分可見(jiàn)的賽道即可。// 顯示列表一些數(shù)據(jù)成員 這樣一些數(shù)據(jù)成員。在繪制是主要使用三角網(wǎng)格技術(shù),將沒(méi)有頂蓋的半球分解成若干個(gè)三角形,分別計(jì)算出每個(gè)三角形各定點(diǎn)的坐標(biāo)和紋理坐標(biāo),再在顯示列表中繪制這些三角形。該類中使用 load()方法用于對(duì)資源的加載。pos)。 7) GDashBoard 方法:( 1)速度變化 , 更新指針角度 void changePointer(double v)。 ( 3)繪制樹(shù)木 virtual void draw()。 3) GSkyDome 方法 :( 1)初始化 GSkyDome(GTexture2D *pTex, double r=1000)。 ( 6)清空數(shù)據(jù)結(jié)構(gòu) , 釋放資源 void clear()。h)。 模塊與流程規(guī)劃 系統(tǒng)流程圖 初始化:這部分執(zhí)行與 其他任何程序類似的標(biāo)準(zhǔn)操作,如內(nèi)存分配,資源獲取,從磁盤(pán)加載數(shù)據(jù)等; 進(jìn)入游戲循環(huán):這部分進(jìn)入游戲循環(huán),用戶將在這里不斷地執(zhí)行動(dòng)作,知道退出主循環(huán)為止; 接收玩家輸入:這部分處理玩家輸入,或?qū)⑵浯鎯?chǔ)到緩沖區(qū),供游戲邏輯使用; 執(zhí)行游戲邏輯:這部分包含游戲代碼的主體部分,將執(zhí)行人工智能,物理系 統(tǒng)和通用游戲邏輯,并根據(jù)結(jié)果在屏幕上繪制下一幀; 圖形渲染 :在這一部分中,講根據(jù)玩家輸入以及邏輯的執(zhí)行結(jié)果,生成下一個(gè)游戲動(dòng)畫(huà)幀。 作為本系統(tǒng)的開(kāi)發(fā)工具, Microsoft Visual C++成為首選。不過(guò)游戲產(chǎn)業(yè)光鮮亮麗的背后卻隱含著高風(fēng)險(xiǎn)、高成本的危機(jī),顯示游戲產(chǎn)業(yè)慢慢步入微利時(shí)代。賽車在場(chǎng)景中的漫游和賽車的地形跟蹤系統(tǒng)和碰撞檢測(cè)構(gòu)成了游戲的主要邏輯。在中國(guó),隨著網(wǎng)絡(luò)的發(fā)展,休閑化游戲擁有了大量的玩家,且逐漸發(fā)展出棋牌類、音樂(lè)類、競(jìng)速類、體育類、格斗類和益智類等多種游戲類型。 最常見(jiàn)的競(jìng)速類游戲就是 賽車游戲 ,玩家可從疾馳的速度中獲得刺激感,而從高超技巧帶來(lái)的流暢性操作中還可獲取一定的滿足感。 關(guān)鍵詞: 3D, OpenGL, 游戲程序設(shè)計(jì), 賽車游戲 引 言 課題背景及意義 當(dāng)前隨著計(jì)算機(jī)的深入普及,越來(lái)越多的人有了個(gè)人電腦,人們運(yùn)用計(jì)算機(jī)完成許多重要的工作,計(jì)算機(jī)在人們的生活中變得越來(lái)越 重要。 在這種趨勢(shì)下各種小型的低成本的游戲軟件應(yīng)運(yùn)而生。它具有可視化的編程界面、詳細(xì)的提示、以及完善的幫助文檔,使得軟件開(kāi)發(fā)人員感到無(wú)比的親切感。 關(guān)閉:退出游戲; 各類的設(shè)計(jì) 1)GGameMap 方法:( 1)載入位圖高 程 static bool loadHightMap(const char *fileName, int **amp。 ( 2)構(gòu)造地圖單例對(duì)象 static GGameMap * create()。 ( 7)載入地圖 bool load(const char *fileName, GTreeBillboard *pTreeBillboard)。 ( 2)繪制 virtual void draw()。 ( 4)根據(jù)視點(diǎn)到樹(shù)木的距離反比較樹(shù)木對(duì)象指針 int gCompareTreePtr(const void *ptr1, const void *ptr2)。 ( 2)繪制儀表盤(pán) virtual void draw()。 ( 3)繪制迷你地圖 virtual void draw()。 天空渲染 天空的渲染主要是使用天空穹技術(shù)來(lái)實(shí)現(xiàn)的。 在程序當(dāng)中,天空穹主要是用 GSkyDome類來(lái)實(shí)現(xiàn)的。同時(shí)還有一個(gè) draw()方法用來(lái)實(shí)現(xiàn)對(duì)天空穹的繪制。 直賽道的繪制是在 GStraightRoad 類當(dāng)中完成的,該類同樣繼承于 GShape類,在 GStraightRoad 的構(gòu)造函數(shù)中實(shí)現(xiàn)了 各個(gè)定點(diǎn)的坐標(biāo)和紋理坐標(biāo)的計(jì)算,最后在通過(guò)調(diào)用該類的 draw()方法實(shí)現(xiàn)直賽道的繪制。用 load()讀取汽車模型的文件,汽車也是用三角網(wǎng)格方法繪制。樹(shù)木圖片加 載后還要對(duì)其進(jìn)行消影,對(duì)樹(shù)木按與視點(diǎn)的遠(yuǎn)近進(jìn)行排序,遠(yuǎn)處的樹(shù)排在前面,繪制的時(shí)候最后繪制。 速度儀的繪制是在 GDashBoard 中完成的,首先該類使用 changePointer()方法獲得在速度改變是指針需要旋轉(zhuǎn)的角度,在使用 draw()方法對(duì)速度表盤(pán)進(jìn)行繪制。 碰撞檢測(cè) 碰撞檢測(cè)主要是檢測(cè)賽車與賽道之間的碰撞,即賽車與直賽道和玩賽道之間的碰撞檢測(cè)。 五、 附錄(部分主要源代碼) 1 地圖 類的實(shí)現(xiàn) GGameMap * GGameMap::create() { if(mpGameMap) destroy()。 } // 將池塘地面高度向下減去 255 int i, j。 jCELL_COLS。 X_SPAN = UNIT_SIZE * CELL_COLS。 ROAD_W = * X_SPAN。ymap, int amp。image)。 ILboolean ok = ilLoadImage(imgFileName)。 h = ilGetInteger(IL_IMAGE_HEIGHT)。 for(i=0。 j++) { idx = (i*w + j)*3。image)。 char key[256], buf[256]。 strtrim(key, buf)。mRowCount, amp。 } else if(strcmp(key, [BEGIN]) == 0) { fscanf(fp, %lf %lf, amp。 mRaceBeginZ *= Z_SPAN。 jmColCount。 } } } else if(strcmp(key, [ROAD]) == 0) { // 讀取賽道地圖 for(i=0。 j++) { fscanf(fp, %d, amp。mTreeCount)。 i++) { GTree *pTree = new GTree(pTreeBillboard)。 return true。 int i,j,k, it,nrow, ncol。 s =(double) CELL_ROWS /nrow。 offsetX = *unitSize * ncol。 i8。 for(k = 0。 for(i = 0。 jncol。 mVertexBufs[k][it++] = x。 mVertexBufs[k][it++] = y0。 mVertexBufs[k][it++] = z。 mVertexBufs[k][it++] = x。 mVertexBufs[k][it++] = y1。 k++) { mDisplayLists[k] = glGenLists(1)。 //繪制水面 mpWaterTexuse()。 for(i=0。 glVertex3dv(amp。 glVertex3dv(amp。 glVertex3dv(amp。 glDisable(GL_BLEND)。 } GSkyDome::GSkyDome(GTexture2D *pTex, double r) { mpSkyTex = pTex。 step = 15。 mTriCount = nw * nh * 2。 int i,j,k = 0。 for(j=0, h=0。 double y0 = mRadius * sin(vr)。 double z1 = mRadius * cos(vr+sr) * sin(hr)。 double x3 = mRadius * cos(vr) * cos(hr+sr)。 mVertexBuf[k++] = y0。 mVertexBuf[k++] = z1。 mVertexBuf[k++] = x3。 mVertexBuf[k++] = y1。 mVertexBuf[k++] = z2。 for(i=0。 glVertex3dv(amp。 glVertex3dv(amp。 glVertex3dv(amp。 fscanf(fp, %d %d %lf %lf %lf %lf %lf %lf %d, amp。dx, amp。mScale
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1