我正在使用 JavaScript 开发一个非常小的项目,只是为了帮助我从下往上理解画布。我现在尽量避免使用框架之类的东西,这样我才能理解 HTML5 游戏的基本功能。
这是一个相当基本的“光标移动器”,带有一条褪色的尾巴。而已。只是一种颜色的形状,根据玩家的输入四处移动,尾巴逐渐消失。我建议你试试看;它实际上很漂亮。
无论如何,显然我更喜欢光标是一个圆圈,因为它看起来更平滑。但是,每当我这样做时,浏览器几乎完全锁定了我。它显然有效,至少在很大程度上有效,但它比一只乌龟跑过冷冻花生酱要慢。
我知道我不应该只包含JSFiddle,但它的代码量很大,而且整个事情运行缓慢。
问题很可能出在绘图功能中:
Game.draw = function() {
for (var sn = 0; sn < this.strokes.length; sn++) {
var s = this.strokes[sn];
/*1*/ this.context.arc(s.x, s.y, this.cursorRadius, 0, 2 * Math.PI);
this.context.fillStyle = this.bgColor;
/*2*/ //this.context.fillRect(s.x, s.y, this.cursorWidth, this.cursorHeight);
/*1*/ //this.context.fill();
this.context.fillStyle = s.getColor();
/*2*/ //this.context.fillRect(s.x, s.y, this.cursorWidth, this.cursorHeight);
/*1*/ this.context.fill();
}
};
这些线由方法标记。1 对应于圆形,而 2 对应于矩形。
这是整个项目:http: //jsfiddle.net/w4Rg3/3/
我只是觉得很难相信有圈子会慢得多(在看到 JS可以做的所有项目之后),而且我可能做错了什么。