如何让我的按钮改变一个变量?

How to I make my button change a variable?

如何让我的按钮改变一个变量?

我是编程新手,甚至是 p5.js 新手,在尝试创建一个非常基本的绘图软件时遇到了这个问题。我可以很好地绘制以及使用计算机上的按键更改颜色,但现在我正在尝试添加一个功能,您可以在其中更改光标的大小以绘制更大或更小的线条。我在屏幕上创建了一个按钮,但不知道如何执行前面提到的任务。我已经尝试制作一个在您单击按钮时调用的函数,看起来它会起作用,但我不知道如何做或将它放在代码中的什么位置。

function draw() {
    let yel = color(255, 255, 0);
    let red = color(255, 0, 0);
    let black = color(0);
    let green = color(0, 255, 0);
    let blue = color(0, 0, 255);

    var size;

    if(mouseIsPressed) {
        noStroke();

        if(keyIsPressed) {
            if(keyCode === UP_ARROW) {
                fill(red);
            }else if(keyCode === RIGHT_ARROW) {
                fill(green);
            }else if(keyCode === LEFT_ARROW) {
                fill(blue);
            }else {
                fill(black);
            }
        }

        if(mouseButton === LEFT) {
            ellipse(mouseX, mouseY, size, size);
        }
    }
}

我上面提到的功能目前不在代码中。显示的所有代码都可以正常工作。我在 html 文档中有一个按钮,其中一个按钮带有 onclick 事件以激活功能 'S1'。

您只需向按钮添加一个事件侦听器 (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener),然后 运行 您的代码在其中:

document.addEventListener('DOMContentLoaded', function() {
  var supaCoolButton = document.querySelector('.supa_cool_button')
  supaCoolButton.addEventListener('click', function() {
    console.log('Call functions in here!')
    // You would invoke `draw()` here.
  })
})
<button class="supa_cool_button">Check me out.</button>

如果您愿意分享更大的代码段,我们可以向您展示如何更好地整合该功能。

我发挥了一些创意,想出了一些可能对您有所帮助的东西。我假设在没有任何修饰的情况下,您希望您的项目看起来像这样:

function setup(){
  createCanvas(400, 200);
  background(120);
}
function draw() {
    let yel = color(255, 255, 0);
    let red = color(255, 0, 0);
    let black = color(0);
    let green = color(0, 255, 0);
    let blue = color(0, 0, 255);

    

    if(mouseIsPressed) {
        noStroke();

        if(keyIsPressed) {
            if(keyCode === UP_ARROW) {
                fill(red);
            }else if(keyCode === RIGHT_ARROW) {
                fill(green);
            }else if(keyCode === LEFT_ARROW) {
                fill(blue);
            }else {
                fill(black);
            }
        }

        if(mouseButton === LEFT) {
            ellipse(mouseX, mouseY, size, size);
        }
    }
}

var size = 2;
var increment = 2;

function increaseSize(){
  size += increment;
  strokeWeight(size);
  document.getElementById("currentsize").innerHTML = size;
}

function decreaseSize(){
  if(size > increment) size -= increment;
  strokeWeight(size);
  document.getElementById("currentsize").innerHTML = size;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.3/p5.min.js"></script>

<div id="controls">
  <button onclick="increaseSize()">BIGGER</button>
  <button onclick="decreaseSize()">SMALLER</button>
  <label id="currentsize">2</label>
</div>

注意事项是更改 size 变量的范围,将 S1() 函数重命名为更有意义的名称,以及 HTML 中的附加按钮和标签。每个函数都会根据 increment 变量中注明的数量增加或减少椭圆的当前大小。