fondo arrastrable

12

Quiero lograr algo como un arrastre infinito como el de Konva js. ¿Alguien puede ayudarme con esto? Intento varias cosas, pero ninguna de ellas estaba bien. Soy nuevo en p5js y javascript. Por favor, para cualquier pista. Solo este elemento me impide completar todo el proyecto.

var grid;
var current_img;
var BgCat1 = [];
var layerOne;
let show_grid = false;

Michał Mi
fuente
2
Estoy confundido sobre lo que estás tratando de hacer. ¿Desea que la cuadrícula se pueda dibujar como el ejemplo, infinitamente?
Quillbert Q.
sí .. quiero que la cuadrícula sea arrastrable como el ejemplo
Michał Mi

Respuestas:

7

Puede haber una solución más elegante, pero aquí dibujo una celda adicional a cada lado de la cuadrícula para manejar el envolvente, por lo que una cuadrícula de 12x12 con 10x10 visible. Véalo aquí: https://editor.p5js.org/rednoyz/full/uJCADfZXv

let dim = 10, sz;
let xoff = 0, yoff = 0;

function setup() {
  createCanvas(400, 400);
  sz = width/ dim;
}

function mouseDragged() {
  xoff += mouseX - pmouseX;
  yoff += mouseY - pmouseY;
}

function draw() {
  background(255);

  for (let i = 0; i < dim+2; i++) {
    for (let j = 0; j < dim+2; j++) {

      let x = ((xoff + j * sz) % (width+sz)) - sz;
      if (x < -sz) x += width+sz;

      let y = ((yoff + i * sz) % (height+sz)) - sz;
      if (y < -sz) y += height+sz;

      rect(x, y, sz, sz);
      text(i * 10 + j, x + sz/2, y + sz/2);
    }
  }
}
rednoyz
fuente
También se puede poner if((mouseX < width && mouseX > 0)&&(mouseY < height && mouseY > 0))en mouseDragged()funcionamiento para trabajar sólo sobre lienzo arrastrando
darcane
¿Algo más que esté buscando en esta respuesta, @ michał-mi?
rednoyz
Estaba respondiendo a la solicitud del interlocutor de código adicional, que luego se eliminó
rednoyz