天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Android實(shí)例剖析筆記(八)

   和Snake的比較

      就界面Layout來(lái)說(shuō),這個(gè)程序其實(shí)和Snake沒(méi)有什么不同,同樣是采用了FrameLayout,而且游戲的主界面由一個(gè)自定義的View來(lái)實(shí)現(xiàn),這里是LunarView。讀過(guò)上一篇文章的朋友也許會(huì)發(fā)現(xiàn),Snake的架構(gòu)是“定時(shí)器+系統(tǒng)調(diào)用onDraw”來(lái)實(shí)現(xiàn)的,這里有一個(gè)最大的缺陷就是onDraw是由Android系統(tǒng)來(lái)調(diào)用的,我們只能依賴它,卻無(wú)法自行控制。這就好比一個(gè)黑盒,當(dāng)然,總是能把我們要的東西給做出來(lái),可卻無(wú)法控制其做事的細(xì)節(jié),這對(duì)于游戲這樣高效率的東西可是不利的,因此最好的解決之道當(dāng)然是把繪制這部分工作自己”承包“過(guò)來(lái),告別吃大鍋飯的,進(jìn)入”聯(lián)產(chǎn)承包制”時(shí)代。

      此外,由于游戲的本質(zhì)就是連續(xù)兩幀圖片之間發(fā)生些許差異,那么要不斷催生這種差異的發(fā)生,只要有某種連續(xù)不斷發(fā)生的事件在進(jìn)行就可以,例如Snake中使用的定時(shí)器,就是在不斷地產(chǎn)生這種“差異源”,與此類似,一個(gè)線程也是不斷在運(yùn)行中,通過(guò)它也是可以不斷產(chǎn)生這種“差異源”的。

  SurfaceView初探

      如果說(shuō)Snake中使用的Layout加自定義View是一把小型武器的話,那在SurfaceView對(duì)于Android游戲的開(kāi)發(fā)來(lái)說(shuō)就算是重型武器了。我們使用前者時(shí)總是容易把游戲中某個(gè)對(duì)象(比如上文的每一個(gè)方格)當(dāng)做一個(gè)小組件來(lái)處理,而后者則根本沒(méi)有這種劃分的概念,在它眼中,所有東西都是在Canvas(畫(huà)布)中自行繪制出來(lái)的(背景,人物等)。

  SurfaceView提供直接訪問(wèn)一個(gè)可畫(huà)圖的界面,可以控制在界面頂部的子視圖層。SurfaceView是提供給需要直接畫(huà)像素而不是使用窗體部件的應(yīng)用使用的。Android圖形系統(tǒng)中一個(gè)重要的概念和線索是surface。View及其子類(如TextView, Button)

  要畫(huà)在surface上。每個(gè)surface創(chuàng)建一個(gè)Canvas對(duì)象(但屬性時(shí)常改變),用來(lái)管理view在surface上的繪圖操作,如畫(huà)點(diǎn)畫(huà)線。還要注意的是,使用它的時(shí)候,一般都是出現(xiàn)在最頂層的:The view hierarchy will take care of correctly compositing with the Surface any siblings of the SurfaceView that would normally appear on top of it. 使用的SurfaceView的時(shí)候,一般情況下還要對(duì)其進(jìn)行創(chuàng)建,銷毀,改變時(shí)的情況進(jìn)行監(jiān)視,這就要用到SurfaceHolder.Callback.

class LunarView extends SurfaceView implements SurfaceHolder.Callback
{
    
public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){}
//在surface的大小發(fā)生改變時(shí)激發(fā)
    public void surfaceCreated(SurfaceHolder holder){}
//在創(chuàng)建時(shí)激發(fā),一般在這里調(diào)用畫(huà)圖的線程。
    public void surfaceDestroyed(SurfaceHolder holder) {}
//銷毀時(shí)激發(fā),一般在這里將畫(huà)圖的線程停止、釋放。
}

it知識(shí)庫(kù)Android實(shí)例剖析筆記(八),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 羞羞影院男女爽爽影院尤物 | 日本乱子伦一区二区三区 | 亚洲VA天堂VA欧美VA在线 | 26uuu老色哥| 国产成久久免费精品AV片天堂 | 国产亚洲精品香蕉视频播放 | 强奷乱码中文字幕熟女免费 | 国产偷国产偷亚州清高 | 99久在线国内在线播放免费观看 | 草莓视频在线观看免费观看高清 | 一级毛片西西人体44rt高清 | 日韩美一区二区 | 优菈的乳液狂飙天堂W98 | 强开乳罩摸双乳吃奶视频 | a视频在线观看 | 亚洲中文字幕无码一去台湾 | 亚洲AV无码影院在线播放 | 美娇妻的性奴史1一4 | 中文字幕日本在线mv视频精品 | 亚洲色噜噜狠狠站欲八 | 精品国产自在天天线2019 | 久久99热在线观看7 久久99热狠狠色一区二区 | 三级黄色在线视频 | 国产在线精彩亚洲久久 | 黄色a三级三级三级免费看 黄色a三级免费看 | 思思re热免费精品视频66 | 亚洲精品无码葡京AV天堂 | ppypp日本欧美一区二区 | 国产在线精品一区二区网站免费 | 伊人久久综合成人亚洲 | 日本免费一本天堂在线 | 欧美丰满少妇久久无码精品 | 99久久精品国产亚洲AV | 欧美成人中文字幕在线看 | 国产久久亚洲美女久久 | 91精品婷婷国产综合久久8 | 亚洲第一成年人网站 | 丝瓜视频在线免费 | 日韩在线 无码 精品 | 99精品免费久久久久久久久日本 | 在线观看亚洲免费视频 |