Ho uno schermo essendo ridisegnare ogni 25 ms, e le immagini sono tremolante, qui è il mio codiceridisegnando canvas HTML5 senza sfarfallio
var FRAME_RATE = 40;
var intervalTime = 1000/FRAME_RATE;
gameLoop();
function gameLoop(){
context.clearRect(0, 0, 640, 640);
renderMap();
window.setTimeout(gameLoop, intervalTime);
}
e qui è la funzione
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)}
}
cosa cambia() renderMap devo fare il codice per fermare lo sfarfallio?
succede quanto segue: lo schermo continua a lampeggiare e il carattere scompare quando viene chiamato clearRect ..:/ –
È possibile aggiornare quel commento? Non riesco a vedere cosa succede allo schermo –
e il carattere scompare quando viene chiamato clearRect ..:/ –