可拖动的背景


12

我想实现像Konva js中那样的无限阻力。我尝试各种各样的东西,但没有一个还可以。我是p5js和javascript中的新手。请提供任何提示。仅此元素阻止我完成整个项目。

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

2
我对你要做什么感到困惑。您是否希望像示例一样无限拖动网格?
Quillbert Q.19年

是的..我想网格为可拖动像例子
米哈尔弥

Answers:


7

可能有一个更优雅的解决方案,但是在这里我在网格的每一侧都绘制了一个额外的单元格来处理环绕效果,因此可见的12x12网格具有10x10的可见度。看到它在这里运行: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);
    }
  }
}

您还可以将功能设置为仅在画布拖动if((mouseX < width && mouseX > 0)&&(mouseY < height && mouseY > 0))mouseDragged()起作用
darcane

您在此答案中需要的其他内容@michał-mi吗?
rednoyz

我正在回应提问者的附加代码请求,该请求后来被删除了
rednoyz19年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.