html5刷新不闪烁,重绘画布html5没有闪烁

我的屏幕每25ms重绘一次,图像闪烁,这是我的代码

var FRAME_RATE = 40;

var intervalTime = 1000/FRAME_RATE;

gameLoop();

function gameLoop(){

context.clearRect(0, 0, 640, 640);

renderMap();

window.setTimeout(gameLoop, intervalTime);

}

这里是renderMap()函数

function renderMap(){

var startX = playerX - (screenW / 2);

var startY = playerY - (screenH / 2);

maxX = playerX + (screenW / 2);

maxY = playerY + (screenH / 2);

$.getJSON('mapa3.json', function(json){

for (x = startX; x < maxX; x=x+32){

for (y = startY; y < maxY; y=y+32){

intTile = json.layers[0].data[((y/32)* 100) + (x/32)];

context.putImageData(getTile(intTile - 1), x - startX, y - startY);

}

}

});

var imgCharacter = new Image();

imgCharacter.src = 'char.png';

var posX = (screenW - imgCharacter.width) / 2;

var posY = (screenH - imgCharacter.height) / 2;

imgCharacter.onload = function(){context.drawImage(imgCharacter, posX, posY)}

}

我需要对代码进行哪些更改才能停止闪烁?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值