2016-04-29 84 views
0

我知道你可以使用ctx.translate()来翻译图像,但是当我这样做时,它不起作用。我不知道什么是错的。我花了2个小时努力弄清楚。这里是我的代码:为什么我不能翻译JS画布图像?

<canvas id="tank_layer" height="1080" width="1920"></canvas> 

var canvas = document.getElementById('tank_layer'), 
    ctx = canvas.getContext('2d') 

document.onkeydown=function(){ 

    ctx.translate(100,150) 
} 
img = new Image(1920, 1080), 
img.src="../tanks/maps/2.png" 

img.onload = function() { 
    ctx.drawImage(img, 0, 0); 
} 
+0

我认为你需要重新绘制图像后翻译。添加'ctx.drawImage(img,0,0);'在你的onkeydown函数中加入 – Matt

回答

0

您需要翻译后重绘您的图像,添加以下内容:

document.onkeydown=function(){ 
    ctx.translate(100,150) 
    ctx.drawImage(img,0,0) 
} 

想法

var counter=0; 

document.onkeydown=function(){ 
    if (counter===0) { 
     ctx.translate(100,150); 
     ctx.drawImage(img,0,0); 
     counter++; 
    } 
} 
+0

现在可以翻译了。但是,每按一次按键,它就会循环移动图像100个像素。我只想让它移动到那些坐标一次。 – Critical

+0

我只能建议添加一个计数器/布尔值和一个如果在函数内只能移动如果假或计数器= 0 – Matt

+0

@Critical查看我的更新 – Matt

相关问题