1. 程式人生 > >要山寨flappyBird,首先得要有資源!!!教你如何將這死鳥的資源給拆出來!

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

哥最近手殘,遊戲打多了,程式碼敲多了之後,我發現我的手指的神經有點不聽使喚,因此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 cv
import os

img = cv.LoadImage("e:/output/atlas.png", -1) #讀取原圖(這就是那張拼過的圖片,我改了一下名字)
mask = cv.LoadImage("e:/output/atlas.png", 0) #讀取mask
width, 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. 再來一個圖,讓你們羨慕一下



相關推薦

山寨flappyBird首先資源如何死鳥資源出來

哥最近手殘,遊戲打多了,程式碼敲多了之後,我發現我的手指的神經有點不聽使喚,因此flappybird我只能拿到個位數的分數(當然從來沒看過什麼高分教程或者使用什麼作弊方法) 但是我還是怒了,我打算弄一個水管能讓我自動鑽過去的flappybird! 我在網上找了一個web版的

實現工業化過人頭關

成功 阿拉伯 德國 there alt bic 技術 img http 韓國似乎沒有?光州事件似乎也能算上 1 那你這個理論似乎推而廣之就是:要實現工業化,就得過人頭關 先搞掉一批不願意工業化,或者不願意在鐵腕下工業化的人頭,才能實現工業化 美國是南北戰爭;日本是日

讀書寄語:想收穫先付出

偶然間看到一篇文章,與大家分享一下: 要想得到一些東西,你就必領得付出一些東西,付出得越多,你就能得到的更多。俗話說,一分耕耘,一分牧獲。當然,你不必刻意地追求回報,它總是會在不經意間悄悄到來的。 有個人在沙漠裡穿行,已經連續幾天沒喝水了。他飢渴難耐,馬上就要支撐不住了,突然發現在前面一株巨

在ARM開發板的嵌入式linux系統上執行的QT程式必須在linux裡用QT編嗎

最近在做有關嵌入式的東西,很多不懂。 1、想在板子上執行用QT編好的程式,必須要在PC的linux系統裡用QT編嗎? 2、在windows系統裡編好的QT程式,經過交叉編譯後能直接執行在板子上嗎?還是板子需要弄個QT環境啥的?就是往裡面安個相同版本的QT? 謝謝。。。。。

哈羅出行挑戰滴滴靠自己

在共享單車行業,摩拜被美團收購,ofo深陷資金困境,唯有後來者哈羅單車在阿里巴巴的支援下正快速擴

為什麼學習C++它到底能做什麼?小編帶揭祕~

C++是由貝爾實驗室的Bjarne Strou-strup在C的基礎上推出的,它進一步擴充和完善了C語言,既可以進行C語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的面向物件的程式設計。下面就讓我們一起來領略C++之美吧. (小編推薦

工作生活有感學會說話說話也用心哦

說話的藝術,我感覺我這個人說話跟我做事一樣都有點不用心。 今天王部說我了,做事沒有協調性。做事情沒有韌性。 我說的原話是,我想要早點回去,定的票過去正好趕的是下班的時候,所以堵車了,沒有趕上車。 我應該這麼說比較好,我們原本安排的時間是夠的,但是我們走在路上堵車,貴陽的地方還打不著車,我們從車輛段走的,

為什麼清除浮動什麼時候清除浮動如何清除浮動

眾所周知,CSS中的定位機制分為,文件流,浮動和絕對定位。(今天不談絕對定位),如果對元素沒有進行任何定位處理的話,元素應該處於文件流中,當我們對元素進行了浮動(float)時,我們的元素就會脫離文件

還在充會員看電影?告別費錢的日子兩招Python神技免費看

最近好多小夥伴問小編,大佬突然發現各大視訊網站套路好深,太坑了,能不能用Python編寫套程式,然後進行資料轉換看視訊啊。 小編的回答是:可以的!   我們知道不管是看騰訊啊,愛奇藝啊······或者是優酷上面VIP付費電影,首先你得先充值“會員”,不但可以看,而且還免廣告,“

手把手怎樣用命令列apk簽名

        最近因為專案上線,要配合運營的童鞋們上傳各渠道apk,其中,搜狗的渠道因為遷移問題,需要給一個他們提供的空的apk簽名,然後用公司的簽名檔案進行簽名 沒辦法,只能手動給apk簽名,網上搜索一片均不太完善,特總結一下成功的經驗供各位童鞋參考!         首先,相信各位童鞋都已配好j

python實戰用微信每天女朋友說晚安

但凡一件事,稍微有些重複,我就考慮怎麼樣用程式來實現它。 這裡給各位程式設計師朋友分享如何每天給朋友定時微信傳送”晚安“,故事,新聞等等。 最好執行在伺服器上,這樣後臺掛起來更方便。 準備: **微訊號** pip install **wxpy** pip

五分鐘後真正理解MySQL事務隔離級別

什麼是事務? 事務是一組原子性的SQL操作,所有操作必須全部成功完成,如果其中有任何一個操作因為崩潰或其他原因無法執行,那麼所有的操作都不會被執行。也就是說,事務內的操作,要麼全部執行成功,要麼全部執行失敗。 事務的結束有兩種,當事務中的所有操作全部成功執行時,事務提交。如果其中一個操作失敗,將發生回滾操

程序員如何在百忙中更有效地利用時間如何不走岔路不白忙(忙有效率收獲)-----https://www.cnblogs.com/JavaArchitect/p/9080484.html

logs 有效 時間 hit 收獲 AR log title blog https://www.cnblogs.com/JavaArchitect/p/9080484.html 程序員如何在百忙中更有效地利用時間,如何不走岔路,不白忙(忙得要有效率,要有收獲) 程序員如何

魂鬥羅、雙截龍一定玩過知道為什麽它山寨嗎?

施瓦辛格 好萊塢大片 福爾摩斯 人民網 拯救地球 “初代遊戲兩關縱深行進的軍事基地、第七關充滿機械利爪的工廠、《超級魂鬥羅》第四關巨大的升降梯,都契合了《終結者》(1984)、《機器戰警》(1987)以及《霹靂五號》(1986)等科幻電影對於機械與機器人的描繪。”看到網上這段文字時,我的腦

為什麽Web標準化何價值

但是 活躍 w3c 閱讀 隨著 就是 美的 手機 轉換   采用W3C推薦的標準進行設計是一件正確的事情。當我預備重新設計adaptivepath.com站點時,我的搭檔同意用符合標準的方法來建設它。但在我們開始前,我們也有一番討論:采用web標準需要付出很大的努力,這樣做

近期辦事犯錯總結-知行合一、知在行前-解決問題前首先搞清楚問題

審核 blog 部門 pos body 區別 居住 老婆 流程 事件一:辦卡出錯 幫老婆去辦卡。老婆給了辦卡流程,然後按照流程去辦理。 中間跳過很多環節; 在直接辦卡環節,告訴工作人員我要辦卡,工作人員確認“你要辦卡嗎?”,我說是; 結果悲劇出現了,辦卡人員錄入身份證號後告

中央企業數字化轉型首先解決遠程溝通問題

央企數字化轉型 網絡視頻會議 遠程會商 寶利通視頻會議 中糧、中谷、華糧三家糧食央企“三糧合一”後,“中糧貿易公司”正式成立,實現了糧食內貿、外貿、物流業務的統一。龐大的業務體系需要強有力的溝通工具進行支撐,作為起數字化轉型前實現高效溝通的第一步。中糧貿易的舊視頻會議系統不能適應目前龐大體系的

學Java開發首先知道它能做什麽

開發工程師 修改 找到 家電 比較 動態網頁 app 網站 家裏   Java是什麽?可能不懂的人很難理解,那就從結果(也就是學了java到底能幹些什麽)來講解一下什麽是Java吧!   對於很多新手來說,剛開始接觸Java會很迷惘,不知道Java可以做什麽。   其實Ja

為什麽學習React學習React在大數據開發上什麽好處

跳過 ima 教程 ted 規範 img npm facebook 改變 為什麽要學習React,學習React在大數據開發上有什麽好處 分享之前我還是要推薦下我自己創建的大數據學習資料分享群716581014,這是全國最大的大數據學習交流的地方,2000人聚集,不管你是小

加盟咖啡店多少錢投資咖啡店前景嗎

咖啡館 支持 ron 創業 技能 如何 市場 一站式 開業   時間慢慢的改變生活,至始至終飲品一直深受大眾喜愛,咖啡作為一種新式飲品更加深受人們的關註,走在大街上你看到的就是飲品店、咖啡店,因為夏季來臨這個時候只有飲料給你慢慢舒緩你的疲勞和口渴,所以咖啡加盟這個項目非常不