6つの三角形を一緒に作成して六角形を作成し、回転させようとしています。私は正常にスライスされた六角形を作成し、私はそれを回転させることができますが、私は別々に動作するように各スライスを(たとえば、オブジェクトがスライスを打つ、それはサイズが縮小する必要があります。私のコードは、キャンバス上で正常に実行されています。他の三角形を別々の参照で描画して、必要に応じて修正できるように助けてください。私は三角形を小さくしたり大きくしたりして、必要な大きさの線を描画して塗りつぶすことを計画しています。これを達成するための別のアプローチがあるかどうかを教えてください。とても有難い。JavaScriptのキャンバスで個々の三角形を回転する
<script>
var numberOfSides = 6,
size = 100,
Xcenter = 0,
Ycenter = 0,
prevX,
prevY,
startPX,
startPY,
angle = 0.1,
angleChange=Math.PI/180;
ctx.beginPath();
ctx.moveTo (Xcenter + size * Math.cos(0), Ycenter + size * Math.sin(0));
startPX = Xcenter + size * Math.cos(0);
startPY = Ycenter + size * Math.sin(0);
requestAnimationFrame(animate);
function animate(time){
requestAnimationFrame(animate);
ctx.clearRect(0,0,canvas.width,canvas.height);
ctx.save();
// translate and rotate the canvas
ctx.translate(canvas.width/2,canvas.height/2);
ctx.rotate(angle);
for (var i = 1; i <= numberOfSides;i += 1) {
ctx.fillStyle = 'blue';
// ctx.fillStyle = get_random_color();
// addMessage(get_random_color());
// save the untranslated & unrotated context state
ctx.lineTo(Xcenter,Ycenter);
ctx.lineTo (Xcenter + size * Math.cos(i * 2 * Math.PI/numberOfSides), Ycenter + size * Math.sin(i * 2 * Math.PI/numberOfSides));
ctx.lineTo (startPX, startPY);
ctx.closePath();
ctx.fill();
// prevX = Xcenter + size * Math.cos(i * 2 * Math.PI/numberOfSides);
// prevY = Ycenter + size * Math.sin(i * 2 * Math.PI/numberOfSides);
startPX = Xcenter + size * Math.cos(i * 2 * Math.PI/numberOfSides);
startPY = Ycenter + size * Math.sin(i * 2 * Math.PI/numberOfSides);
ctx.moveTo(startPX,startPY);
ctx.beginPath();
}
// restore the context to its untranslated & unrotated state
ctx.restore();
angle+=angleChange;
}
ctx.closePath();
ctx.strokeStyle = "#ffffff";
ctx.lineWidth = 1;
ctx.stroke();
//}
</script>
おかげでたくさんの、魅力のように働きました。あなたがカップル以上のことを手助けできるなら、それは素晴らしいことでしょう、1)。六角形の外線の衝突検出に関するアプローチ。 2)複数のプレイヤーが同時にこれをプレイしている場合、各プレイヤーは自分自身を下に見、他のプレーヤーはそれに相対的に位置する。 –
@rajendersohi私の答えが役に立ったことを知ってうれしいです。他の質問について:毎回StackOverflowに関する別の質問を作成してください。 – gus27
そうです。他の質問へのリンクをここに掲載できますか? –