要山寨flappyBird,首先得要有資源!!!教你如何將這死鳥的資源給拆出來!

來源:互聯網
上載者:User

哥最近手殘,遊戲打多了,代碼敲多了之後,我發現我的手指的神經有點不聽使喚,因此flappybird我只能拿到個位元的分數(當然從來沒看過什麼高分教程或者使用什麼作弊方法)

但是我還是怒了,我打算弄一個水管能讓我自動鑽過去的flappybird!

我在網上找了一個web版的鳥的資源,那過來之後越發覺得這資源醜陋,而且極為不全,背景都沒有,我又怒了

想想,最原生態的資源就是遊戲包裡面的資源,所以,我打算從裡面把他拆出來!

1.從像素鳥的apk裡面找到那張通過texturePacker之類的工具拼過的圖片,對,沒錯,拿個解壓軟體開啟apk,找呀找!就是assets\gfx\atlas.png

2.這是一張拼過的圖片,要知道這張圖片是怎麼拼出來的,總得找到設定檔把,繼續找,就是res/raw/atlas.txt開啟這檔案,你會發現這麼一下東西



要怎麼解讀這些數字呢?且聽如下分解

首先,每一行代表一個圖片資源,第一個不用猜都知道,是檔案名稱

第二個和第三個分別是圖片的寬度和高度,單位是像素

第四個和第五個分別是圖片左上方的定點的x座標和y座標,這是他們的座標占整張圖片的比例(換句話來說就是當整張圖片長寬為1時這張圖片左上方頂點的座標)

第六個和第七個分別是圖片寬度和高度所佔總長度和總寬度的比例


3.瞭解了以上資訊之後的程式員都會不由得微微一笑,看老子不把你給切出來!你要用ps慢慢切,我不攔著你,但是讓電腦自動給我切好會帶來更爽的趕腳!

切圖,我用python + opencv(這玩意兒我在搞我樹莓派的時候也在window上面搭好了環境,所以,毫不猶豫),要找怎麼配環境呢就搜一下“python opencv  環境搭建”

代碼麼,我加上注釋就貼在下面了

import cv2.cv as cvimport osimg = cv.LoadImage("e:/output/atlas.png", -1) #讀取原圖(這就是那張拼過的圖片,我改了一下名字)mask = cv.LoadImage("e:/output/atlas.png", 0) #讀取maskwidth, height = cv.GetSize(img)img2 = cv.CreateImage((width, height), 8, 4) #建立一張背景透明的圖片cv.Copy(img, img2, mask) #copy過去file = open("e:/output/atlas.txt") #這是輸入的檔案for line in file:    strs = line.split(" ")    fileName = strs[0]    imgWidth = int(strs[1])    imgHeight = int(strs[2])    imgX = float(strs[3])*width    imgY = float(strs[4])*height    cv.SetImageROI(img2, (int(imgX), int(imgY), imgWidth, imgHeight)); #設定感興趣的地區    cv.SaveImage("e:/output/" + fileName + ".png", img2) #根據讀取到的檔案名稱儲存到這個路徑下

4. 抄完哥的代碼之後直接就run一把,你會驚奇的發現你的輸出檔案夾裡面全都是這鳥遊戲的素材了,哈哈,擷取素材大功告成,下面就是將圖片全貼到哥的小遊戲裡了

5. 對於經過上面步驟不能拿到素材的童鞋們,能擷取到素材的哥們給他們默哀一分鐘吧!

6. 再來一個圖,讓你們羨慕一下



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.