2016-10-05 21 views
-1

私はDraw Wormを使用していくつかの変更を加えました。その結果はthisでしたが、解決するのに問題があります。私は暗闇の中にゆっくりと消え去るのに長い時間そこにあった線を作りたい。私はこのコードを作った:キャンバスでゆっくりと画像を消していく

function fadeOut() { 
    context.fillStyle = "rgba(0, 0, 0, 1)"; 
    context.fillRect(0, 0, canvas.width, canvas.height); 
    setTimeout(fadeOut,10000); 
} 
fadeOut(); 

問題はラインは、私は緩やかなフェードを取得したい、またはもっとゆっくり代わりに、あまりにも急速に消えつつあるということです。

+0

すでにキャンバスに描いている線を消去することはできません。しかし、描かれた線の位置を保存しておけば、指定された2つの座標上のキャンバス領域をクリアすることができます。 – choz

答えて

0

これは簡単です。問題は、rgba(0, 0, 0, 1)は完全に不透明な黒を意味するということです。半透明の色を試してみてください。たとえば:

function fadeOut() { 
    context.fillStyle = "rgba(0, 0, 0, 0.05)"; 
    context.fillRect(0, 0, canvas.width, canvas.height); 
    setTimeout(fadeOut,1000); 
} 
fadeOut(); 

私も​​代わりのsetTimeoutを使用することをお勧めします。私はあなたのコードを試して、速いアニメーションでどれぐらい良いか見てみましょう:https://jsfiddle.net/Darker/mwj60hq4/

+0

ありがとう、それは、あなたのために非常にシンプルだった:)))。もう1つの質問は、私は1つの自己描画線の代わりに複数の行を持っているページを読み込むときに任意の方法がありますか?ありがとう。 –

+1

@OvidiuOvi私はあなたの2番目の質問を理解していません。しかし、さらに質問がある場合は、「Ask question」ボタンを使用して投稿する必要があります。コメントは、質問のために使用されるものではなく、説明を求めたり、エラーを指摘するためのものです。 –

+0

申し訳ありませんが、私はそのルールを知らなかったのです。助けてくれてありがとう、そして、それはとても速いアニメーションでとても美しい。また、seTimeoutの代わりにrequestAnimationFrame関数を追加しました。私の質問は同じコードに関するもので、アニメーションの冒頭では、一番下のページでセルフドローイングである一つのラインではなく、別の場所にある複数のラインではなく、ありがとう! –

関連する問題