2016-03-19 8 views
0

私は今このcodepenを見つけました。このコードをfont-awesomeフォントのランダムな文字で置き換えてこのコードを再利用できるかどうか疑問に思いました。私はそれを達成できるかのフォントを表示する

Draw: function() { 
context.strokeStyle = this.color; 
context.fillStyle = this.color; 
context.save(); 
context.beginPath(); 
context.translate(this.x, this.y); 
context.moveTo(0, -this.diameter); 

for (var i = 0; i < 7; i++) 
{ 
    context.rotate(Math.PI/7); 
    context.lineTo(0, -(this.diameter/2)); 
    context.rotate(Math.PI/7); 
    context.lineTo(0, -this.diameter); 
} 

if(this.id % 2 == 0) { 
    context.stroke(); 
} else { 
    context.fill(); 
} 

context.closePath(); 
context.restore(); 
    } 

任意のアイデア:

私はちょうどそれは、彼が星を描画することをここに知っていますか?

答えて

1

これは実際に彼がやったより簡単です。彼はキャンバスを使うので、テキストを描画するのにcanvas.fillText()メソッドを使うことができます。

自動車を描画するには、draw関数をこれに置き換えます。

Draw: function() { 
    context.font = "30px FontAwesome"; 
    context.fillStyle = this.color; 
    context.strokeStyle = this.color; 
    if(this.id % 2 == 0) { 
     context.fillText('\uf1b9',this.x, this.y); 
    } else { 
     context.strokeText('\uf1b9',this.x, this.y); 
    } 
    } 
+0

これは魅力的です。そのコードに基づいて、どのようにフォントからランダムな文字を取り出すことができるかについてのアイデアはありますか? – Nuzzob

+0

見つけた! フォントの文字をUpdate()メソッドで同時に変換して回転させる方法を説明できますか? – Nuzzob

+0

まず、fontwesomeのUnicodeの範囲を調べます。それから 'Math.floor(Math.random()* n))+ c'を使って、ユニコードの値をランダムに得ることができます。残念ながら、Javascriptでこれを実際のUnicodeに変換するのは簡単な方法ではないようです。しかし、この答えは有望に見えます:http://stackoverflow.com/a/9109467/2947592 – wvdz