Javascript 为什么1秒后屏幕上的一切都消失了?
不知怎的,屏幕上的一切都在一秒钟后消失了 我的浏览器只显示以下错误:“未捕获的TypeError:无法读取未定义的属性“0” 我现在知道问题出在哪里了。 我只知道变量“row”有问题 也许我发布了很多代码。对不起Javascript 为什么1秒后屏幕上的一切都消失了?,javascript,html,html5-canvas,Javascript,Html,Html5 Canvas,不知怎的,屏幕上的一切都在一秒钟后消失了 我的浏览器只显示以下错误:“未捕获的TypeError:无法读取未定义的属性“0” 我现在知道问题出在哪里了。 我只知道变量“row”有问题 也许我发布了很多代码。对不起 var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); var FPS = 30; var map = [ [0, 1, 0, 1, 0],
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var FPS = 30;
var map = [ [0, 1, 0, 1, 0],
[1, 0, 1, 0, 1],
[0, 1, 0, 1, 0],
[1, 0, 1, 0, 1],
]
var ts = 20
var tss = 0
var row = 0
var tr = 0
function drawtiley(){
context.beginPath();
context.rect(tss, tr, 20, 20);
context.fillStyle = 'yellow';
context.fill();
};
function drawtiler(){
context.beginPath();
context.rect(tss, tr, 20, 20);
context.fillStyle = 'red';
context.fill();
};
function drawlvl() {
for(var o = 0; o < 5; o++ ){
for(var i = 0 ; i < map.length; i++){
if(map[row][i] === 0) {
drawtiley()
}
else if (map[row][i] === 1) {
drawtiler()
}
tss = tss + ts;
};
tss = 0;
row = row + 1;
tr = tr + 20;
}
row = 0;
tr = 0;
}
function draw() {
context.clearRect( 0, 0, canvas.width, canvas.height );
drawlvl();
}
function update() {
}
function tick() {
draw();
}
setInterval( tick, 1000 / FPS );
var canvas=document.getElementById('myCanvas');
var context=canvas.getContext('2d');
var FPS=30;
var-map=[[0,1,0,1,0],
[1, 0, 1, 0, 1],
[0, 1, 0, 1, 0],
[1, 0, 1, 0, 1],
]
变量ts=20
var tss=0
变量行=0
var tr=0
函数drawtiley(){
context.beginPath();
rect(tss,tr,20,20);
context.fillStyle='yellow';
context.fill();
};
函数drawtiler(){
context.beginPath();
rect(tss,tr,20,20);
context.fillStyle='red';
context.fill();
};
函数drawlvl(){
对于(变量o=0;o<5;o++){
对于(变量i=0;i
您的循环有行
在停止前检查值0、1、2、3、4
但是您的map
数组只会上升到map[3]
<代码>映射[4]不存在,因此出现错误
您的
o
变量似乎完全没有意义。为什么不做for(row=0;row)OP可能意味着for(var o=0;o<5;o++){
成为for(var row=0;row<5;row++){
?我清理了这段代码并删除了一些冗余变量。以防万一这会有帮助:)(我确实在做任何事情来避免真正的工作完成:P)