0%

Godot 是一款开源的游戏引擎,同时支持 2D 和 3D 游戏的开发。相对于 Unity 3D 来说,Godot 的学习曲线更加平缓,对于初学者来说是一个不错的选择。本文是本人最近阅读 Godot 官方文档和查阅相关资料后的一点个人理解,如果有错误的地方还请各位朋友指出。

阅读全文 »

时间总是在不经意间告诉我们生活的真谛,比如说不要随便立 Flag……

回头一看,上一篇文章又是暑假的时候了。鸽了这么久,原因主要还是不知道写些什么。不过最近我在学习用 Inkscape 画矢量图,临摹了大佬的几幅作品之后,感觉还是挺好玩的。于是今天决定出一个用 Inkscape 画魔法师的教程,这也算是前面文章的后续吧。

阅读全文 »

本文翻译自 Data Structures and Algorithms (DSA) 的系列文章有关图的章节,Google 翻译真好用。

 

在本篇文章中,我们将会探索非线性的数据结构——图,我们将会涉及到图的核心概念以及典型应用。

你可能现在就在使用那些用到了图和树这些数据结构的程序。比方说,你想要知道家和公司之间的最短距离,那么你就可以使用图算法来计算出答案。我们将会在后面探索这个以及一些其它有趣的挑战。

下面是我们将会在本文中介绍的一些操作:

邻接表 邻接矩阵
Space O(V + E) O(V^2)
addVertex O(1) O(V^2)
removeVertex O(V + E) O(V^2)
addEdge O(1) O(1)
removeEdge (using Array) O(E) O(1)
removeEdge (using HashSet) O(1) O(1)
getAdjacents O(E) O(V)
isAdjacent (using Array) O(E) O(1)
isAdjacent (using HashSet) O(1) O(1)
阅读全文 »

好久没有写博客了,上一篇文章居然还是暑假的时候……

为了避免博客被荒废掉,并且在这学期勉励自己,特地在此发出本学期的第一篇文章。今天我们来说一下在网页中使用 SVG。

阅读全文 »

最近想给自己的阅读器加上注释的功能,一番折腾之后发现 Rangy 这个好用的库。使用这个库可以便捷地实现获取和保存文本选取,以及对文本选取添加样式等功能。下面让我们来初步了解一下它的用法,更详细的内容可以查阅它的文档 Here

阅读全文 »

源码版本 1.4.4

Array.prototype.reduce()

ECMAScript 5 提供了两个归并数组的方法:reduce()reduceRight()。这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中,reduce() 方法从数组的第一项开始,逐个遍历到最后。而 reduceRight() 则从数组的最后一项开始,向前遍历到第一项。

arr.reduce(callback,[initialValue]) 接收两个参数,第一个参数为一个回调函数,数组中的每个元素都会被传入此函数中迭代;第二个参数为一个可选的初始值,它的值会被作为回调函数的第一个参数传入。

这里重点在于理解 reduce() 的第一个参数 callback,它是一个回调函数,这个回调函数接收四个参数:

  • accumulator 上一次调用回调返回的值,或者是提供的初始值(initialValue)
  • currentValue 数组中正在处理的元素
  • currentIndex 数组中正在处理的元素索引,如果提供了 initialValue ,从0开始;否则从1开始
  • array 调用 reduce 的数组
阅读全文 »

源码版本 1.4.4

创建 Underscore 对象的引用

1
2
3
4
5
var _ = function(obj) {
if (obj instanceof _) return obj;
if (!(this instanceof _)) return new _(obj);
this._wrapped = obj;
};

上面的代码创建了 undersore 的引用,然而我对执行顺序却理得不是很清楚,尤其是上面的第三行,于是我尝试在 chrome 中 debug 了一下。不过在理解之前我们先复习一下使用 new 调用构造函数的具体流程,以及 instanceof 操作符的用法。

阅读全文 »

一直都羡慕别人那高大上的技术博客,在得知 Hexo 这款方便的工具后,自己终于决定也搭建一个属于自己的博客。其一是为了记录所学内容,其二则是在不断的折腾之中学习新的内容吧。

图片与内容不相关

阅读全文 »