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

正文內(nèi)容

游戲2d技術(shù)畢業(yè)論文外文文獻(xiàn)翻譯-資料下載頁

2025-10-09 13:55本頁面
  

【正文】 D動畫編程領(lǐng)域,并且保證其設(shè)備無關(guān)性。 在我們有了一個(gè)適當(dāng)?shù)臅r(shí)機(jī)執(zhí)行更新操作了,現(xiàn)在就讓我們試試動畫吧。下面的代碼將不再提供 Win32的版本。 為了敘述方便,我需要一個(gè)播放動畫的窗口,它必須是一個(gè) CWnd的派生類,假設(shè)這個(gè)類叫做 CMyView,我們將在這個(gè)窗口中繪制動畫。首先我們?yōu)檫@個(gè)類添加一個(gè)成員函數(shù) ”void CMyView::RenderView()” ,你可以使用上面提到的方法調(diào)用這個(gè)函數(shù)。 現(xiàn)在準(zhǔn)備工作都做好了,我們的動畫該怎么存儲呢 ?別提動畫 GIF89a格式 (如果你覺得只有 GIF才有動畫的話,那我勸你去做美術(shù)好了,別干程序了 ),如果你只想要個(gè)簡單的動畫播放當(dāng)然可以,但是如果你想要做復(fù)雜點(diǎn)的,交互式動畫,我勸你還是別用那東西。假設(shè) 我們有一個(gè) 4幀的動畫,怎么存儲它呢 ?我首先想到的就是存 4個(gè) BMP文件,然后讀入到一個(gè) CBitmap對象數(shù)組中,但是尊敬的大師 Scott Meyers警告我們不要使用多態(tài)數(shù)組,因?yàn)榫幾g器在某些情況下不能準(zhǔn)確計(jì)算數(shù)組中對象的大小,所以下標(biāo)運(yùn)算符會產(chǎn)生可怕的效果。然后我就想到了用 CBitmap指針數(shù)組,這到是不錯(cuò),不過管理起來稍嫌麻煩?,F(xiàn)在看看我最終的解決方法吧 然后用它創(chuàng)建一個(gè) CImageList對象,讓我們仔細(xì)看一下創(chuàng)建的方法,使用 BOOL CImageList::Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow )。 函數(shù),前面兩個(gè)參數(shù)用來指定我們一幀動畫的尺寸。這樣就創(chuàng)建了一個(gè)空的 ImageList,這樣做的好處是可擴(kuò)展行比較強(qiáng)。下面我們需要把那個(gè)幀序列文件 Load到一個(gè) CBitmap對象中,你可以存成 JPG或者 GIF文件來節(jié)省容量 ( 如果你真正實(shí)現(xiàn)上面的代碼的話,你會發(fā)現(xiàn)畫面一閃一閃的,十分的不爽。 很多人都會怪到 GDI頭上,他們又會罵 MS,說 GDI太慢了。 其實(shí)非也任何直接寫屏幕的操作都會產(chǎn)生閃爍,在 DOS下直接寫顯存或者用 DirectDraw API直接寫 Primary Surface都會閃爍,因?yàn)槟忝總€(gè)更新顯示的操作都會被用戶馬上看到 (因?yàn)榇怪被貟叩脑颍? 或許會有延遲 )。 消除閃爍最簡單也是最經(jīng)典的方法就是雙緩沖 (Double buffer)。 所謂的雙緩沖其實(shí)道理非常簡單,就是說我們在其它地方 (簡單的說就是不針對屏幕,不顯示出來的地方 )開辟一個(gè)存儲空間,我們把所有的動畫都要渲染到這個(gè)地方,而不是直接渲染到屏幕上 (針對屏幕的存儲區(qū)域 )。在 GDI中,直接針對屏幕就是窗口 DC, ” 不可見的地方 ” 一般可以用 Memory DC。在把所 有動畫渲染到后臺緩沖之后,再一下次整體拷貝到屏幕緩沖區(qū) ! 在純軟件 2D 圖形引擎中,雙緩沖一般意味著在內(nèi)存中開辟一個(gè)區(qū)域用來存儲像素?cái)?shù)據(jù)。而在 DirectDraw 中可以創(chuàng)建 Back Surface,在把所有動畫渲染到 Back Suface 上之后,然后使用 Flip 操作使其可見, Flip 操作因?yàn)橹皇窃O(shè)置可見 surface 的地址,所以非常快速
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1