html5 canvas와 pure javascript를 사용하여 사이먼 게임을 만들려고합니다. html5 캔버스를 사용하여 사이먼 게임 UI를 얻을 수있었습니다. 다음 단계는 4 개의 구성 요소를 무작위로 켜는 것입니다. 이것이 html5 캔버스에서 가능할 지 모르겠다. 아마도 내 접근 방식이 잘못되었을 것이다. 올바른 방향의 힌트는 큰 도움이 될 것입니다. http://codepen.io/anon/pen/QEdPRN?editors=1010HTML5 캔버스에서 원의 색상을 임시 변경하는 방법
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
//bigger circle
ctx.beginPath();
ctx.arc(235,230,140,0,2*Math.PI);
ctx.fillStyle = '#000';
ctx.fill();
ctx.stroke();
//smaller circle
ctx.beginPath();
ctx.arc(235,230,60,0,2*Math.PI);
ctx.fillStyle = '#fff';
ctx.fill();
ctx.stroke();
//draw the four arcs
var x = [240,240,230,230];
var y = [240,225,225,240];
var start = [0,1.5*Math.PI,1*Math.PI,0.5*Math.PI];
var end = [0.5*Math.PI,0,1.5*Math.PI,1*Math.PI];
var color = ["blue","red","green","yellow"];
var draw = function (a,b,c,d,e) {
ctx.beginPath();
ctx.arc(a,b,90,c,d);
ctx.lineWidth = 50;
ctx.strokeStyle = e;
ctx.stroke();
}
function drawSimon() {
for(var i=0;i<4;i++){
draw(x[i],y[i],start[i],end[i],color[i]);
}
}
drawSimon();
임의 색상을 선택한 경우 점진적 애니메이션에는 requestAnimationFrame을 사용하고 일회성 변경에는 타이머를 사용하십시오. 어디서 붙어 있니? –
4 개의 구성 요소를 임의의 색상으로 다시 그려야합니까? 일회용 변경은 setInterval로 얻을 수 있지만 임의의 색상을 한 번 표시 한 다음 다시 원래 색상으로 되돌릴 방법을 모르겠습니다. – M00
색상 배열에서 색상을 변경할 때마다'drawSimon()'을 다시 호출하여 현재 표시된 이미지를 덮어 씁니다. 'clearRect (...) '를 사용하여 캔버스를 지울 수도 있습니다. –