Javascript can';不要多次使用该函数
出于某种原因,我似乎不能多次使用我的“播放器”功能,因此这意味着我无法更新它的位置。有人能帮我解释一下原因吗 这是我的密码:Javascript can';不要多次使用该函数,javascript,html,canvas,Javascript,Html,Canvas,出于某种原因,我似乎不能多次使用我的“播放器”功能,因此这意味着我无法更新它的位置。有人能帮我解释一下原因吗 这是我的密码: var gridHeight=1000,gridWidth=1000,canvashight=250,canvashwidth=250,p=0; var currentPositionX=0; var currentPositionY=0; 函数buildGrid(){ $(“body”).append(“player=new player();在draw()中用函数执
var gridHeight=1000,gridWidth=1000,canvashight=250,canvashwidth=250,p=0;
var currentPositionX=0;
var currentPositionY=0;
函数buildGrid(){
$(“body”).append(“player=new player();
在draw()
中用函数执行的结果覆盖函数定义
如果您只是在这一行前面添加var
,则播放器的var将被限制在draw()
的范围内,这可能是您想要的。jsiddle:
javascript代码片段
function player(x, y, w, h, c) {
this.x = x || 0;
this.y = y || 0;
this.h = h || 20;
this.w = w || 40;
this.c = c || "#FF0000";
}
player = new player();
...
function draw() {
context.fillstyle = player.c;
context.fillRect(player.x,player.y,player.w,player.h);
}
setInterval(draw, 3)
基本上,你可以在每次平局中创建一个新的玩家,但我所做的是将你的玩家“类”移动到调用函数之外,并在调用函数之外创建它,这样我们就可以创建一个基本玩家。我还移动了你的
$("#right").on("click", function() {
player.x += player.w;
return player.x;
});
准备好进入jQuery文档内部,因为它需要在此处分配事件,而不是在draw函数内部,否则您将添加多个事件侦听器。因此,您现在可以正确使用右按钮。我刚刚尝试了它,但仍然遇到相同的错误,我认为执行draw()
fromsetInterval()
将其从预期上下文中删除。让我检查如何修复此问题。