程序员复仇记
故事开始前,先声明一下,此文不是技术文,前端猿勿鄙视之。
故事是这样开始的…
一. 激怒
今天无聊得刷着朋友圈,发现好多人在玩【打企鹅】这个弱智游戏。虽然东哥从来都是摆出鄙视一切低弱智游戏的姿态,但也忍不住好奇不住去捅了一把。
“哈哈,19604.8米,我果然是个神~~”,立马分享给朋友们,以炫耀东哥那出众的能力。
…10秒钟后…“美慧: 没看见我尾灯[偷笑]”。(美慧是朋友的媳妇,非IT工作者,微信串子,爱晒家里可爱的宝宝照。)
“我擦!!!”,怎么可能,去瞅了一眼。她…27731.9米…刚刚分享的,和我的消息紧紧挨着。造物弄人啊…真是颜面全失,还咋在朋友圈里混啊。于是一向不服输的我断定,“我们玩的不是相同的版本”。为了寻回尊严,我进了她分享的链接,不停得挥舞着残害小动物的大棒…一次又一次…
好吧,必须承认,事实又再一次证明了程序员虽然有高智商,但无法在低智商游戏中胜出,那多余的智力是白白浪费了。为了挽回程序员的颜面,和正要出门赶飞机的媳妇放出大话,“我自己搞一个版本,看谁还能超了我”。
勺子媳妇立刻对东哥抛来了崇拜的小眼神,“这几天你可有事情做的”,于是我飘飘然到,“用不了几天,你下飞机前就搞定”。
二. 怂了
媳妇出门后,回复了朋友圈,这次她去的可不是新疆,是广州,三个小时的距离,再加上候机也不到5小时,虽然没有正面打击我,但估计也不相信我的大话。
再想想东哥那可怜的前端知识,突然有了一种秋风从脑后吹过的悲凉情景…硬着头皮来吧…
首先第一步先找到大家分析链接的地址,[复制URL],然后在电脑上打开。还好,不出所料,都是静态的页面,HTML5和Javascript做的,乱糟糟的。
第二步就是想到如何改这个游戏,重要的是找到这个游戏的主要逻辑在哪里,于是就一个JS一个JS的翻,有些像jquery,各种库可以一眼看出来是和游戏逻辑无关的。还好这个页面的JS引用的不多,很快找到最重要的线索,flyline.js
。
Main.flyLine = <span class="keyword">function</span>(angle){
<span class="keyword">var</span> speedRate = <span class="number">7</span>;<span class="comment">//速度倍率</span>
<span class="keyword">var</span> gRate = <span class="number">100</span>;<span class="comment">//重力倍率</span>
<span class="keyword">var</span> flyBird;
哈哈,真相只有一个,开启Chrome的调试器,走你…29557米…
第三步是把这个页面扒下来,对于山寨成性的东哥来说,这活不陌生,但烦恼的是不论是用Chrome,Safari还是狗屁IE,直接保存全部的页面资源都无法直接再打开这个页面。
如果用Safari的WebArchive或者IE的mht格式,是可以打开的,但这种格式又无法编辑。于是去Google了各种能把WebArchive还原成页面和资源的工具和方法,一一尝试过都失败了。
这样一度让我陷入沮丧,此时1个小时过去了…
于是我只能分享了一个朋友圈,在认怂的同时,也要挽回一点点小面子…
三. 坚持
有时候,看起来距离最短的路不一定能最快到目的地,路上总有意外发生。
镇定下来后,我想干脆从头来过,先保存纯页面,用绝对路径将页面在本地打开。
当然,又失败了,页面出现FILE_LOAD_ERROR的提示,打开调试器发现,是页面用了一个叫CreateJs的库,用来预加载游戏图片资源,而游戏图片在JS文件中用了相对路径。由于引用数量很多,这里我没有一一修改,是将图片资源下载到本地,用http server来启动页面,保证相对路径。
Bingo,页面可以打开了。
最后一步就是上传到我的服务器,我没有国内的服务器,所以资源最好用绝对路径链接到国内的原网站,说不定还有CDN加速的效果。所以我就只本地化了flyline.js和必要的图片资源,将企鹅飞行的速度参数改为了10,其余保持不变。
最后经过一些测试,调试,修改,它已经可以完美工作了。
四. 后记
“piu…46132.4米,哼哼,愚蠢的人类,啊哈哈…啊哈哈…”,正在得意这次完美的复仇时。美慧已经用我的【复仇版】分享了46917.1米…好吧,我表示再次怂了。不过她表示…“程序员…真可怕…”,这让东哥没有再次丢脸。
时间过了两个小时,媳妇刚刚登机,得知我完成了自己吹的流比,向我发来了亲切而友好的慰问…我表示要继续努力,不辜负祖国的培养。
程序员是一群不错的家伙,当他们被激怒时会释放出强大的力量,虽然这个小复仇非常容易,但它还远远没有结束…
我突然有了一种想法,需要量化一下它的能量,于是将两个好友的微信公众号作为广告登了上去,并做了申请了页面流量统计。
不得不承认最近从【神经猫】,【测试你有多色】到【打企鹅】,这种在微信上的简单游戏,通过晾晒成绩到朋友圈来激发的攀比心态,已经形成了一种病毒式的营销模式。每款游戏的定位简单,声明短暂,但一波波得也形成了巨大的影响力。
虽然这里我不鼓励山寨,但这也许是一个好想法的开始。
(END)
打企鹅 - 勺子复仇版,请用微信扫一扫,或者点击 这里
关注T神的微信公众帐号【程序人生】。
PS: 如有版权问题,请与donge @ donge.org联系,谢谢。