2016-04-29 16 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

私はあなたが後の画像を再描画する必要があると思います翻訳。あなたのonkeydown関数の中に 'ctx.drawImage(img、0、0);'を追加しました – 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

私が提案できるのは、カウンタ/ブール値を追加し、関数内にfalseを指定するか、counter = 0にするだけです。 – Matt

+0

@Criticalは私の更新を参照してください – Matt

関連する問題