Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Cambiando de color REMIX

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>¿Quién tiró los condimentos?</title>
  </head>
  <body>
    <style>
      body {
        margin: 0;
        background-color: bisque;
      }

      .container {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100vh;
        flex-direction: column;
        align-content: center;
      }

      #canvas-1 {
        position: relative;
        width: 600;
        height: 400px;
        border: 15px solid #9b7b6e;
        border-radius: 15px;
        border-style: inset;
        box-shadow: 10px 10px #563f35;
      }

      .item {
        text-align: center;
      }

      h1 {
        font-size: 2.5vw;
        font-weight: 900;
        margin: 10px;
        color: brown;
      }

      p {
        font-size: 1.1vw;
        margin: 30px;
      }
    </style>
  </body>
</html>

<div class="container">
  <div class="item">
    <h1 style="font-family: 'Courier New', Courier, monospace">
      ¿Quién está tirando los<br>condimentos en la bandeja?
    </h1>
    <p style="font-family: monospace">
      <i
        >click izq = tirar salsa!<br />click der = alternar entre los 3
        sabores</i
      >
    </p>
  </div>
  <canvas id="canvas-1" width="600" height="400"> </canvas>
</div>

<script>
  // VARIABLES ----------->
  var screen = document.querySelector("canvas");
  var brush = screen.getContext("2d");
  brush.fillStyle = "#7c5b4c";
  brush.fillRect(0, 0, 600, 400);
  var colorArray = ["goldenrod", "beige", "tomato"];
  var startColorIndex = 0;
  var circleSizes = [10, 15, 5];
  var startSizeIndex = 0;

  // DIBUJAR CIRCULOS ------------------->
  function drawCircle(event) {
    var x = event.pageX - screen.offsetLeft;
    var y = event.pageY - screen.offsetTop;
    brush.fillStyle = colorArray[startColorIndex]; // IMPLEMENTAR SECUENCIA DE LOS 3 COLORES DEL ARRAY 'COLORARRAY'
    brush.beginPath();
    brush.arc(x, y, Math.floor(Math.random() * (35 - 5)+5), 0, 2 * 3.14); // IMPLEMENTAR TAMAÑO RANDOM POR CLICK IZQUIERDO, CREANDO CIRCULOS DE DIFERENTE TAMAÑO EN CADA CLICK
    brush.fill();
    console.log(x + "," + y);
  }

  screen.onclick = drawCircle;

  // CAMBIAR COLOR EN CADA CLICK ------------------------->
  function colorCycle() {
    startColorIndex++;
    // LOOP PARA CAMBIAR POR CLICK DESDE LA SECUENCIA 'COLORARRAY'
    if (startColorIndex >= colorArray.length) {
      startColorIndex = 0;
    }
    return false; /* EVITAR MENU CONTEXTUAL, EL CLASICO CLICK SENCUDARIO */
  }

  screen.oncontextmenu = colorCycle;
</script>
2 respuestas

Hola Roberto!

Gracias por compartir tu solución

Estás a full con canvas! 😎😀 Muy bien, felicitaciones 👏

Saludos.-

Si el aporte te ayudó, marca como solucionado ✓

Si! es divertido jajaja, ir conociendo los posibles parámetros dentro de canvas y demás elementos de CSS :D

Pero la cuestión de loops de Math.random para randomizar tmb geniales.

Gracias Leandro!