カービィを動かす!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

カービィを動かすときのプログラムがものすごくながくて難しかった

//canvasの設定 (せってい)
let canvas = document.getElementById('canvas');
canvas.width = 2000; //canvasの横幅 (よこはば)
canvas.height = 2000;   //canvasの縦幅 (たてはば)

//コンテキストを習得 (しゅうとく)
let ctx = canvas.getContext('2d');
//let img = new Image();
//img.src = "img/ka-bili.png";

let kyara = new Object();
kyara.img = new Image();
kyara.img.src = 'img/ka-bili.png';
kyara.x = 0;
kyara.y = 0;
kyara.move = 0;

let key = new Object();
key.up = false;
key.down = false;
key.right = false;
key.left = false;
key.push = '';

function main() {

    ctx.clearRect(0,0,2000,2000);

        //画像を表示
        //オブジェクト化をすることで動かせるようになる
        //ctx.drawImage( img, 0, 0 );
        ctx.drawImage( kyara.img, kyara.x, kyara.y );

        addEventListener("keydown", keydownfunc, false);
        addEventListener("keyup", keyupfunc, false); 

        if ( kyara.move === 0) {
                  if ( key.left === true ) {
                          kyara.move = 32;
                          key.push = 'left';
                  } 
                  if ( key.up === true) {
                          kyara.move = 32;
                          key.push = 'up'      
                  } 
                  if ( key.right === true) {
                          kyara.move = 32;
                         key.push = 'right';
                  }      
                  if ( key.down === true) {
                          kyara.move = 32;
                          key.push = 'down';
                 } 
       }
       if (kyara.move > 0) {
                kyara.move -= 4;
                if ( key.push === 'left' ) kyara.x -= 1;
                if ( key.push === 'up' ) kyara.y -= 1;
                if ( key.push === 'right' ) kyara.x += 1;
                if ( key.push === 'down' ) kyara.y += 1; 
       }   
       requestAnimationFrame( main ); 
      }                                  
//ページと依存している全てのデータが読み込まれた
addEventListener('load', main(), false);

//addEventListener('load',function() {
//  ctx.drawImage( img, 0, 0 );
//}, false);
/*
//x=0, y=0 の位置(いち)に縦横(たてよこ)30pxの正方形(せいほうけい)を描く
ctx.fillRect(0, 0, 30, 30);

ctx.strokeRect(0,0,80,80);

ctx.fillRect(100,0,80,80);
*/ 
//キーボードが押されたときに呼び出される関数(かんすう)
function keydownfunc( event ) {
  let key_code = event.keyCode;
  /*
    if( key_code === 37 ) console.log("左 押した");
    if( key_code === 38 ) console.log("上 押した");
    if( key_code === 39 ) console.log("右 押した");
    if( key_code === 40 ) console.log("下 押した");
    */
    if( key_code === 37 ) key.left = true;
    if( key_code === 38 ) key.up = true;
    if( key_code === 39 ) key.right = true;
    if( key_code === 40 ) key.down = true;
    event.preventDefault();
}
requestAnimationFrame( main );    

function keyupfunc( event ) {
  let key_code = event.keyCode;
    if( key_code === 37 ) key.left = false;
    if( key_code === 38 ) key.up = false;
    if( key_code === 39 ) key.right = false;
    if( key_code === 40 ) key.down = false;
    event.preventDefault();
}