【问题标题】:how to get the color of a single pixel in p5js如何在p5js中获取单个像素的颜色
【发布时间】:2021-10-22 15:13:27
【问题描述】:

我正在尝试获取玩家下方像素的颜色,如果它是蓝色的,我会阻止它们掉落。出于某种原因,它会检测到颜色,但即使匹配,if 语句也不会运行。这是代码:

gravity(){
  if (this.y <= 400 - this.scale){
    let gc = get(this.x, this.y + 25);
    print(gc);
    if (gc == [0, 0, 255, 255]){
      this.canGravity = false;
    }
    else {
      this.canGravity = true;
    }
    if (this.canGravity == true){
      this.y += 2;
    }
  }
}

【问题讨论】:

    标签: p5.js


    【解决方案1】:

    你非常接近,你的问题是平等检查。

    看看下面的例子:

    
    let first = [1, 2];
    let second = [1, 2];
    console.log(first === second); // false;
    
    

    在 JavaScript 中检查两个数组是否相等的最佳方法是遍历每个元素并执行比较,因此您的示例可能如下所示:

    if (arraysEqual(gc, [0, 0, 255, 255])) {
      this.canGravity = false;
    }
    
    ...
    function arraysEqual(arr1, arr2) {
      return arr1.length === arr2.length && arr1.every((value, index) => value === arr2[index]);
    }
    
    

    或者更适合您的场景:

    if (gc[0] === 0 && gc[1] === 0 && gc[2] === 255 && gc[3] === 255) {
       ...
    }
    
    

    【讨论】:

    • 谢谢它让它工作,但我似乎有一个问题,下降是口吃。有什么办法解决吗?
    • 这完全是一个不同的问题,如果它解决了您最初提出的问题,也许值得单独提出并接受这个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    相关资源
    最近更新 更多