我遇到的问题是线条没有从画布中正确清除。不太清楚为什么。我已经研究了很长一段时间了。以下是一些代码:
处理线段创建的函数
var ui=
{
clear:function()
{
gsx.clearRect(0,0,window.gsW,window.gsH);
},
drawCharacterRays:function()
{
for(z=0;z<wallJoints.length;z++)
{
originx=(gsW/2);
originy=(gsH/2);
gsx.strokeStyle='#ff0000';
gsx.beginPath();
gsx.moveTo(originx,originy);
gsx.lineTo(wallJoints[z][0],wallJoints[z][1]);
gsx.closePath();
gsx.stroke();
}
}
}
还有一些额外的代码来显示调用函数的顺序:
function engine()
{
ui.clear();
gsx.fillStyle="#ffffff";
gsx.fillRect((gsW-characterW)-window.x,(gsH-characterH)-window.y,mapW,mapH);
ui.drawMap(curLevel,
[1,1,0,0,0,0,0,1,0,1],
[1,1,0,0,0,0,0,1,0,1]);
ui.drawCharacterRays();
ui.drawCharacter();
ui.drawStaminaBar();
ui.drawHealthBar();
}
我很乐意在需要时删除更多代码,但要注意......很多......
保存了一段时间,并在这里制作了一个功能版本:http://jsfiddle.net/cAv63