this.timerController = function () { var _this = this; if (_this.timer) { clearInterval(_this.timer); } _this.timer = setInterval(function () { _this.move(); }, 6000 / _this.speed); $('#speed').text(_this.speed); };
最后是工具类方法contains()和equesl()。contains用来判断新生成随机果实的位置和蛇重合时重新生成随机果实,以及蛇自己碰到自己时算游戏结束。
equals用来判断蛇到果实没有。他们的区别就是,contains要用each比较,因为蛇体数组有多个,所以需要循环一个一个比较。而equals()只比较蛇头和果实重合,所以不用循环。
this.Utils = { contains: function (arr, o) { var _this = this; if (!arr || !o) return false; var flag = false; $.each(arr, function () { if (!this) return true; if (_this.equals(this, o)) { flag = true; return false; } }); return flag; }, equals: function (o1, o2) { if (o1 == o2) return true; if (!o1 || !o2) return false; return o1.x == o2.x && o1.y == o2.y; } };
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》