宅在家里无聊?不如体验一下修改小游戏的快感
程序员文章站
2022-03-22 17:39:04
...
(一)这是用JavaScript编写的小游戏
这一切的一切都要从一只蝙蝠说起… …这只蝙蝠导致了很多人不得不变成了宅男宅女,我也是其中一名宅男,打发无聊的时光的方法除了学习,就是游戏…然而玩一些大型的好游戏需要投入一定的精力和金钱,这些我都没有,于是我——盯上了小游戏。
正巧最近在学习JavaScript相关的知识,玩个相关的小游戏还能学习学习。
然后我就发现了下面的这款小游戏,玩了一玩,甚至有些上瘾,具体规则是:这个蓝色的方块是玩家操控的角色,金色的小圆点是金币,需要被玩家全部触碰,接着进入下一关,红色的是岩浆,玩家触碰会死亡,游戏没有生命数量的限制。
值得一提的是游戏的操做手感很像超级玛丽,跳跃触感很好,而且跳的很高,游戏的地图直接呈现给你,有一种掌握全局的感觉。
前两关玩的还算顺利,到了第三关我也勉强过去了,但是到了第四关我实在没有了耐心,我还想接着往下玩,那怎么办呢?不如修改一下,哈哈
(二)思路
1.最简单的方式就是找到源码,直接改
但是我发现下载源码好像要钱…
2.在浏览器中把js代码拷贝过来
但是
3.还是想办法把源码搞到手吧
这里不让下载我换个让下载的地方,但是在js的游戏堆里找就像大海捞针,我还不知道游戏叫啥名,于是我就用了百度识图,果然没让我失望
4.也可以用ce修改金币的数量,岩浆的分布等等,但是比较麻烦,我就没尝试
5.最后把岩浆改成wall的属性就行了
(三)Just Do
经过我的一番分析,最后找到了要点
function Level(plan) {
this.width = plan[0].length;
this.height = plan.length;
this.grid = [];
this.actors = [];
for (var y = 0; y < this.height; y++) {
var line = plan[y],
gridLine = [];
for (var x = 0; x < this.width; x++) {
var ch = line[x],
fieldType = null;
var Actor = actorchars[ch];
if (Actor)
this.actors.push(new Actor(new Vector(x, y), ch));
else if (ch === "x")
fieldType = "wall";
else if (ch === "!")
fieldType = "lava";//在这里吧lava改成wall
else if (ch === "|")
fieldType = "lava";
else if (ch === "=")
fieldType = "lava";
else if (ch === "v") {
fieldType = "lava";
console.log(fieldType);
}
gridLine.push(fieldType)
}
this.grid.push(gridLine);
}
this.player = this.actors.filter(function(actor) {
return actor.type === "player"
})[0];
this.status = this.finishDelay = null;
}
修改完成之后的模样
这里的小红色岩浆并没有杀伤力
(四)总结
难点还是在找到源码,这也就是针对小游戏,毕竟不会有谁把一些大型游戏的源码泄漏的,不然的话要反编译器干什么。
感觉…还是让我有进步的,学习了学习了,谢谢游戏的作者。
然后我终于玩完了第四关,结果发现后面没有了…
上一篇: 预发布1139.md