Hola, tengo una duda, ya realice el código donde se puede seleccionar y cambiar por cualquier color en cualquier momento en canvas, mientras no elijas un color, este permanecerá en gris o su equivalente de no realizar ningún dibujo, hasta aquí todo bien, pero no logro hacer que una vez ya elegido el color siga dibujándolo como en paint. Anexo código. Saludos
<canvas width="600" height="400"> </canvas>
<script>
var pantalla = document.querySelector("canvas");
var pincel = pantalla.getContext("2d");
pincel.fillStyle = "grey";
pincel.fillRect(0,0,600,400);
function dibujarCuadrado(x,y,color){
var pantalla = document.querySelector("canvas");
var pincel = pantalla.getContext("2d");
pincel.fillStyle = color;
pincel.fillRect(x,y,50,50);
pincel.strokeStyle = "black";
pincel.strokeRect(x,y,50,50);
}
dibujarCuadrado(0,0,"red");
dibujarCuadrado(50,0,"green");
dibujarCuadrado(100,0,"blue");
var colorActual = "grey"
function SeleccionarColor(evento){
var x = evento.pageX - pantalla.offsetLeft;
var y = evento.pageY - pantalla.offsetTop;
console.log(evento)
if (x>=0 && x<=49 && y>=0 && y<=50){
colorActual= "red"
}
if (x>=50 && x<=99 && y>=0 && y<=50){
colorActual = "green"
}
if (x>=100 && x<=150 && y>=0 && y<=50){
colorActual = "blue"
}
}
function HabilitadoDibujar(evento){
var x = evento.pageX - pantalla.offsetLeft;
var y = evento.pageY - pantalla.offsetTop;
if( x < 150 && y > 50){
pincel.fillStyle = colorActual
pincel.beginPath();
pincel.arc(x,y,5,0,2*3.14);
pincel.fill();
}
if( x> 150 && y >= 0){
pincel.fillStyle = colorActual
pincel.beginPath();
pincel.arc(x,y,5,0,2*3.14);
pincel.fill();
}
}
pantalla.onclick= SeleccionarColor;
pantalla.onmousedown = HabilitadoDibujar;
</script>