要山寨flappyBird,首先得要有资源!!!教你如何将这死鸟的资源给拆出来!

来源:互联网 发布:mac thunder 删不掉 编辑:程序博客网 时间:2024/05/11 15:18

哥最近手残,游戏打多了,代码敲多了之后,我发现我的手指的神经有点不听使唤,因此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. 再来一个图,让你们羡慕一下



6 0
原创粉丝点击