1

html5キャンバスに長方形を描くのに問題があります。この関数を呼び出していますが、何も表示されていません。アラートを追加でき、問題なく機能するので、その種類が機能していることを知っています。どんなアイデアでも、私はただ愚かです。完全なコードを見たい場合は、プロジェクトはhttp://tetris.townsendwebdd.comにあります。ありがとうございます

paintContainer: function(){//doesn't work
    var cont = this.container;
    this.context.fillStyle = cont.color;
    this.context.fillRect(cont.x, cont.y, cont.width, cont.height);
}

paintContainer: function(){//works just fine
            alert('hi');
    var cont = this.container;
    this.context.fillStyle = cont.color;
    this.context.fillRect(cont.x, cont.y, cont.width, cont.height);
}
4

1 に答える 1

0

Webサイトのコードを参照すると、これは、描画しようとしている塗りつぶしが既に描画された後に背景が読み込まれるためです。したがって、コードを次のように変更した場合:

background.onload = function() {
    context.drawImage(background, 0, 0);
    drawTitle();        
}

var b = new Board(context);

Board代わりに:の内側を描画しonloadます

background.onload = function() {
    context.drawImage(background, 0, 0);
    drawTitle();    
    var b = new Board(context); 
}

あなたが望む効果を得るでしょう。onloadアセットが読み込まれた後もゲームを続行するメソッド内で呼び出されるメソッドを作成することをお勧めします。

于 2012-11-30T18:00:35.933 に答える