如何在 setup() 之外使用 windowWidth 和 windowHeight?

How to use windowWidth and windowHeight outside of setup()?

我需要一个项目的屏幕尺寸,但尝试 windowWidth 和 windowHeight 会产生一个错误,提示我不能在 setup() 之外使用它们。我还尝试将 windowWidth 和 Height 定义为一个新常量,但它只是说该常量尚未定义。

这是我的代码的当前状态(不起作用,但给出了代码的一个很好的概念):

function setup() {
    createCanvas(windowWidth, windowHeight);
}

var x = 0;
var y = 0;
var speed = 5;
var laserSpeed = 10;
var laserY = 0;
var laserX = Xwidth;

function draw() {
    background(230);
    //changing x and y var according to keys pressed
    if(keyIsPressed) { 
        if (key.toString() === "a") {
           x -= speed;
        } 
        if (key.toString() === "w") {
            y -= speed;
        } 
        if (key.toString() === "d") {
            x += speed;
        } 
        if (key.toString() === "s") {
            y += speed;
        }
    }
    if(laserX >= width) {
        laserY = random(0, height);
    } 
    else {
        laserX += laserSpeed;
    }

    rect(laserX, laserY, 100, 20);
  
    //player
    rect(x, y, 20, 20);
}

我不知道如何在处理中做到这一点,但正如 @Peter Paul Kiefer 所述,您通常可以使用变量 width'height 另一种解决方案是

let canvas = document.getElementById('myP5Canvas');

draw(){
 ...
 let cWidth = canvas.width;
 let cHeight = canvas.height;
 ...
}

如果您使用 WIDTH 和 HEIGHT 等全局变量,您可以在代码的任何位置使用它们。

let WIDTH;
let HEIGHT;

function setup() { 
  WIDTH = windowWidth;
  HEIGHT = windowHeight;
  createCanvas(WIDTH, HEIGHT);
}